OneLogin SAML SSO の設定項目

WordPress のプラグイン「 OneLogin SAML SSO 」を使ったので、設定項目についてまとめていきます。
AWSSSO との連携を想定して書いていきます。

#STATUS
![スクリーンショット 2021-12-03 13.30.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1488939/c8e2b759-55c3-533d-8026-019961d1414b.png)

###Enable
SAML ログインの有効、無効を切り替えます。

#IDENTITY PROVIDER SETTINGS
連携先（今回はAWSSSO）の情報を設定します。

###IdP Entity Id
AWS SSO発行者URLをコピペします。

###Single Sign On Service Url
サインイン時に認証リクエストを送信する IdP の URL ターゲット。
AWS SSOサインインURLをコピペします。

###Single Log Out Service Url
サインアウト時にSLO リクエストを送信する IdP の URL ターゲット。
AWS SSOサインアウトURLをコピペします。

###X.509 Certificate
IdP の x509 証明書を設定します。
AWS SSO 証明書をダウンロードして、中身をコピペします。

#OPTION
![スクリーンショット 2021-12-03 13.56.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1488939/5adc787b-53ad-c2b4-26fc-27e9e2edbe09.png)

###Create user if not exists
ログインしたユーザーが WordPress に存在しない場合、 IdP から提供されたデータを元に新しいユーザーを作成します。

###Update user data
SSO 側でユーザー情報が更新された場合、IdP から提供されたデータを元に WordPress ユーザーのアカウント情報を更新します。

###Force SAML login
有効の場合、ユーザーにIdPでの認証を強制します。

###Single Log Out
シングルログアウトの有効、無効を切り替えます。

###Keep Local login
WordPress ユーザーを使ったログインを行う、通常のログインフォームの有無を設定します。

###Alternative ACS Endpoint
/wp-login.php?saml_acs とは異なる Assertion Consumer Endpoint を使用する場合に有効にします。この設定を変更した後は、新しい値でIdPを更新する必要があります。

###Match Wordpress account by
WordPress ユーザーを検索するためにどのフィールドを使用するかを選択します。

###Trigger wp_login hook
有効にすると、wp_login フックがトリガーされます。

###Multi Role Support
複数のロールへの対応を有効／無効にします。

###Trust URL domains on RelayState
RelayStateパラメータで信頼したいドメインを設定。
カンマ区切りで列挙する。

#ATTRIBUTE MAPPING
IdP でのユーザー属性と WordPress のユーザー属性を対応させる設定。

![スクリーンショット 2021-12-03 15.04.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1488939/9ef7fd96-4025-3dee-b51e-cc11e0b58846.png)

- Username
- E-mail
- First Name
- Last Name
- Nickname
- Role
- Remenber Me

#ROLE MAPPING
IdP でのロールと WordPress の権限グループの対応を設定します。

![スクリーンショット 2021-12-03 15.13.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1488939/897e566e-0b23-c537-5391-b40609db105b.png)

- Administrator
- Editor
- Author
- Contributor
- Subscriber

###Multiple role values in one saml attribute value
ロールの値が一意の属性文（複数の属性文ではなく）で提供された場合、これを有効にすると、プラグインはこれらの値を .で分割しようとします。

###Regular expression for multiple role values
複雑な多値データからロールを抽出する正規表現（前のオプションを有効にするために必要）。

#ROLE PRECEDENCE
IdPが複数のロールを返した場合に、それらの優先順位を設定する。
![スクリーンショット 2021-12-03 16.07.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1488939/92ab8499-4e36-d865-75a7-82192c2cbeff.png)

- Administrator
- Editor
- Author
- Contributor
- Subscriber

#CUSTOMIZE ACTIONS AND LINKS
ユーザーがメールアドレスやパスワードを変更する機能や、パスワードをリセットする機能を有効にすることができます。また、ユーザー登録やパスワード紛失時のリンクを無効にすることもできます。
![スクリーンショット 2021-12-03 16.09.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1488939/a407e833-40dd-6e2f-2e4d-f7a80641a2fa.png)

###Prevent use of ?normal
チェックを入れると、このオプションを無効にし、有効でない場合はローカルログインを提供します。

###Prevent reset password
チェックを入れるとパスワードリセットが無効になります。

###Prevent change password
チェックを入れるとパスワード変更が無効になります。

###Prevent change mail
チェックを入れるとメールアドレスの変更が無効になります。

###Stay in WordPress after SLO
有効の場合ログイン時に AWSSSO ログインページにアクセスせず WordPress のログインフォームにとどまります。

###User Registration
ユーザー登録リンクを上書きします。

###Lost Password
紛失したパスワードのリンクを上書きします。

###SAML Link Message
Keep Local login」が有効な場合は、SAMLリンクにメッセージとして表示されます。

#ADVANCED SETTINGS
カスタマイズやセキュリティ問題に関するパラメータの設定。

![スクリーンショット 2021-12-03 17.22.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1488939/4d73a7f7-8337-d738-b84a-31669b095b14.png)
![スクリーンショット 2021-12-03 17.23.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1488939/94a8acd9-8972-e1c5-11e8-57ab2053b603.png)

###Debug Mode
有効にするとエラーと警告が表示されます。 SAML ワークフローをデバッグするために設定します。

###Strict Mode
有効な場合、 署名、暗号化されていないメッセージを拒否します。 SAML 標準に従っていないメッセージも拒否されます。

###Service Provider Entry Id
サービスプロバイダーのEntity IDを設定します。指定されていない場合は、「php-saml」が使用されます。

###Lowercase URL encoding?
一部のIdPは小文字のURLエンコーディングを使用できますが、このプラグインは大文字のURLエンコーディングを想定しているため、非互換性の問題を修正できるようにします。

###Encrypt nameID
有効にすると SP が送信する nameID は暗号化されます。

###Sign AuthnRequest
有効にすると SP が送信する samlp:AuthnRequest メッセージは署名されます。

###Sign LogoutRequest
有効にすると SP が送信する samlp:logoutRequest メッセージは署名されます。

###Sign LogoutResponse
有効にすると SP が送信する samlp:logoutResponse メッセージは署名されます。

###Reject Unsigned Messages
有効の場合、受信した符号なしの samlp:Response 、 samlp:LogoutRequest 、 samlp:LogoutResponse を拒否します。

###Reject Unsigned Assertions
有効の場合、符号なしのsamlを拒否します。

###Reject Unencrypted Assertions
有効の場合、暗号化されていないsamlを拒否します。

###Retrieve Parameters From Server
サーバから、元のクエリパラメータを抽出する機能。
署名検証に失敗することがある場合は、この機能を有効にします。

###NameIDFormat
要求されたサブジェクトを表現するために使用する NameID のフォーマットを指定します。

###requestedAuthnContext
AuthnRequest で送られる AuthContext を選択します。

###Service Provider X.509 Certificate
SP のパブリック x509 証明書を設定します。sp.crtで証明書を提供する場合は、このフィールドを空にします。

###Service Provider Private Key
SP のプライベート キーを設定します。sp.key で秘密鍵を提供する場合は、このフィールドを空にします。

###Signature Algorithm
署名の際に使用されるアルゴリズムを設定します。

###Digest Algorithm
ダイジェスト処理に使用されるアルゴリズムを設定します。

#参考資料
https://qiita.com/pioho07/items/c196ebfc4a5a2cdb04b2#wordpress-saml%E8%A8%AD%E5%AE%9A

https://qiita.com/wokamoto/items/8f078f14201b772edc15