J’ai en quelque sorte configuré Keycloak pour l’autorisation SAML avec Discourse, et même la création transparente d’utilisateurs fonctionne.
Mais maintenant, il y a un problème avec le passage des champs utilisateur.
J’ai configuré la correspondance de champs suivante dans SAML de Keycloak (trouvée sur Internet) :
Lorsque je me connecte à Discourse, je crée un nouvel utilisateur via Keycloak. Voici à quoi ressemble cet utilisateur dans Keycloak :
Ensuite, l’utilisateur créé est transféré vers Discourse. Voici comment les champs pour lesquels une correspondance existe sont transmis à 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>
........................
Voici à quoi ressemble l’utilisateur soumis dans Discourse :
Les points 1, 3 et 4 sont tout à fait corrects. Mais le point 2 ne me plaît pas… Dans Keycloak, l’utilisateur possède un Prénom et un Nom normaux. Pourquoi seule la première lettre du Prénom est-elle conservée dans Discourse ? Y a-t-il un moyen de corriger cela ? Peut-être dois-je effectuer une autre correspondance dans SAML ?



