Azure AD で WordPress と SSO 連携してみた

Azure AD で WordPress と SSO 連携してみた

今回も最強の 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ステップで行います。

  1. WordPress に SSO プラグインをセットアップ
  2. Azure AD に WordPress アプリ設定を登録
  3. 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 側でアカウントの作成準備も必要なく簡単に利用できました。