Table of Contents |
---|
IdP管理者に必要な情報
学認参加IdPがGakuNin mAPを利用するために必要な情報をまとめます。
Note | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2月22日(水)にentityIDの変更を含めたサーバ移行を行います。下記に加えて
|
まず、GakuNin mAP まず、クラウドゲートウェイ (entityID: https://mapcg.gakunin.nii.ac.jp/shibboleth-sp
) に対して以下の属性を送信するようにしてください。
...
そして、GakuNin mAPと連携しているサービス(SP)に対しても、必要な属性を送信していないとIdPの利用者は当該サービスが利用できませんのでご注意ください。
API
連携するIdPが利用できる、クラウドゲートウェイ画面で表示される利用可能サービスの情報を取得するためのAPIを以下に示します。
⇒API(IdP)
SP管理者に必要な情報
SP管理者が提供しているサービスをGakuNin mAPと連携させるためには以下の手順に従って設定を行ってください。SP管理者が提供しているサービスをクラウドゲートウェイと連携させるためには以下の手順に従って設定を行ってください。
Note |
---|
以下の手順でisMemberOf属性を取得するためにはあらかじめIdPからeduPersonPrincipalName(ePPN)を取得していなければなりません。 |
Note |
以下の設定は、mAPの移行を行う2017年2月頃に再度変更予定です。お手数をおかけすることになりますが、あらかじめご了承ください。 |
- グループメンバー情報を取得できるようにする
以下のようにShibboleth SPの設定ファイルを変更してください。動作確認は Shibboleth SP 2.4 6 で行っています。GakuNin mAP クラウドゲートウェイ (IdP)のメタデータを次のリンクから取得して /etc/shibboleth/metadata/ に保存してください。
gakuninmap-idp-metadata.xml
cgidp-metadata.xmlWarning 2016年10月25日以前に設定されたかたは、アクセス先が変わっておりますので、最新のメタデータを用いてください。2017年2月22日以前に設定されたかたは、アクセス先が変わっておりますので、最新のメタデータを用いてください。その際、アクセス先と証明書上ホスト名の不一致によるエラーを回避するため、shibboleth2.xmlの最後から2行目に以下の1行を追加してください。
以前、Gakunin mAP連携のためにshibboleth2.xmlに以下の1行を追加している場合は 削除 してください。
Panel <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>
<TransportOption provider="CURL" option="81">0</TransportOption>
</SPConfig>なお、メタデータ取得時のサーバ証明書検証(初期値ではいずれにしろ不完全です)については以下でご案内しておりますので、もし設定がまだのようであれば別途ご検討いただければと思います。
shibboleth2.xml ファイル の<TransportOption>の3行- shibboleth2.xmlの編集
/etc/shibboleth/shibboleth2.xml を編集します。GakuNin mAP (IdP)メタデータの読み込み
a.でダウンロードしたメタデータを読み込むように設定します。他の<MetadataProvider>の後に下記を追加してください。Code Block xml xml <MetadataProvider type="XML" file="/etc/shibboleth/metadata/gakuninmap-idp-metadata.xml"/> <MetadataProvider type="XML" file="/etc/shibboleth/metadata/cgidp-metadata.xml"/>
SimpleAggregationの追加
通常の認証フローの後にeppnを手がかりとしてGakuNin mAP (IdP)からisMemberOf属性を取得するよう、SimpleAggregation設定を行います。
既存の<AttributeResolver>の後に以下の記述を追加します。Code Block xml xml <AttributeResolver type="SimpleAggregation" attributeId="eppn" format="urn:oid:1.3.6.1.4.1.5923.1.1.1.6"> <Entity> https://mapcg.gakunin.nii.ac.jp/idp/shibboleth </Entity> <!-- <saml: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>
Info 上記設定でコメントアウトしている部分は、現在のところmAP側で未対応です。後日対応予定です。
ホスト名不一致によるエラーの回避
アクセス先と証明書上ホスト名の不一致によるエラーを回避するため、shibboleth2.xmlの最後から2行目に以下の1行を追加してください。 <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>Panel
<TransportOption provider="CURL" option="81">0</TransportOption>
</SPConfig>これを行わないと以下のエラーが発生します。
なお、メタデータ取得時のサーバ証明書検証(初期値ではいずれにしろ不完全です)については以下でご案内しておりますので、もし設定がまだのようであれば別途ご検討いただければと思います。No Format 2016-10-25 12:12:11 ERROR Shibboleth.AttributeResolver.SimpleAggregation [1]: exception during SAML query to https://cgp-ap.gakunin.nii.ac.jp:8443/idp/profile/SAML2/SOAP/AttributeQuery: CURLSOAPTransport failed while contacting SOAP endpoint (https://cgp-ap.gakunin.nii.ac.jp:8443/idp/profile/SAML2/SOAP/AttributeQuery): SSL: no alternative certificate subject name matches target host name 'cgp-ap.gakunin.nii.ac.jp' 2016-10-25 12:12:11 ERROR Shibboleth.AttributeResolver.SimpleAggregation [1]: unable to obtain a SAML response from attribute authority (https://map.gakunin.nii.ac.jp/idp/shibboleth)
shibboleth2.xml ファイル の<TransportOption>の3行
attribute-map.xmlの編集
/etc/shibboleth/attribute-map.xmlにisMemberOf属性の設定を行います。
最後の</Attributes>の直前に、以下の記述を追加してください。Code Block xml xml <Attribute name="urn:oid:1.3.6.1.4.1.5923.1.5.1.1" id="isMemberOf"/>
Info 以前の版では以下の行も含めるように書いておりましたが、標準に準拠しておりませんのでこの記述は削除してください。
Code Block xml xml <Attribute name="urn:mace:dir:attribute-def:isMemberOf" id="isMemberOf"/>
- attribute-policy.xmlの編集
他のIdPからのisMemberOf属性を拒否し、GakuNin mAPからのisMemberOfのみを利用する設定を行ないます。<!-- Catch-all that pases everything else through unmolested. -->
の直前に以下の記述を追加してください。
Code Block xml xml <afp:AttributeRule attributeID="isMemberOf"> <afp:PermitValueRule xsi:type="OR"> <Rule xsi:type="AttributeIssuerString" value="https://map.gakunin.nii.ac.jp/idp/shibboleth" /> <Rule xsi:type="AttributeIssuerString" value="https://cg.gakunin.jp/idp/shibboleth" /> </afp:PermitValueRule> </afp:AttributeRule>
.
- 取得したisMemberOf属性を利用するようにサービスを変更する
例えば、isMemberOf属性には下記のような値が入ります。全てURI形式です。
後者2つは、SPコネクタの設定で「グループ情報も取得する」を選択した場合のみ取得できます。https://mapcg.gakunin.nii.ac.jp/sp/SPCID ← SPコネクタ名
https://mapcg.gakunin.nii.ac.jp/gr/GROUPID ← ユーザが参加しているグループ名
https://mapcg.gakunin.nii.ac.jp/gr/GROUPID/admin ← ユーザが当該グループの管理者の場合
. SPに対応するSPコネクタを作成する
Note 以下の機能はまだ実装されておりませんので、権限が必要な方はお手数ですが下記メールアドレスまでご一報ください。
あなたが学認申請システムでSP管理者として申請し、かつePPNを登録している場合はSPコネクタを作成する権限を与えられているはずです。そうでない場合は
までお問い合わせください。
SPコネクタ作成の詳細は、mAP利用マニュアルの「SPコネクタを作成する」の章をご参照ください。
.
API
連携するSPが利用できる、利用者のグループ情報等を取得するためのAPIを以下に示します。
⇒API
SP連携のトラブルシューティング
1. isMemberOf属性が取得できない
SP側の設定ファイルshibboleth2.xmlにて、ApplicationDefaultsに encryption="true" と指定されている場合、isMemberOf属性が取得できません。これはAttributeQueryのNameIDが暗号化されており、mAPが現状ではNameIDの暗号化に対応していないためです。上記指定を外せば取得できるようになります。