SingleSignOnプラグインは、Security Assertion Markup Language 2.0 (SAML 2.0)プロトコルによりシングルサインオン機能を提供する別売りのプラグインです。IDプロバイダーに登録されたID(メールアドレス)・パスワード1つでPowerCMS X(またその他のWebアプリケーション)の認証を行うことができるようになります。ユーザー(PowerCMS X管理画面利用者)・メンバー(会員限定サイト)の両方に対応しています。
IdPはOkta等のIDプロバイダー、SPはPowerCMS Xです。用語はIdPにより異なる場合があります。
これらはメタデータXMLを交換し合うことで情報のやり取りができます。
composer require litesaml/lightsaml:"4.1.4"を実行します| 項目 | 設定値例 | 備考 |
|---|---|---|
| Identity ProviderのSSOエンドポイントURL | https://auth.example.com/auth/realms/Alfasado/protocol/saml | IdPのメタデータ内を確認して設定します |
| エンティティID | PowerCMSX | IdP管理者が分かりやすいものであれば何でもよいですし、IdP管理者が指定しても良いです |
| ACSエンドポイントURLを入力 | https://test.example.com/pt-sso.php | |
| Identity Providerの公開鍵ファイル名、または公開鍵ファイルの絶対パスを入力 | /var/www/vhosts/test/customized_files/plugins/SingleSignOn/cert/idp_public.key | ファイル名は変更可 |
| クライアント(SP)で署名機能を利用する | 必要に応じてチェック | IdPの設定と合わせます |
| 秘密鍵ファイル名、または秘密鍵ファイルの絶対パスを入力 | /var/www/vhosts/test/customized_files/plugins/SingleSignOn/cert/sp_private.key | |
| 公開鍵ファイル名、または公開鍵ファイルの絶対パスを入力 | /var/www/vhosts/test/customized_files/plugins/SingleSignOn/cert/sp_public.pem |
SPのメタデータを基に以下の項目を設定します。多くの場合、IdPの管理者が設定を行います。用語はIdPにより異なる場合があります。
| 項目 | 設定値例 | 備考 |
|---|---|---|
| クライアントID | PowerCMSX | |
| Name IDフォーマット | ||
| アサーションを署名する | オン | |
| 署名アルゴリズム | RSA_SHA256 | |
| クライアント署名が必要 | オン or オフ | 署名は任意で、SPと設定を合わせます |
| 有効なリダイレクトURI | https://test.example.com/powercmsx/* | |
| ACSのPOSTバインディングURL | https://test.example.com/powercmsx/pt-sso.php?__mode=acs&_model=user |
trueにすることで通常のユーザー名・パスワードによるログイン、パスワード再設定を利用できないようにします。AppPropertiesプラグインを利用して管理画面の環境変数で設定することもできますが、管理者がログインできなくなってしまった場合に備えてconfig.jsonに記述することをおすすめします。
SingleSignOnプラグイン内のtmpl/sso_login_saml.tmplをコピーしてalt-tmplに入れた後でカスタマイズをしてください。
トラブルシューティングの際にはブラウザから送信されるSAMLRequest、IdPから送信されるSAMLResponseを解析が必要となります。これらはブラウザの開発者ツールのネットワークタブにて確認・取得ができます。また、SAMLResponseの解析にはSAML Message Decoder等のツールも使用できます。
IdPからSPにPOSTされるSAMLResponseを解析し、saml:Subjectの中のsaml:NameIDの値がPowerCMS Xに登録されているメールアドレスかを確認してください。
OktaなどIdPによってはSAMLResponseからInResponseToの値が取れないことがあります。プラグイン設定「IdP-Initiated SSOを有効化」にチェックを入れてみてください。
通常の製品サポートでは個別案件に対するサポートができないため、「SingleSignOn」プラグインの設定については有償プランをご用意しています。必要に応じてご相談ください。