本記事では、OneLoginからWordPressへのSAML シングルサインオン(SSO)およびJITプロビジョニングの設定手順をご案内します。
目次
前提条件
- OneLoginのライセンスが Starter, Enterprise, Unlimited または SSO, Advanced, Professional(新料金体系)のいずれかであること
- OneLoginの Super User または Account Owner 権限を持つアカウントを所有していること
- WordPressにおける管理者権限をお持ちであること
SAML連携の設定
1. OneLogin側の設定
- OneLoginに管理者でログインし、[管理]をクリックします
-
Applications メニューから[Applications]を選択します
- [Add App]をクリックします
-
WordPress と検索し、SAML2.0 のコネクタを選択します
- [Save] をクリックします
-
Configurations タブに移動し、Consumer URL に
https://{WordPressドメイン名}/wp-login.php?saml_acsを入力します
例)WordPressのドメイン名がpentio-dev.comの場合、https://pentio-dev.com/wp-login.php?saml_acscomと入力
-
Parameters タブに移動し、各フィールドが下記のように設定されていることを確認します
WordPress Field Value Email Email Email(attribute) Email First Name First Name Last Name Last Name Member Of MemberOf Username Username
-
SSO タブに移動し、SAML Signature Algorithm を SHA-256 に変更します
-
Access タブに移動し、割り当てたいユーザーが属するロールを選択します
- [Save]をクリックします
-
SSO タブに移動し、Issuer URL と SAML2.0 Endpoint (HTTP) をクリップボードへコピーします
-
View Details をクリックします
-
X.509 Certificate の内容をクリップボードへコピーします
2. WordPress側の設定
- 管理者アカウントでWordPress にログインします
- WordPressの管理画面から、プラグイン > [新規プラグインを追加] をクリックします
- 検索欄に 【OneLogin SAML SSO】 と入力し、OneLogin SAML SSO の[今すぐインストール]をクリックします
- インストールできたら、[有効化]をクリックします
- 設定 > SSO/SAML Settings をクリックします
-
Enable のチェックボックスをクリックします
-
IDENTITY PROVIDER SETTINGS に 1. OneLogin側の設定 手順11,13でコピーした値を貼り付けます
IDENTITY PROVIDER SETTINGS 入力する値 IdP Entity Id 手順13でコピーしたIssuer URL Single Sign On Service Url 手順13でコピーしたSAML2.0 Endpoint(HTTP) X.509 Certificate 手順11でコピーしたX.509 Certificate -
Match Wordpress account by に[E-mail]を選択します
Usernameを用いてOneLoginとWordPressのユーザーを紐付ける場合は[Username]を選択します
-
ATTRIBUTE MAPPING に以下の情報を入力します
ATTRIBUTE MAPPING 入力する値 Username User.Username E-mail User.email FirstName User.FirstName LastName User.LastName Role Role
- [変更を保存]をクリックします
SAML連携の設定は以上です。
SAML SSOの動作確認
- OneLoginに対象ユーザーでログインし、設定した WordPress を選択します
- SAML認証が完了し、WordPressに遷移することを確認します
SAML SSOの動作確認は以上です。
SAML SSOの強制化
- 管理者アカウントでWordPressにログインします
- 設定 > SSO/SAML Settings をクリックします
-
Force SAML login のチェックボックスをクリックします
- [変更を保存]をクリックします
SAML SSOの強制化は以上です。
JIT Provisioningの設定
1. OneLogin側の設定
下記の手順では、OneLoginに追加したRoles の設定値を用いて、WordPressの管理者権限を割り当てる方法をご紹介します。JIT Provisioningに使用する値が空欄の場合、権限は更新されません。
- OneLoginに管理者でログインし、[管理]をクリックします
- Users > Roles をクリックします
- [New Role]をクリックします
- ロールの名前を【WordPress_Admin】と入力し、[Save]をクリックします
- 同様にして
WordPress_Author、WordPress_Contributor、WordPress_Editor、WordPress_Subscriber
のRoleを作成します
- Users > Users をクリックします
- WordPressの権限を変更したいユーザーを選択します
WordPressにおける現在のユーザー情報
- Applicationタブを選択し、割り当てたい権限のロールを選択します
例)管理者権限を割り当てる場合、WordPress_Adminを選択します
- [Save User]をクリックします
- Applications > Applications をクリックします
- 作成したWordPressコネクタ をクリックします
-
Parametersタブ をクリックします
-
➕ボタン をクリックします
- Field name に【Role】と入力します
-
Include in SAML assertion とMulti-value parameter のチェックボックスをクリックします
- [Save]をクリックします
- [Save]をクリックします
-
Rulesタブ をクリックします
- [Add Rule]をクリックします
- Name に【Roles】を入力します
-
Actionsに【Set Role in Wordpress】【role】【WordPress_([^,]+)】を入力します
- [Save]をクリックします
- More Actions > [Reapply entitlement mappings]をクリックします
2. WordPress側の設定
- 管理者アカウントでWordPress にログインします
- 設定 > SSO/SAML Settings をクリックします
-
Create User if not exists のチェックボックスをクリックします
-
Update user data のチェックボックスをクリックします
- Role に【Role】を入力します
-
ROLE MAPPING に以下の情報を入力します
権限についての参考記事
https://ja.wordpress.org/support/article/roles-and-capabilities/ATTRIBUTE MAPPING 入力する値 Administrator Admin Editor Editor Author Author Contributor Contributor Subscriber Subscriber
- [変更を保存]をクリックします
JITプロビジョニングの設定は以上です。
JITプロビジョニングの動作確認
- Wordpressのログインセッションがないプライベートウィンドウ上で、1. OneLogin側の設定 手順7で選択したユーザーでOneLoginにログインします
- 設定した WordPress を選択します
- 管理メニュー > ダッシュボード を選択します
-
ユーザー一覧 を選択します
- 権限が管理者に変更されていることを確認します
JITプロビジョニングの動作確認は以上です。
SAML SSOの無効化
- 管理者アカウントでWordPressにログインします
- 設定 > SSO/SAML Settings をクリックします
-
Enable のチェックボックスをクリックしチェックマークを外します
- [変更を保存]をクリックします
SAML SSOの無効化は以上です。
トラブルシュート
-
WordPressにSSOしようとすると、以下のような画面になりサインインできない
これはユーザーの、OneLogin側のEmailとWordPress側のメールが一致していないことが原因です。再度、両者のEmailの値をご確認ください
OneLogin側のEmail
Wordpress側のメール
- SAML強制化してもIDとパスワードでログインできてしまう
ブラウザとサーバーのキャッシュが原因です。ブラウザとサーバーのキャッシュを削除したのち、再度お試しください。