...
本技術ガイドでは、フェデレーションに参加して連携する設定を説明していますが、ここでは、所属機関内のみで使用するSPを構築した場合など、特定のIdP・特定のSPの間でのみ連携する設定に変更する方法を説明します。
SP側shibboleth2.xmlとIdP側relyingxmlとIdP側metadata-partyproviders.xmlを編集し、以下のように設定します。
- SPは、DSを経由せず、特定のIdPのみ信頼する
- IdPは、特定のSPのみ信頼する
...
shibboleth2.xmlの設定
IdPのメタデータを別途取得している場合はそのメタデータファイルを用いてください。そうでない場合は以下の手順に従ってIdPメタデータを取得してください。
情報 |
---|
もしIdPが学認の運用フェデレーションに参加している場合は、代わりに学認メタデータからIdPメタデータを自動抽出して利用することもできます。詳しくは以下をご参照ください。 ⇒GakuNinShare:設定・運用・カスタマイズ#メタデータ中の特定のIdPのみ利用を許可する方法 この設定を行った場合、DSの参照設定無効化から続きを実行してください。 |
...
- テストフェデレーションに登録済みのIdPを利用する場合、学認申請システム(テストfed)にログインして該当IdPの詳細画面で「以下の内容のエンティティメタデータを取得」ボタンでメタデータを取得します。
...
パネル |
---|
borderColor | #cccccc |
---|
bgColor | #eeeeee |
---|
borderStyle | solid |
---|
|
(省略) <!-- Allows overriding of error template information/filenames. You can also add attributes with values that can be plugged into the templates. Example of locally maintained metadata. -->
<!-- コメントアウト解除 --> <Errors supportContact <MetadataProvider type=" root@localhost" helpLocation="/about.html" styleSheet="/shibboleth-sp/main.css"/XML" validate="true" path="メタデータファイル名"/> <!-- コメントアウト解除 -->
<!-- Example of remotely supplied batch of signed metadata. --> <!-- コメントアウト
<MetadataProvider type="XML" uri" validate="true"
url="https://ex-dsmetadata.gakunin.nii.ac.jp/fed/ex-fedgakunin-metadata.xml"
backingFilePath="federation-metadata.xml" reloadIntervalmaxRefreshDelay="7200">
<MetadataFilter <MetadataFilter type="RequireValidUntil" maxValidityInterval="1296000"/>
<MetadataFilter <MetadataFilter type="Signature" certificate="/etc/shibboleth/cert/gakunin-signer-20102017.cer" verifyBackup="false"/>
<DiscoveryFilter type="Exclude" matcher="EntityAttributes" trimTags="true"
</MetadataProvider> コメントアウト --> <!-- Example of locally maintained metadata. --> <!-- コメントアウト解除 --> <MetadataProvider type="XML" file="メタデータファイル名"/> <!-- コメントアウト解除 --> (省略)
|
...
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 |
---|
borderStyle | solid |
---|
|
(省略)
<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 entityID="https://test-idp1.gakunin.nii.ac.jp/idp/shibboleth" ↑IdPを設定(metadataに設定されているentityID) disiscoveryProtocoldiscoveryProtocol="SAMLDS" discoveryURL="https://ds.example.org/DS/WAYF"> SAML2 SAML1 </SSO>
(省略)
<!-- Session diagnostic service. -->
<Handler type="Session" Location="/Session" showAttributeValues="false"/>
<!-- JSON feed of discovery information. -->
<Handler type="DiscoveryFeed" Location="/DiscoFeed"/>
<!-- コメントアウト <SessionInitiator type="Chaining" Location="/DS" isDefault="true " id="DS"> <SessionInitiator type="SAML2" template="bindingTemplate.html"/> <SessionInitiator type="Shib1"/> <SessionInitiator type="SAMLDS" URL="https://test-ds.gakunin.nii.ac.jp/WAYF"/> </SessionInitiator>
コメントアウト --> </Sessions>
(省略) |
...
パネル |
---|
borderColor | #cccccc |
---|
bgColor | #eeeeee |
---|
borderStyle | solid |
---|
|
systemctl restart httpd systemctl restart shibd |
...
※DSを経由する設定にshibboleth2.xmlを戻したい場合は、こちらを参照してください。
...
metadata-
...
providers.xmlの設定
SPのメタデータを別途取得している場合はそのメタデータファイルを用いてください。そうでない場合は以下の手順に従ってSPメタデータを取得してください。
...
パネル |
---|
borderColor | #cccccc |
---|
bgColor | #eeeeee |
---|
borderStyle | solid |
---|
|
(省略)
<!-- ========================================== --> <!-- Metadata Configuration --> <!-- ========================================== --> <!-- MetadataProvider the combining other MetadataProviders --> <metadata:MetadataProvider id="ShibbolethMetadata" xsi:type="metadata:ChainingMetadataProvider"> <!-- Load the IdP's own metadata. This is necessary for artifact support. --> <!-- <metadata:MetadataProvider id="IdPMD" xsi:type="metadata:FilesystemMetadataProvider" metadataFile="/opt/shibboleth-idp/metadata/idp-metadata.xml" maxRefreshDelay="P1D" /> --> <!-- Example metadata provider. --> <!-- Reads metadata from a URL and store a backup copy on the file system. --> <!-- Validates the signature of the metadata and filters out all by SP entities in order to save memory --> <!-- To use: fill in 'metadataURL' and 'backingFile' properties on MetadataResource element --> <!-- コメントアウト <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 failFastInitialization="false">
<MetadataFilter xsi:type=" metadata:ChainingFilter"> <metadata:MetadataFilter xsi:type="metadata:RequiredValidUntil" maxValidityInterval="P15D" /> <metadata:MetadataFilter SignatureValidation" certificateFile="%{idp.home}/credentials/gakunin-signer-2017.cer" />
<MetadataFilter xsi:type=" metadata:SignatureValidation" trustEngineRef="shibboleth.MetadataTrustEngine" requireSignedMetadata="trueRequiredValidUntil" maxValidityInterval="P15D" />
<metadata:MetadataFilter <MetadataFilter xsi:type=" metadata:EntityRoleWhiteList">
<metadata:RetainedRole>samlmd <RetainedRole>md:SPSSODescriptor</ metadata:RetainedRole>
</metadata:MetadataFilter> </metadata:MetadataFilter> </metadata:MetadataProvider> コメントアウト --> ↓以下の2行を追加 <metadata:MetadataProvider </MetadataFilter>
</MetadataProvider> --> ← 学認メタデータの自動ダウンロードを使用しないのでコメントアウト ↓以下を追加 <MetadataProvider id="SP名MD" xsi:type=" metadata:FilesystemMetadataProvider" metadataFile=" /opt/shibboleth-idp%{idp.home}/metadata/メタデータファイル名"/> </metadata:MetadataProvider> (省略)
|
※端末のサイズによっては表記がずれる可能性がございます。画面を広くしてご覧ください。
情報 |
---|
学認参加IdPが個別の学内SPとも連携したい場合など、フェデレーションのメタデータ設定をコメントアウトせずにSPメタデータ設定を追加すれば、どちらのSPとも連携できます。 |
設定変更後、tomcatを再起動します。 設定変更後、Jettyを再起動します。
パネル |
---|
borderColor | #cccccc |
---|
bgColor | #eeeeee |
---|
borderStyle | solid |
---|
|
systemctl restart jetty |
※フェデレーションのメタデータの参照設定を行った設定にrelying ※フェデレーションのメタデータの参照設定を行った設定にmetadata-partyproviders.xmlを戻す場合は、こちらを参照してください。
利用するSPにアクセスし、DSを経由せず、設定したIdPに直接アクセスすること、およびIdPで認証してSPに接続できることを確認してください。