ich versuche, unseren Shibboleth mit unserer Discourse-Instanz zu integrieren. Die Anmeldung funktioniert zwar, aber ich erhalte falsche Daten (Name, E-Mail usw.).
Da sich der FriendlyName für jedes Attribut wiederholt, bin ich mir nicht sicher, wie die Zuordnung erfolgen soll. Hat jemand eine Idee, wie man damit umgehen kann?
Ich bin auf dasselbe Problem gestoßen, als ich die SAML-Integration getestet habe, und es endlich zum Laufen gebracht. Wenn die Protokolle aktiviert sind, überprüfen Sie den Inhalt von @attributes. Dies sind die tatsächlichen Schlüssel, die Sie für die Zuordnung benötigen, und nicht der Anzeigename. Sie entsprechen dem Name-Attribut aus den XML-Daten. In meinem Fall wurde die Zuordnung in app.yml wie folgt vorgenommen:
Es ist auch wichtig, nach Änderungen an der Konfiguration neu zu erstellen. Danach wurde der E-Mail-Wert aus meiner SAML-Antwort ordnungsgemäß zugeordnet.
Wahrscheinlich ist dies nicht der richtige Ort, aber nur zur Ergänzung: Sie benötigen E-Mail, Name, Vorname, Nachname und UID als Discourse-Attribute, um das SAML-Plugin verwenden zu können.
def attribute_statements
result = {}
statements =
"name:fullName,name|email:email,mail|first_name:first_name,firstname,firstName|last_name:last_name,lastname,lastName|nickname:screenName"
custom_statements = setting(:attribute_statements)
statements = "#{statements}|#{custom_statements}" if custom_statements.present?
statements
.split("|")
.map do |statement|
attrs = statement.split(":", 2)
next if attrs.count != 2
(result[attrs[0]] ||= []) << attrs[1].split(",")
result[attrs[0]].flatten!
end
result
end
Dieser Teil des Codes (beachten Sie, dass ich kein Ruby-Programmierer bin) legt nahe, dass Sie alle Attribute Ihren Attributen zuordnen müssen, damit das System funktionieren kann … Ich werde versuchen, diese Informationen zu testen (ich habe im Moment ein Problem mit dem SAML-Plugin und versuche, die Probleme zu untersuchen).