Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 35 Next »

IdP管理者に必要な情報

学認参加IdPがGakuNin mAPを利用するために必要な情報をまとめます。

2月22日(水)にentityIDの変更を含めたサーバ移行を行います。下記に加えて https://cg.gakunin.jp/shibboleth-sp にも同じ属性を送信してください。必須のもののみ送る場合は以下のような設定をattribute-filter.xmlに追加してください。

 Click here to expand...
IdP 3.2以降向け
    <!-- Policy for GakuNin mAP (Cloud Gateway) -->
    <AttributeFilterPolicy id="PolicyforGakuNinmAP">
        <PolicyRequirementRule xsi:type="OR">
            <Rule xsi:type="Requester" value="https://map.gakunin.nii.ac.jp/shibboleth-sp" />
            <Rule xsi:type="Requester" value="https://cg.gakunin.jp/shibboleth-sp" />
        </PolicyRequirementRule>

        <AttributeRule attributeID="eduPersonPrincipalName">
            <PermitValueRule xsi:type="ANY" />
        </AttributeRule>
    </AttributeFilterPolicy>
IdPバージョン2向け
    <!-- Policy for GakuNin mAP (Cloud Gateway) -->
    <afp:AttributeFilterPolicy id="PolicyforGakuNinmAP" xmlns:afp="urn:mace:shibboleth:2.0:afp">
        <afp:PolicyRequirementRule xsi:type="basic:OR">
            <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://map.gakunin.nii.ac.jp/shibboleth-sp" />
            <basic:Rule xsi:type="basic:AttributeRequesterString" value="https://cg.gakunin.jp/shibboleth-sp" />
        </afp:PolicyRequirementRule>

        <afp:AttributeRule attributeID="eduPersonPrincipalName">
            <afp:PermitValueRule xsi:type="basic:ANY" />
        </afp:AttributeRule>
    </afp:AttributeFilterPolicy>


まず、GakuNin mAP (entityID: https://map.gakunin.nii.ac.jp/shibboleth-sp) に対して以下の属性を送信するようにしてください。

ePPN (eduPersonPrincipalName)

必須

eduPersonTargetedID

任意

jao

任意

o

任意

jaou

任意

ou

任意

jaDisplayName

任意

displayName

任意

mail

任意

eduPersonAffiliation任意

ou/jaou/eduPersonTargetedID/eduPersonAffiliationを除いた任意の各属性は、GakuNin mAP上でのアカウント登録時にユーザ情報を初期入力するために使用されます。ユーザ情報の「所属」は日本語および英語がそれぞれjaoおよびoに対応します。ユーザ情報の「氏名」は日本語および英語がjaDisplayNameおよびdisplayNameに対応します。

また、o/jaoおよびou/jaouについては、機関グループもしくは部局グループを作成するのに利用可能です。詳しくは左記お問い合わせ先までお問い合わせください。(機能削除のためご利用いただけません)

eduPersonAffiliationは、faculty/staffであれば当該利用者が管理者となっているグループのメンバーに対する強制入会/属性送信同意強制のオプションが加わります。詳しくはお問い合わせください。

そして、GakuNin mAPと連携しているサービス(SP)に対しても、必要な属性を送信していないとIdPの利用者は当該サービスが利用できませんのでご注意ください。

API

連携するIdPが利用できる、クラウドゲートウェイ画面で表示される利用可能サービスの情報を取得するためのAPIを以下に示します。
API(IdP)

SP管理者に必要な情報

SP管理者が提供しているサービスをGakuNin mAPと連携させるためには以下の手順に従って設定を行ってください。

以下の手順でisMemberOf属性を取得するためにはあらかじめIdPからeduPersonPrincipalName(ePPN)を取得していなければなりません。

以下の設定は、mAPの移行を行う2017年2月頃に再度変更予定です。お手数をおかけすることになりますが、あらかじめご了承ください。

 

  1. グループメンバー情報を取得できるようにする
    以下のようにShibboleth SPの設定ファイルを変更してください。動作確認は Shibboleth SP 2.4 で行っています。
    1. GakuNin mAP (IdP)のメタデータを次のリンクから取得して /etc/shibboleth/metadata/ に保存してください。
      gakuninmap-idp-metadata.xml
      cgidp-metadata.xml

    2. 2016年10月25日以前に設定されたかたは、アクセス先が変わっておりますので、最新のメタデータを用いてください。

      その際、アクセス先と証明書上ホスト名の不一致によるエラーを回避するため、shibboleth2.xmlの最後から2行目に以下の1行を追加してください。

          <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>

          <TransportOption provider="CURL" option="81">0</TransportOption>
      </SPConfig>

    3. shibboleth2.xmlの編集
      /etc/shibboleth/shibboleth2.xml を編集します。
      • GakuNin mAP (IdP)メタデータの読み込み
        a.でダウンロードしたメタデータを読み込むように設定します。他の<MetadataProvider>の後に下記を追加してください。

        <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>の後に以下の記述を追加します。

        <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>
        <!--
            <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>
        

        上記設定でコメントアウトしている部分は、現在のところmAP側で未対応です。後日対応予定です。

      • ホスト名不一致によるエラーの回避
        アクセス先と証明書上ホスト名の不一致によるエラーを回避するため、shibboleth2.xmlの最後から2行目に以下の1行を追加してください。

            <ProtocolProvider type="XML" validate="true" reloadChanges="false" path="protocols.xml"/>

            <TransportOption provider="CURL" option="81">0</TransportOption>
        </SPConfig>

        これを行わないと以下のエラーが発生します。

        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行

    4. attribute-map.xmlの編集
      /etc/shibboleth/attribute-map.xmlにisMemberOf属性の設定を行います。
      最後の</Attributes>の直前に、以下の記述を追加してください。

      <Attribute name="urn:oid:1.3.6.1.4.1.5923.1.5.1.1" id="isMemberOf"/>
      

      以前の版では以下の行も含めるように書いておりましたが、標準に準拠しておりませんのでこの記述は削除してください。

      <Attribute name="urn:mace:dir:attribute-def:isMemberOf" id="isMemberOf"/>
      
    5. attribute-policy.xmlの編集
      他のIdPからのisMemberOf属性を拒否し、GakuNin mAPからのisMemberOfのみを利用する設定を行ないます。

      <!-- Catch-all that pases everything else through unmolested. -->

      の直前に以下の記述を追加してください。

      <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>
      

      .

  2. 取得したisMemberOf属性を利用するようにサービスを変更する
    例えば、isMemberOf属性には下記のような値が入ります。全てURI形式です。

    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 ← ユーザが当該グループの管理者の場合

    後者2つは、SPコネクタの設定で「グループ情報も取得する」を選択した場合のみ取得できます。
    .
  3. SPに対応するSPコネクタを作成する

    以下の機能はまだ実装されておりませんので、権限が必要な方はお手数ですが下記メールアドレスまでご一報ください。

    あなたが学認申請システムでSP管理者として申請し、かつePPNを登録している場合はSPコネクタを作成する権限を与えられているはずです。そうでない場合は までお問い合わせください。
    SPコネクタ作成の詳細は、mAP利用マニュアルの「SPコネクタを作成する」の章をご参照ください。
    .

API

連携するSPが利用できる、利用者のグループ情報等を取得するためのAPIを以下に示します。
API

SP連携のトラブルシューティング

1. isMemberOf属性が取得できない

SP側の設定ファイルshibboleth2.xmlにて、ApplicationDefaultsに encryption="true" と指定されている場合、isMemberOf属性が取得できません。これはAttributeQueryのNameIDが暗号化されており、mAPが現状ではNameIDの暗号化に対応していないためです。上記指定を外せば取得できるようになります。

  • No labels