比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

...

本技術ガイドでは、フェデレーションに参加して連携する設定を説明していますが、ここでは、所属機関内のみで使用するSPを構築した場合など、特定のIdP・特定のSPの間でのみ連携する設定に変更する方法を説明します。

SP側shibboleth2.xmlとIdP側relyingxmlとIdP側metadata-partyproviders.xmlを編集し、   xmlを編集し、以下のように設定します。 

  1. SPは、DSを経由せず、特定のIdPのみ信頼する
  2. IdPは、特定のSPのみ信頼する

ように設定します。

 

shibboleth2.xmlの設定


...

shibboleth2.xmlの設定

IdPのメタデータを別途取得している場合はそのメタデータファイルを用いてください。そうでない場合は以下の手順に従ってIdPメタデータを取得してください。

情報

もしIdPが学認の運用フェデレーションに参加している場合は、代わりに学認メタデータからIdPメタデータを自動抽出して利用することもできます。詳しくは以下をご参照ください。
GakuNinShare:設定・運用・カスタマイズ#メタデータ中の特定のIdPのみ利用を許可する方法

この設定を行った場合、DSの参照設定無効化から続きを実行してください。


  • テストフェデレーションに登録済みのIdPを利用する場合、学認申請システム(テストfed)にログインして該当IdPの詳細画面で「以下の内容のエンティティメタデータを取得」ボタンでメタデータを取得します。
  • テストフェデレーションに参加していない場合でも、学認申請システム(テストfed)を用いてIdPメタデータを取得することが可能です。

学認申請システム(テストfed)にアクセスして、「新規IdP申請」をクリックします。

○右側の入力に以下の必須情報を入力します。
        entityID → 指定するIdPのentityID。 例: https://idp.example.ac.jp/idp/shibboleth
        機関名称 → 入力例: フェデレーション大学 / The University of Federation
        スコープ → SPがIdPを識別するための情報。 例: nii.ac.jp
        証明書 → IdPの証明書をファイルで指定するか、もしくは MII… で始まる中身を貼り付けます。
        IdP名称 → 他のIdP/SPと区別できる名称。
        機関情報URL → IdP運用機関のウェブサイトURL。
        連絡先 → 種別は「技術的問い合せ先(technical)」を選択して連絡先を入力してください。

○入力後、申請せずに、「以下の内容でエンティティメタデータ生成」ボタンをクリックしてください。当該IdPのメタデータが生成されます。

IdPのメタデータを取得したら、それをSP上に配置します。端末上にある場合は、当該ファイルの中身を表示し全てコピーし、SP上でvi等を実行し挿入できる状態にした上で、貼り付けてください。

  • 取得したIdPのメタデータをSPの /etc/shibboleth/ (もしくは /etc/shibboleth/metadata/)に配置します。配置したIdPのメタデータファイルを参照する設定を追加し、フェデレーションのメタデータ設定を外します。どのIdPに認証要求を行うか設定し、DSの参照設定を無効にする。
パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

    (省略)
        <!-- Example of locally maintained metadata. -->

        <!-- コメントアウト解除 -->
        <MetadataProvider type="XML" validate="true" path="メタデータファイル名"/>
        <!-- コメントアウト解除 -->

        <!-- Example of remotely supplied batch of signed metadata. -->
        <!-- コメントアウト

        <MetadataProvider type="XML" validate="true"
                 url="https://metadata.gakunin.nii.ac.jp/gakunin-metadata.xml"
                 backingFilePath="federation-metadata.xml" maxRefreshDelay="7200">
           <MetadataFilter type="RequireValidUntil" maxValidityInterval="1296000"/>
           <MetadataFilter type="Signature" certificate="/etc/shibboleth/cert/gakunin-signer-2017.cer" verifyBackup="false"/>
           <DiscoveryFilter type="Exclude" matcher="EntityAttributes" trimTags="true"
              attributeName="http://macedir.org/entity-category"
              attributeNameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
              attributeValue="http://refeds.org/category/hide-from-discovery" />
           <TransportOption provider="CURL" option="64">1</TransportOption>
           <TransportOption provider="CURL" option="81">2</TransportOption>
           <TransportOption provider="CURL" option="10065">/etc/pki/tls/certs/ca-bundle.crt</TransportOption>
        </MetadataProvider>

        コメントアウト -->

    (省略)


  • 認証要求先のIdPを設定し、DSの参照設定を無効にします。
パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

   (省略)

  

 

   

   <Sessions

lifetime="28800"

timeout="3600"

relayState="ss:mem"
  

 

 

    

 

 

 

   

checkAddress="false"

handlerSSL="false"

cookieProps="http">

  

 

 

 

   

   <!--
  

 

 

 

   

   Configures

SSO

for

a

default

IdP.

To

allow

for

>1

IdP,

remove
  

 

 

 

   

   entityID

property

and

adjust

discoveryURL

to

point

to

discovery

service.
  

 

 

 

   

   (Set

discoveryProtocol

to

"WAYF"

for

legacy

Shibboleth

WAYF

support.)
  

 

 

 

   

   You

can

also

override

entityID

on

/Login

query

string,

or

in

RequestMap/htaccess.
  

 

 

 

 

 

   -->

<SSO

            <SSO entityID="https://test-idp1.gakunin.nii.ac.jp/idp/shibboleth"

↑IdPを設定(metadataに設定されているentityID)


                           ↑IdPを設定(metadataに設定されているentityID)
                 discoveryProtocol="SAMLDS"

discoveryURL="https://ds.example.org/DS/WAYF">

SAML2 SAML1


              SAML2 SAML1
            </SSO>


  

(省略)



 

 

 

 

 

 

<!--

Session

diagnostic

service.

-->
 

 

 

 

 

 

<Handler

type="Session"

Location="/Session"

showAttributeValues="false"/>

 

 

 

 

 

 

<!--

JSON

feed

of

discovery

information.

-->
 

 

 

 

 

 

<Handler

type="DiscoveryFeed"

Location="/DiscoFeed"/>

<!-- JSON feed of discovery information. --> <Handler type="DiscoveryFeed" Location="/DiscoFeed"/> <SessionInitiator


            <!-- コメントアウト
            <SessionInitiator type="Chaining"

Location="/DS"

isDefault="

false

true "

id="DS">

↑DSの参照設定をtrue → falseに変更 <SessionInitiator


                <SessionInitiator type="SAML2"

template="bindingTemplate.html"/>

<SessionInitiator


                <SessionInitiator type="Shib1"/>

<SessionInitiator


                <SessionInitiator type="SAMLDS"

URL="https://test-ds.gakunin.nii.ac.jp/WAYF"/>


            </SessionInitiator>

</Sessions>


   (省略)

...

 

...

  • フェデレーションのメタデータ設定を外し、指定するSPのメタデータpartner-metadata.xmlを設置します。

...

borderColor#cccccc
bgColor#eeeeee
borderStylesolid

...

          コメントアウト -->
        </Sessions>


   (省略)

 ※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。 


 設定変更後、httpdとshibdを再起動します。

...

 

  • IdPのメタデータを別途取得している場合はそのメタデータファイルを用いてください。そうでない場合は、以下の手順に従ってIdPメタデータを切り出します。
  • メタデータpartner-metadata.xmlを編集します。

メタデータ /var/cache/shibboleth/federation-metadata.xml を /etc/shibboleth/partner-metadata.xml にコピーします。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
cp /var/cache/shibboleth/federation-metadata.xml /etc/shibboleth/partner-metadata.xml 

 partner-metadata.xml中の指定したIdPの記述以外のサーバ内容を全て削除します。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
 <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<EntitiesDescriptor ...
   (省略)

<!-- IdP: Your Organization Name, Your IdP Site URL, Date -->
↑最初のこの記述から指定したIdPで検索し、場所を特定します

   (省略)

    <EntityDescriptor entityID="https://test-idp1.gakunin.nii.ac.jp/idp/shibboleth">
        <IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol
                                                      urn:mace:shibboleth:1.0 
                                                      urn:oasis:names:tc:SAML:2.0:protocol">
           <Extensions>
               <shibmd:Scope xmlns:shibmd="urn:mace:shibboleth:metadata:1.0" regexp="false">.nii.ac.jp</shibmd:Scope>
                <mdui:UIInfo xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui">
                    <mdui:Keywords xml:lang="en">category:location:seito</mdui:Keywords>
                </mdui:UIInfo>
           </Extensions>
           <KeyDescriptor>
               <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                   <ds:X509Data>
                       <ds:X509Certificate>
MIIE5zCCA8+gAwIBAgIISYxA1Yv0Z2IwDQYJKoZIhvcNAQEFBQAwfTELMAkGA1UE
BhMCSlAxETAPBgNVBAcTCEFjYWRlbWUyMSowKAYDVQQKEyFOYXRpb25hbCBJbnN0
aXR1dGUgb2YgSW5mb3JtYXRpY3MxDTALBgNVBAsTBFVQS0kxIDAeBgNVBAsTF05J
SSBPcGVuIERvbWFpbiBDQSAtIEcyMB4XDTEyMDMyNjAyMDIxNVoXDTE0MDQyNTAy

   (省略)

            <KeyDescriptor <
                <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#" >
                    <ds:X509Data >
                        <ds:X509Certificate >
MIIE5zCCA8+gAwIBAgIISYxA1Yv0Z2IwDQYJKoZIhvcNAQEFBQAwfTELMAkGA1UE
BhMCSlAxETAPBgNVBAcTCEFjYWRlbWUyMSowKAYDVQQKEyFOYXRpb25hbCBJbnN0
aXR1dGUgb2YgSW5mb3JtYXRpY3MxDTALBgNVBAsTBFVQS0kxIDAeBgNVBAsTF05J
SSBPcGVuIERvbWFpbiBDQSAtIEcyMB4XDTEyMDMyNjAyMDIxNVoXDTE0MDQyNTAy

   (省略)

       <ContactPerson contactType="technical">
           <GivenName>Your GivenName</GivenName>
           <SurName>Your SurName</SurName>
           <EmailAddress>admin@example.org</EmailAddress>
       </ContactPerson>

   </EntityDescriptor>

<!-- IdP: Your Organization Name, Your IdP Site URL, Date -->


</EntitiesDescriptor>     <--消さないように注意

 設定変更後、httpdとshibdを再起動します。

systemctl restart httpd
systemctl restart shibd
solid
展開
titleCentOS 6の場合
パネル
パネル
borderColor#cccccc
bgColor#eeeeee
borderStyle
service httpd restart

service shibd restart

...


※DSを経由する設定にshibboleth2.xmlを戻したい場合は、こちらを参照してください。

 

...



metadata-

...

providers.xmlの設定

SPのメタデータを別途取得している場合はそのメタデータファイルを用いてください。そうでない場合は以下の手順に従ってSPメタデータを取得してください。

  • テストフェデレーションに登録済みのSPを利用する場合、学認申請システム(テストFedテストfed)で承認済みのSPを利用する場合、ログインして該当SPの詳細画面で「以下の内容のエンティティメタデータを取得」ボタンでメタデータを取得します。にログインして該当SPの詳細画面で「以下の内容のエンティティメタデータを取得」ボタンでメタデータを取得します。学認申請システム
  • テストフェデレーションに参加していない場合でも、学認申請システム(テストFedテストfed)に参加していない場合でも、申請システムを用いてSPメタデータを取得できます。    を用いてSPメタデータを取得することが可能です。   

学認申請システムにアクセスして、「新規SP申請」をクリックします(テストfed)にアクセスして、「新規SP申請」をクリックします。

○右側の入力に以下の必須情報を入力します。
        entityID → 指定するSPのentityID。 例: https://idpsp.example.ac.jp/idp/shibboleth-sp
        機関名称 → 入力例: フェデレーション大学 / The University of Federation
        証明書 → SPの証明書をファイルで指定するか、もしくは MII… で始まる中身を貼り付けます。
        DSからのリターンURL → DSからの戻り先となるURL。例DSからの戻り先となるURL。: https://sp.example.ac.jp/Shibboleth.sso/DS
        SP名称 → 他のIdP/SPと区別できる名称。
        機関情報URL → SP運用機関のウェブサイトURL。
        連絡先 → 種別は「技術的問い合せ先(technical)」を選択して連絡先を入力してください。

○入力後、申請せずに、「以下の内容でエンティティメタデータ生成」をクリックしてください。当該SPのメタデータが生成されます。○入力後、申請せずに、「以下の内容でエンティティメタデータ生成」ボタンをクリックしてください。当該SPのメタデータが生成されます。

...

SPのメタデータを取得したら、それをIdP上に配置します。端末上にある場合は、当該ファイルの中身を表示し全てコピーし、IdP上でvi等を実行し挿入できる状態にした上で、貼り付けてください。

  • 取得したSPのメタデータをIdP側に設置します。SPのメタデータファイルを 取得したSPのメタデータをIdPの /opt/shibboleth-idp/metadata/ に配置し、フェデレーションのメタデータ設定を外します。 に配置します。配置したSPのメタデータファイルを参照する設定を追加し、フェデレーションのメタデータ設定を外します。
パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid

    (省略)

「Metadata Configuration」を検索し、場所を特定してください。      <!-- -->  コメントアウトを解除、メタデータの場所を設定 <metadata:MetadataProvider id="IdPMD" xsi:type="metadata:ResourceBackedMetadataProvider"> <metadata:MetadataResource xsi:type="resource:FilesystemResource" file="/opt/shibboleth-idp/metadata/メタデータファイル名"/> </metadata:MetadataProvider> <!-- -->  コメントアウトを解除    (省略) フェデレーションのメタデータ設定をコメントアウトします。 <!-- コメントアウト <metadata:MetadataProvider id="URLMD" xsi:type="metadata:FileBackedHTTPMetadataProvider" metadataURL="

    The EntityRoleWhiteList saves memory by only loading metadata from entity types
    that you will interoperate with.
-->
<!-- ← 学認メタデータの自動ダウンロードを使用しないのでコメントアウト
<MetadataProvider id="HTTPMetadata"
                  xsi:type="FileBackedHTTPMetadataProvider"
                  backingFile="%{idp.home}/metadata/gakunin-metadata-backing.xml"
                  metadataURL="

https://metadata.gakunin.nii.ac.jp/gakunin-metadata.xml"

backingFile="/opt/shibboleth-idp/metadata/some-metadata.xml"> <metadata:MetadataFilter xsi:type="metadata:ChainingFilter"> <metadata:MetadataFilter


                  failFastInitialization="false">

<MetadataFilter xsi:type="SignatureValidation" certificateFile="%{idp.home}/credentials/gakunin-signer-2017.cer" />

   <MetadataFilter xsi:type="

metadata:

RequiredValidUntil"

maxValidityInterval="P15D"

/> <metadata:MetadataFilter

/>
   <MetadataFilter xsi:type=

"metadata:SignatureValidation" trustEngineRef="shibboleth.MetadataTrustEngine" requireSignedMetadata="true" /> <metadata:MetadataFilter xsi:type="metadata:EntityRoleWhiteList"> <metadata:RetainedRole>samlmd:SPSSODescriptor&g\lt;/metadata:RetainedRole> </metadata:MetadataFilter> </metadata:MetadataFilter> </metadata:MetadataProvider> --> コメントアウト

端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。 

"EntityRoleWhiteList">
       <RetainedRole>md:SPSSODescriptor</RetainedRole>
   </MetadataFilter>
</MetadataProvider>
--> ← 学認メタデータの自動ダウンロードを使用しないのでコメントアウト
↓以下を追加
<MetadataProvider id="SP名MD" xsi:type="FilesystemMetadataProvider" metadataFile="%{idp.home}/metadata/メタデータファイル名"/>

    (省略)

端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。 

情報

学認参加IdPが個別の学内SPとも連携したい場合など、フェデレーションのメタデータ設定をコメントアウトせずにSPメタデータ設定を追加すれば、どちらのSPとも連携できます。


 設定変更後、Jettyを再起動します。 設定変更後、tomcatを再起動します。

パネル
borderColor#cccccc
bgColor#eeeeee
borderStylesolid
systemctl restart jetty
展開
titleCentOS 6の場合(Tomcat)
パネル
service 
tomcat6
tomcat7 restart

 ※フェデレーションのメタデータの参照設定を行った設定にrelying ※フェデレーションのメタデータの参照設定を行った設定にmetadata-partyproviders.xmlを戻す場合は、こちらを参照してください。 


利用するSPにアクセスし、DSを経由せず、設定したIdPに直接アクセスすること、およびIdPで認証してSPに接続できることを確認してください。