今回も最強の IdP である Azure AD を使って、 WordPress と SSO 連携してみました。WordPress に関する公式の Docs はありませんでしたが、外国語のサイトで手順が公開されていましたので参考にしました。
Azure AD には Free プランでも最大10個までのアプリケーションを SSO できるようになっています。構成前には念のために WordPress のバックアップを取得しておいてください。
参考 URL:https://cloudrun.co.uk/azure-ad/configure-wordpress-sso-with-azure-ad/
Azure AD と WordPress の SSO 連携手順
Azure AD と WordPress で SSO 連携するには次の3ステップで行います。
- WordPress に SSO プラグインをセットアップ
- Azure AD に WordPress アプリ設定を登録
- WordPress で SSO 設定
WordPress に SSO プラグインをセットアップ
OneLogin SAML SSO プラグインをインストール
まず初めに SSO 機能を提供するプラグインをインストールします。今回は OneLogin SAML SSO というプラグインを利用します。WordPress でプラグインを検索し、インストールと有効化をします。
URL:https://wordpress.org/plugins/onelogin-saml-sso/
SSO プラグインのセットアップ
WordPress のメニューから [設定]>[SSO/SAML Settings] をクリックします。
設定ページの中盤より少し後ろ辺りにある [Service Provider Entity Id] に、WordPress を識別するための ID を指定します。(画像では minidora-wp)
入力したらページ最下部にある [変更を保存] をクリックします。保存が完了したら、ページ最上部にある [Go to the metadata of this SP] というリンクをクリックします。
開いたリンクの XML データをテキストエディターなどで保存しておきます。WordPress での操作は一旦ここまでです。
Azure AD に WordPress アプリ設定を登録
Azure ポータルにて、[Azure Active Directory]>[エンタープライズアプリケーション]>[新しいアプリケーション] をクリックします。[アプリケーションの追加] ブレードにて、[ギャラリー以外のアプリケーション] を選択します。
アプリケーションを識別するための名前を入力し、[追加] をクリックします。
作成されたアプリにて、[シングル サインオン]>[SAML] を選択します。
上部の [メタデータ ファイルをアップロードする] を選択し、先ほど WordPress で出力した XML ファイルをアップロードします。アップロードが無事完了したら保存します。
正常に設定できていれば自動的に SAML の構成情報が設定されています。
[SAML 署名証明書] で [証明書(Base64)] の横にあるリンクから証明書ファイルをダウンロードしておきます。
メニューの [ユーザーとグループ] から WordPress にアクセスさせるユーザーを追加しておきます。
WordPress で SSO 設定
Azure AD の [シングルサインオン] 画面から WordPress の [SSO/SAML Settings] 画面に次の項目を貼り付けます。
- [Azure AD 識別子] → [IdP Entity Id]
- [ログイン URL] → [Single Sign On Service Url]
- [ログアウト URL] → [Single Log Out Service Url]
[X.509 Certificate] に先ほどダウンロードした証明書ファイルの中身を貼り付けます。
Azure AD にて [ユーザー属性とクレーム] の右上の編集のボタンをクリックします。
[ユーザー属性とクレーム] ブレードのクレーム名を WordPress の [ATTRIBUTE MAPPING] に貼り付けます。
- [name] → [Username]
- [emailaddress] → [E-mail]
- [givenname] → [First Name]
- [surname] → [Last Name]
また、オプションをいくつか有効にします。
WordPress アカウントのマッチはメールアドレスを用いるとゲストアカウントの利用にも対応できます。
- [Create user if not exists]
- [Update user data]
- [Match WordPress account by]:[E-mail]
SSO 接続テスト
SSO を割り当てたユーザーでアプリにサインインしてみます。
無事にサインイン成功しました。WordPress 側でアカウントの作成準備も必要なく簡単に利用できました。
コメント