Hier ist beschrieben, wie Keycloak zu konfigurieren ist, damit eine SAML-Authentifizierung über den Shibboleth Identity Provider möglich ist. In den folgenden Screenshots wird der Development-Server von schnaq mit dem Development-IdP der HHU verbunden.
Eine detailliertere und weiterreichende Dokumentation findet sich unter: https://www.blog.albert-stark.de/p/shibboleth-and-keycloak/
Die resultierenden Metadaten müssen dem IdP zur Verfügung gestellt werden (diese sind sehr minimalistisch, falls jemand weiß, wie Zusatzinformationen wie Organization
, ContactPerson
, AttributeConsumingService
etc angegeben werden können, bitte melden). In unserem Fall wird die generierte xml-Datei per Ansible auf dem IdP abgelegt und per FilesystemMetadataProvider
in der metadata-providers.xml
integriert.
Attributfreigabe im IdP:
<AttributeFilterPolicy id="schnaq"> <PolicyRequirementRule xsi:type="Requester" value="https://auth.schnaq.com/realms/development" /> <AttributeRule attributeID="uid" permitAny="true" /> <AttributeRule attributeID="mail" permitAny="true" /> <AttributeRule attributeID="givenName" permitAny="true" /> <AttributeRule attributeID="sn" permitAny="true" /> <AttributeRule attributeID="displayName" permitAny="true" /> <AttributeRule attributeID="eduPersonAffiliation" permitAny="true" /> </AttributeFilterPolicy>
Die Affiliation wird genutzt um manchen Nutzergruppen zusätzliche Dienste zur Verfügung zu stellen. Keycloak-Mapper machen die Werte der SAML-Attribute verfügbar:
Die einzelnen Mapper: "Attribute Name" muss genau der Bezeichnung der SAML-Assertion entsprechen (oder URN), "Attribute User Name" dem Zielbezeichner.
Bei Fragen:
idm ät hhu Punkt de
christian ät schnaq Punkt com