...
conf/authn/password-authn-config.xml
<import resource="jaas-authn-config.xml" />の行をアンコメントとして、<import resource="ldap-authn-config.xml" />の行をコメントアウトします。
コード ブロック language xml title conf/authn/password-authn-config.xml collapse true <!-- Choose an import based on the back-end you want to use. --> <import resource="jaas-authn-config.xml" /> <!-- <import resource="krb5-authn-config.xml" /> --> <!-- <import resource="ldap-authn-config.xml" /> -->
conf/authn/jaas.config
参照するLDAPにあわせて、
org.ldaptive.jaas.LdapLoginModule required以降の行を設定します。
コード ブロック language xml title conf/authn/jaas.config collapse true ShibUserPassAuth { /* com.sun.security.auth.module.Krb5LoginModule required; */ org.ldaptive.jaas.LdapLoginModule required ldapUrl="ldap://localhost" baseDn="ou=people,dc=example,dc=ac,dc=jp" ssl="false" userFilter="uid={user}" subtreeSearch="true" ; };
//saml2:Subject/saml2:NameID
...
//saml2:Subject/saml2:NameID
はconf/attribute-filter.xml
に記述しなくてもconf/saml-nameid.properties
とconf/saml-nameid.xml
の設定により、SPメタデータの<NameIDFormat>に従って
下記の通り送信します。
...
IdP 2系と同じ短いTransient
を使いたい場合は下記の変更を行います。
conf/saml-nameid.properties
idp.transientId.generator
をアンコメントして、値をshibboleth.StoredTransientIdGenerator
に変更します。展開 xmlコード ブロック language java title conf/saml-nameid.properties collapse true # Set to shibboleth.StoredTransientIdGenerator for server-side transient ID storage idp.transientId.generator = shibboleth.StoredTransientIdGenerator
コード ブロック language diff title デフォルトからの差分 # Set to shibboleth.StoredTransientIdGenerator for server-side transient ID storage -#idp.transientId.generator = shibboleth.CryptoTransientIdGenerator +idp.transientId.generator = shibboleth.StoredTransientIdGenerator
Transient
の使用例を下記に示します。
コード ブロック | ||
---|---|---|
| ||
<saml2:Subject> <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" NameQualifier="https://idp.example.ac.jp/idp/shibboleth" SPNameQualifier="https://sp1.example.jp/shibboleth-sp">_f358fb015b9b45c7d18a4a2647e79c33</saml2:NameID> |
persistent-idの設定
computedId3.1時点の情報
computedIdでの設定を下記に示します。
conf/saml-nameid.xml
<ref bean="shibboleth.SAML2PersistentGenerator" />
をアンコメントして有効にします。コード ブロック language xml title conf/saml-nameid.xml collapse true <!-- Uncommenting this bean requires configuration in saml-nameid.properties. --> <!-- --> <ref bean="shibboleth.SAML2PersistentGenerator" /> <!-- -->
conf/saml-nameid.properties
idp.persistentId.generator
のデフォルトはComputedId
の設定のため、idp.persistentId.sourceAttribute
とidp.persistentId.salt
のみを設定します。コード ブロック language sass title conf/saml-nameid.properties collapse true # Set to shibboleth.StoredPersistentIdGenerator for db-backed storage # and uncomment/name the PersistentIdStore bean to use #idp.persistentId.generator = shibboleth.ComputedPersistentIdGenerator # Otherwise for computed PersistentIDs set the source attribute and salt. idp.persistentId.sourceAttribute = uid4persistentId idp.persistentId.salt = changethistosomethingrandom
conf/attribute-resolver.xml
とconf/attribute-filter.xml
idp.persistentId.sourceAttribute
の値をconf/attribute-resolver.xml
の//resolver:AttributeDefinition
で定義して、conf/attribute-filter.xml
で送信設定を行います。コード ブロック language xml title conf/attribute-resolver.xml collapse true <!-- ========================================== --> <!-- PersistentId Definition --> <!-- ========================================== --> <!-- Attribute Definition for %{idp.persistentId.sourceAttribute} --> <resolver:AttributeDefinition id="%{idp.persistentId.sourceAttribute}" xsi:type="ad:Simple" sourceAttributeID="uid"> <resolver:Dependency ref="myLDAP" /> </resolver:AttributeDefinition>
コード ブロック language xml title conf/attribute-filter.xml collapse true <!-- Release to anyone --> <afp:AttributeFilterPolicy id="PolicyforAnyone"> <afp:PolicyRequirementRule xsi:type="basic:ANY" /> <afp:AttributeRule attributeID="%{idp.persistentId.sourceAttribute}"> <afp:PermitValueRule xsi:type="basic:ANY" /> </afp:AttributeRule> </afp:AttributeFilterPolicy>
conf/intercept/consent-intercept-config.xml
ユーザ同意画面にて%{idp.persistentId.sourceAttribute}
を表示しないように、//util:list[@id="shibboleth.consent.attribute-release.BlacklistedAttributeIDs"]
に%{idp.persistentId.sourceAttribute}
を追加します。コード ブロック language xml title conf/intercept/consent-intercept-config.xml collapse true <util:list id="shibboleth.consent.attribute-release.BlacklistedAttributeIDs"> <value>transientId</value> <value>persistentId</value> <value>eduPersonTargetedID</value> <value>%{idp.persistentId.sourceAttribute}</value> </util:list>
storedId3.1時点の情報
注意 |
---|
IdP 3.1.2までのstoredIdにはrace conditionの問題があり、 IdP 3.2.0からstoredid周りに大きな変更が入ります。 |
...
なお、この機能はShibboleth IdP 3ではDeprecated Featuresとなっています。
computedId
computedIdでの設定を下記に示します。Shibboleth IdP 2と同じ設定で送信可能です。
...
conf/attribute-resolver.xml
コード ブロック language xml title conf/attribute-resolver.xml collapse true <!-- ========================================== --> <!-- Data Connectors --> <!-- ========================================== --> <!-- Computed targeted ID connector --> <resolver:DataConnector xsi:type="ComputedId" xmlns="urn:mace:shibboleth:2.0:resolver:dc" id="computedID" generatedAttributeID="computedID" sourceAttributeID="%{idp.persistentId.sourceAttribute}" salt="changethistosomethingrandom"> <!-- salt="%{idp.persistentId.salt}"> --> <resolver:Dependency ref="%{idp.persistentId.sourceAttribute}" /> </resolver:DataConnector>
注意 Shibboleth IdP 3.1.2では、
salt
属性は%{idp.persistentId.salt}
で置き換えられませんので、ご注意ください。[IDP-771]
storedId
storedIdでの設定を下記に示します。Shibboleth IdP 2と同じ設定で送信可能です。
...