属性管理(登録、変換、リリース方法)
シボレスには、基本的には多くの属性をLDAPやDBから取得してリリースするための設定が既に入っており、これらのコメントアウトを解除して有効化するだけで実行することができます。
また、属性の変換機能として、”@nii.ac.jp”といったスコープの付与、値の変換、固定値の割り当てや、スクリプトを利用した変換等が可能です。
さらに、リリース制御では、サイトとしてのポリシー、各個人のポリシーによる制御や、各SPに対応したリリース制御等が可能です。
以下では、新たなIDや属性の追加、そのリリースの方法について説明します。
IDの追加方法
Uid | userPassword | eduPersonPrincipalName | ou | eduPersonAffiliation |
testuid4 | testpw4 | test_eppn_4 | technology | student |
以下の利用者を追加する例を示します。
1. ldifファイル(sample1.ldif)の作成
dn: ou=technology,o=test_o,dc=ac,c=JP
objectClass: organizationalUnit
ou: technology
# test_eppn_4, technology, test_o, ac, JP dn: eduPersonPrincipalName=test_eppn_4,ou=technology,o=test_o,dc=ac,c=JP objectClass: eduPerson objectClass: inetOrgPerson eduPersonPrincipalName: test_eppn_4 ou: technology sn: test_sn_4 cn: test_cn_4 uid: testuid4 userPassword: testpw4 eduPersonAffiliation: student
2. 上記1のldifファイルを用いた登録
# ldapadd -x -h localhost -D "cn=olmgr,o=test_o,dc=ac,c=JP" -w csildap -f sample1.ldif
属性の追加方法
利用者に「displayName」属性を追加する例を示します。
1. ldifファイル(sample2.ldif)の作成
dn: eduPersonPrincipalName=test_eppn_4,ou=technology,o=test_o,dc=ac,c=JP changetype: modify add: displayName displayName: Test4
2. 上記1のldifファイルを用いた登録
# ldapmodify -x -h localhost -D "cn=olmgr,o=test_o,dc=ac,c=JP" -w csildap -f sample2.ldif
属性のリリース方法
先にで追加した「displayName」属性をSPへリリースする例を示します。
1. スキーマの確認
・/etc/openldap/schema配下にスキーマファイルがあります。
・「displayName」属性は、/etc/openldap/schema/inetorgperson.schemaにて以下のように定義されています。
(中略) # displayName # When displaying an entry, especially within a one-line summary list, it
# is useful to be able to identify a name to be used. Since other attri-
# bute types such as 'cn' are multivalued, an additional attribute type is
# needed. Display name is defined for this purpose. attributetype ( 2.16.840.1.113730.3.1.241 NAME 'displayName' DESC 'RFC2798: preferred name to be used when displaying entries' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE ) (中略)
2. /opt/shibboleth-idp/conf/attribute-resolver.xmlへの登録
<AttributeResolver xmlns="urn:mace:shibboleth:2.0:resolver" xmlns:resolver="urn:mace:shibboleth:2.0:resolver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pc="urn:mace:shibboleth:2.0:resolver:pc" xmlns:ad="urn:mace:shibboleth:2.0:resolver:ad" xmlns:dc="urn:mace:shibboleth:2.0:resolver:dc" xmlns:enc="urn:mace:shibboleth:2.0:attribute:encoder" xmlns:sec="urn:mace:shibboleth:2.0:security" xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver classpath:/schema/shibboleth-2.0-attribute-resolver.xsd urn:mace:shibboleth:2.0:resolver:pc classpath:/schema/shibboleth-2.0-attribute-resolver-pc.xsd urn:mace:shibboleth:2.0:resolver:ad classpath:/schema/shibboleth-2.0-attribute-resolver-ad.xsd urn:mace:shibboleth:2.0:resolver:dc classpath:/schema/shibboleth-2.0-attribute-resolver-dc.xsd urn:mace:shibboleth:2.0:attribute:encoder classpath:/schema/shibboleth-2.0-attribute-encoder.xsd urn:mace:shibboleth:2.0:security classpath:/schema/shibboleth-2.0-security.xsd"> (中略) <resolver:AttributeDefinition id="displayName" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="displayName"> <resolver:Dependency ref="myLDAP" /> <resolver:AttributeEncoder xsi:type="SAML1String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:mace:dir:attribute-def:displayName" /> <resolver:AttributeEncoder xsi:type="SAML2String" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" name="urn:oid:2.16.840.1.113730.3.1.241" ←1のoid friendlyName="displayName" /> </resolver:AttributeDefinition> (中略) </AttributeResolver>
3. /opt/shibboleth-idp/conf/attribute-filter.xmlへの登録
(中略)
<!-- Release the transient ID to anyone -->
<AttributeFilterPolicy id="releaseTransientIdToAnyone">
<PolicyRequirementRule xsi:type="basic:ANY" />
(中略)
<AttributeRule attributeID="displayName">
<PermitValueRule xsi:type="basic:ANY" /> ←追加
</AttributeRule>
(中略)
</AttributeFilterPolicy>
(中略)