Shibboleth Identity Provider
Steps not yet verified in the identity provider's current admin console.
Recommended protocol: SAML 2.0.
SAML 2.0
Shibboleth Identity Provider'ı SAML 2.0 ile bağlayın
- KeenAuth SP metadata'sını SP metadata URL adresinden indirin ve IdP sunucusuna kaydedin; örneğin %{idp.home}/metadata/local-metadata.xml.
- conf/metadata-providers.xml dosyasına xsi:type="FilesystemMetadataProvider" olan ve metadataFile'ı bu dosyayı gösteren bir MetadataProvider ekleyin. IdP dosyayı düzenli aralıklarla yeniden yükler (minRefreshDelay varsayılanı PT30S, maxRefreshDelay varsayılanı PT4H); hemen yüklemek için IdP'yi yeniden başlatın.
- Alternatif olarak metadata'yı xsi:type="FileBackedHTTPMetadataProvider" ile HTTP üzerinden yükleyin (backingFile ve metadataURL SP metadata URL). İlkenizin gerektirdiği metadata filtrelerini ekleyin; örneğin SignatureValidation, RequiredValidUntil ve RetainedRole md:SPSSODescriptor olan EntityRole.
- KeenAuth varlığı SP entity ID artık doğrulanmış bir relying party'dir ve conf/relying-party.xml içindeki shibboleth.DefaultRelyingParty (SAML2.SSO ve öteki olağan profiller) ona uygulanır. Varsayılan olarak her girişte değişen transient bir NameID üretir; KeenAuth'un persistent NameID'ye ihtiyacı vardır (sonraki iki adım).
- Persistent NameID'yi açın: conf/saml-nameid.properties içinde idp.persistentId.sourceAttribute'u kararlı ve yeniden atanmayan bir özniteliğe ayarlayın, credentials/secrets.properties içinde idp.persistentId.salt'ı uzun rastgele bir sır yapın ve conf/saml-nameid.xml içinde shibboleth.SAML2NameIDGenerators listesindeki <ref bean="shibboleth.SAML2PersistentGenerator" /> satırını yorumdan çıkarın.
- shibboleth.RelyingPartyOverrides listesine bir override bean ekleyin: <bean parent="RelyingPartyByName" c:relyingPartyIds="SP entity ID">; profileConfigurations listesinde <bean parent="SAML2.SSO" p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" /> ve <ref bean="SAML2.Logout" /> olsun. IdP, KeenAuth metadata'sındaki NameIDFormat listesini unspecified içerdiği için yok sayar; override varsayılan profilleri de miras almaz, bu yüzden KeenAuth'un kullandığı her profili listeleyin.
- Öznitelikleri yayımlayın: conf/attribute-resolver.xml içinde kullanıcı deponuzdan mail, givenName ve sn'yi (isteğe bağlı olarak grupları) tanımlayın; conf/attribute-filter.xml içine PolicyRequirementRule'u xsi:type="Requester" value="SP entity ID" olan ve her biri için AttributeRule permitAny="true" içeren bir AttributeFilterPolicy ekleyin. Öznitelikler urn:oid:0.9.2342.19200300.100.1.3 (mail), urn:oid:2.5.4.42 (givenName) ve urn:oid:2.5.4.4 (sn) adlarıyla gider; KeenAuth'ta bu adları e-posta, ad ve soyada eşleyin.
- KeenAuth'ta IdP entityID değerini (conf/idp.properties içindeki idp.entityID; tüm SAML profillerinde issuer) ve IdP'nin
https://<idp host>/idp/shibbolethadresinde yayımladığı SAML metadata'sını (%{idp.home}/metadata/idp-metadata.xml ile aynı dosya) girin, ardından bağlantı testini çalıştırın.
Values in bold are shown on the connection's page in the Admin Portal, where this guide has them filled in.