シボレス認証の設定

※ShibbolethモジュールはKUSANAGI Business Editionのみ利用可能になります。
動作は下記バージョン以上が必要です。

kusanagi8.4.3-1
Nginx1.17.2-2
kusanagi-biz1.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