Shibboleth IdPとSimpleSAMLphpのSPを接続する
概要
Shibboleth IdPとSimpleSAMLphpのSPを連携させるには、Shibboleth IdPで一部専用の設定を行う必要がある。その部分を含めての設定手順。今回の手順ではDSは利用しない。
設定方法
構築環境
- IdP: Shibbpleth IdP 3.4.6、Tomcat 7、OpenJDK 8
- SP: SimpleSAMLphp 1.18.7、PHP 5.6
- 共通: CentOS 7.8、Apache httpd 2.4.6
IdPのホスト名: idp.mydomain
SPのホスト名: sp.mydomain
SimpleSAMLphpのインストール
Apache httpdの設定とサーバ証明書の導入は完了しているものとする。
# wget https://github.com/simplesamlphp/simplesamlphp/releases/download/v1.18.7/simplesamlphp-1.18.7.tar.gz
# tar xzvf simplesamlphp-1.18.7.tar.gz
# chown -R apache:apache simplesamlphp-1.18.7
# mv simplesamlphp-1.18.7 /var/www/
# vi /etc/httpd/conf.d/ssp.conf
Alias /simplesaml /var/www/simplesamlphp-1.18.7/www
# systemctl reload httpd
※パスを /simplesaml から変更する場合は、/var/www/simplesamlphp-1.18.7/config/config.php の baseurlpath の値も変更する。
/var/www/simplesamlphp-1.18.7/config/config.php
の以下の値を適当に変更。
・secretsalt
・auth.adminpassword
Shibboleth IdPのメタデータをSimpleSAMLphpに登録
Shibboleth IdPで /opt/shibboleth-idp/metadata/idp-metadata.xml
の内容をコピーする。学認IdPの場合は、このメタデータを利用せず、IdPのXMLを「学認申請システム」から拾ってくる。
ウェブブラウザで https://sp.mydomain/simplesaml
にアクセスし、[連携]タブの「XMLをSimpleSAMLphpメタデータに変換」をクリック。「メタデータパーサ」でIdPのXMLをパースし、表示される saml20-idp-remote の値をコピーし、/var/www/simplesamlphp-1.18.7/metadata/saml20-idp-remote.php
にコピーした値を追記する。
[連携]タブを再度開き、「SAML 2.0 IdPメタデータ(Trusted)」に追記したIdPが表示されていることを確認。
Shibboleth IdPにSimpleSAMLphp SP用メタデータ追加
SimpleSAMLphpで[連携]タブから「メタデータを表示」をクリック、「SAML 2.0 用のメタデータXMLフォーマット:」の値をコピーする。
コピーしたXMLをShibboleth IdPの /opt/shibboleth-idp/metadata/
のなかに任意の名前で保存する。ここでは simplesaml.xml とする。
/opt/shibboleth-idp/conf/metadata-providers.xml
に以下を追記。idは適当に変更しても良い。
+ <MetadataProvider id="SimpleSAMLphpSP"
+ xsi:type="FilesystemMetadataProvider"
+ metadataFile="%{idp.home}/metadata/simplesaml.xml"/>
</MetadataProvider>
/opt/shibboleth-idp/conf/attribute-filter.xml
に以下を追記。Requesterとして記載するEntity IDはSimpleSAMLphpの[連携]タブで確認しておく。必要に応じてAttributeRuleを追加。
<AttributeFilterPolicy id="PolicyforSimpleSAMLphp">
<PolicyRequirementRule xsi:type="Requester"
value="https://sp.mydomain/simplesaml/module.php/saml/sp/metadata.php/default-sp" />
<AttributeRule attributeID="eduPersonPrincipalName" permitAny="true" />
<AttributeRule attributeID="eduPersonTargetedID" permitAny="true" />
</AttributeFilterPolicy>
/opt/shibboleth-idp/conf/relying-party.xml
を編集して以下を追記。このencryptAssertionsとencryptNameIDsがfalseになっていないと、SimpleSAMLphpとの連携ができない。
<util:list id="shibboleth.RelyingPartyOverrides">
+ <bean parent="RelyingPartyByName"
+ c:relyingPartyIds="#{{'https://sp.mydomain/simplesaml/module.php/saml/sp/metadata.php/default-sp'}}">
+ <property name="profileConfigurations">
+ <list>
+ <bean parent="SAML2.SSO" p:encryptAssertions="false" p:encryptNameIDs="false" />
+ </list>
+ </property>
+ </bean>
</util:list>
設定反映のため、tomcatを再起動。
# systemctl restart tomcat
simpleSAMLphp設定ページを開き、[認証]タブから「設定されている認証元をテスト」をクリック。「default-sp」をクリック。IdPの認証画面に遷移し、認証が成功すれば設定完了。
Author And Source
この問題について(Shibboleth IdPとSimpleSAMLphpのSPを接続する), 我々は、より多くの情報をここで見つけました https://qiita.com/papillon/items/a8076e19c31bbaaa7659著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .