De alguma forma, configurei o Keycloak para autorização SAML com o Discourse, e até a criação transparente de usuários funciona.
Mas agora há um problema com a passagem dos campos do usuário.
Configurei o seguinte mapeamento de campos no Keycloak SAML (encontrado na internet):
Quando faço login no Discourse, crio um novo usuário por meio do Keycloak. É assim que o usuário aparece no Keycloak:
Depois disso, o usuário criado é transferido para o Discourse. É assim que os campos para os quais há mapeamento são enviados ao 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>
........................
É assim que o usuário enviado aparece no Discourse:
Os pontos 1, 3 e 4 estão completamente corretos. Mas não gostei do ponto 2… No Keycloak, o usuário tem um Nome e Sobrenome normais. Por que apenas a primeira letra do Nome permanece no Discourse? Há alguma maneira de corrigir isso? Talvez eu precise fazer algum outro mapeamento no SAML?



