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 側でアカウントの作成準備も必要なく簡単に利用できました。