学認参加IdPがGakuNin mAPを利用するために必要な情報をまとめます。
まず、GakuNin mAP (entityID: https://map.gakunin.nii.ac.jp/shibboleth-sp) に対して以下の属性を送信するようにしてください。
ePPN |
必須 |
eduPersonTargetedID |
任意 |
jao |
任意 |
o |
任意 |
jaou |
任意 |
ou |
任意 |
jaDisplayName |
任意 |
displayName |
任意 |
mail |
任意 |
ou/jaou/eduPersonTargetedIDを除いた任意の各属性は、GakuNin mAP上でのアカウント登録時にユーザ情報を初期入力するために使用されます。ユーザ情報の「所属」は日本語および英語がそれぞれjaoおよびoに対応します。ユーザ情報の「氏名」は日本語および英語がjaDisplayNameおよびdisplayNameに対応します。
また、o/jaoおよびou/jaouについては、機関グループもしくは部局グループを作成するのに利用可能です。詳しくは左記お問い合わせ先までお問い合わせください。
そして、GakuNin mAPと連携しているサービス(SP)に対しても、必要な属性を送信していないとIdPの利用者は当該サービスが利用できません。
SP管理者が提供しているサービスをGakuNin mAPと連携させるためには以下の手順に従って設定を行ってください。
以下の手順でisMemberOf属性を取得するためにはあらかじめIdPからeduPersonPrincipalName(ePPN)を取得していなければなりません。 |
<MetadataProvider type="XML" file="/etc/shibboleth/metadata/gakuninmap-idp-metadata.xml"/> |
<AttributeResolver type="SimpleAggregation" attributeId="eppn" format="urn:oid:1.3.6.1.4.1.5923.1.1.1.6"> <Entity> https://map.gakunin.nii.ac.jp/idp/shibboleth </Entity> <Attribute Name="urn:oid:1.3.6.1.4.1.5923.1.5.1.1" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri" FriendlyName="isMemberOf"/> </AttributeResolver> |
<Attribute name="urn:oid:1.3.6.1.4.1.5923.1.5.1.1" id="isMemberOf"/> |
以前の版では以下の行も含めるように書いておりましたが、標準に準拠しておりませんのでこの記述は削除してください。
|
の直前に以下の記述を追加してください。<!-- Catch-all that pases everything else through unmolested. -->
<afp:AttributeRule attributeID="isMemberOf"> <afp:PermitValueRule xsi:type="AttributeIssuerString" value="https://map.gakunin.nii.ac.jp/idp/shibboleth"/> </afp:AttributeRule> |
後者2つは、SPコネクタの設定で「グループ情報も取得する」を選択した場合のみ取得できます。https://map.gakunin.nii.ac.jp/sp/SPCID ← SPコネクタ名
https://map.gakunin.nii.ac.jp/gr/GROUPID ← ユーザが参加しているグループ名
https://map.gakunin.nii.ac.jp/gr/GROUPID/admin ← ユーザが当該グループの管理者の場合
以下の機能はまだ実装されておりませんので、権限が必要な方はお手数ですが下記メールアドレスまでご一報ください。 |
あなたが学認申請システムでSP管理者として申請し、かつePPNを登録している場合はSPコネクタを作成する権限を与えられているはずです。そうでない場合は までお問い合わせください。
SPコネクタ作成の詳細は「SPコネクタ」の章をご参照ください。
.
1. isMemberOf属性が取得できない
SP側の設定ファイルshibboleth2.xmlにて、ApplicationDefaultsに signing="true" encryption="true" と指定されている場合、isMemberOf属性が取得できないようです。詳細は調査中ですが、このような状況になった場合は上記指定を外して試してみてください。