Keycloak で Discourse との SAML 認証をどうにか設定でき、透明なユーザー作成も動作しています。
しかし、ユーザー属性の引き渡しに問題が発生しています。
インターネットで見つけた以下のフィールドマッピングを Keycloak の SAML で設定しました:
Discourse にログインすると、Keycloak 経由で新しいユーザーが作成されます。Keycloak 側のユーザーは以下のようになっています:
その後、作成されたユーザーが Discourse へ引き渡されます。マッピングが設定されているフィールドは以下のように Discourse に送信されます:
.............................
<saml:AttributeStatement>
<saml:Attribute FriendlyName="Email" Name="email" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">a.nakhimov@yandex.ru</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute FriendlyName="Username" Name="name" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">v.pupkin</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
........................
Discourse 側で送信されたユーザーは以下のようになっています:
項目 1、3、4 は完全に正しいですが、項目 2 が気に入らないのです。Keycloak ではユーザーに通常の「名」と「姓」が設定されているのに、なぜ Discourse には「名」の最初の文字しか残っていないのでしょうか?これを修正する方法はありますか?もしかすると、SAML で別のマッピングを行う必要があるのでしょうか?



