Как-то мне удалось настроить Keycloak для авторизации SAML с Discourse, и даже прозрачное создание пользователей работает.
Но теперь возникла проблема с передачей полей пользователя.
В 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?



