※ShibbolethモジュールはKUSANAGI Business Editionのみ利用可能になります。
動作は下記バージョン以上が必要です。
kusanagi | 8.4.3-1 |
Nginx | 1.17.2-2 |
kusanagi-biz | 1.1.0 |
KUSANAGI最新版へアップデート
yum update kusanagi kusanagi-*
Shibboleth モジュールインストール
kusanagi addon install shibboleth
Shibbleth SP の構成
/etc/shibboleth2.xmlの変更
SPの EntityID を定義します。
<ApplicationDefaults entityID="https://<SP ServerName>/shibboleth-sp"
認証ディレクトリ設定 ※必要な場合設定してください
secureディレクトリ以下へアクセスした場合、認証が必要
Nginx
RequestMapperサンプルをコピー
cp -p /etc/shibboleth/example-request-mapper.xml /etc/shibboleth/request-mapper.xml
RequestMapperファイルの中身
cat /etc/shibboleth/request-mapper.xml <RequestMap xmlns="urn:mace:shibboleth:3.0:native:sp:config"> <Host name="<SP ServerName>" authType="shibboleth"> <Path name="secure" requireSession="true" redirectToSSL="443"/> </Host> </RequestMap>
/etc/shibboleth2.xmlにRequestMapper読み込むの設定を追加
<RequestMapper type="XML" path="request-mapper.xml" /> <ApplicationDefaults entityID="<SP ServerName>/shibboleth-sp"
Apache
/etc/httpd/conf.d/shib.conf 既に記載しているので、別途追加設定不要です。
設定箇所の抜粋
<Location "/secure"> AuthType shibboleth ShibRequestSetting requireSession 1 require shib-session </Location>
IdP情報をSPに設定
SSO連携する IdP の EntityID を定義します。
<SSO entityID="https://<IdP ServerName>/idp/shibboleth"
IdP担当者から SPで保持するIdP のメタデータを受領し、IdPのメタデータを読み込む設定を定義します。
※IdPがメタデータのURLを公開し、SPがこのURLをfetchする方法などありますがここでは割愛します。
URLをfetchする方法詳細は学認サイトのSPセッティングを参考してください。
IdPメタデータを設定します。
<MetadataProvider type="XML" path="idp-metadata.xml"/>
SP側の SAMLトークン用の証明書と秘密鍵もshibboleth2.xml ファイルで定義します。
※ここではインストール時に生成されるデフォルトの証明書と秘密鍵を指定しています。
<!-- Simple file-based resolvers for separate signing/encryption keys. --> <CredentialResolver type="File" use="signing" key="sp-signing-key.pem" certificate="sp-signing-cert.pem"/> <CredentialResolver type="File" use="encryption" key="sp-encrypt-key.pem" certificate="sp-encrypt-cert.pem"/>
SP側のメタデータを生成します
/etc/shibboleth/metagen.sh -c /etc/shibboleth/sp-signing-cert.pem -h <SP ServerName> -e "https://<SP ServerName>/shibboleth-sp" > /etc/shibboleth/shibboleth-sp-metadata.xml
Shibboleth 関連サービスを起動
systemctl start shibd systemctl start shibauthorizer systemctl start shibresponder
Shibboleth SP で 受け取るLDAP属性はデフォルトではコメントアウトされている為、受け取る必要があるLDAP属性をアンコメントします。
vi /etc/shibboleth/attribute-map.xml
OID情報をアンコメント
<Attribute name="urn:oid:0.9.2342.19200300.100.1.3" id="mail"/>
Attribute definition をアンコメント
<Attribute name="urn:mace:dir:attribute-def:mail" id="mail"/>
サービスを再起動します。
systemctl restart shibd systemctl status shibd
※Apacheの場合は上記まで設定すれば、属性受け取ることができます。
nginxについては以下の追加設定が必要
NginxのShibboleth 設定を有効化にするため、対象コンフィグファイル変更
vi /etc/nginx/conf.d/xxxxx_http.conf vi /etc/nginx/conf.d/xxxxx_ssl.conf
Shibboleth 関連設定をアンコメントにする
include templates.d/shibd.conf; include shib_fastcgi_params; include shib_clear_headers;
受け取る情報を整形
vi /etc/nginx/shib_fastcgi_params
shib_request_set $shib_mail $upstream_http_variable_mail; fastcgi_param mail $shib_mail;
Nginxを再起動
kusanagi nginx
IdPとSPの接続確認
学認で公開しているページを参考してください。
LINK