WordPressをAzure ADでSSO化

Table of Contents

はじめに

WordPressへのログインを、Azure ADを利用してSSO(シングルサインオン)化します。

前提

  • WordPress : バージョン5.9
  • WordPressプラグイン : miniOrange SSO using SAML 2.0(無料版)
  • Microsoft Azure AD P1(月額650円)

注意

作業としては、WordPressサイトとAzure Adとでお互いに情報を交換します。そのためにメタデータを使います。(メタデータを使わず手入力で1項目ずつ設定することも可能ですが、手間とミスが発生しやすいのでメタデータでのやり取りが確実です)

WordPressが吐き出すメタデータと、Azure ADが吐き出すフェデレーションメタデータは別物ですから混同しないでください。

  • WordPressのメタデータ -> Azure Ad
  • Azure Adのフェデレーションメタデータ -> WordPress

WordPressでの作業-1

プラグインのインストール

SSOのためのプラグイン「miniOrange SSO using SAML 2.0」をインストールします。

※ 新規追加でキーワードに「miniorange sso」などと入れれば候補が出てきます。

※ プラグインの公式サイト : https://plugins.miniorange.com/wordpress-single-sign-on-sso

インストールして有効化すると、プラグインの管理画面に遷移させられます。「Let’s get Started!」ダイアログが表示されていたらとりあえず閉じます。

メタデータのダウンロード

「Service Provider Metadata」タブにある「Metadata XML File」で「Download」をクリックします。

「名前を付けて保存」ダイアログがポップアップされるので、Metadata.xmlをPCにダウンロードします。

Azure ADでの作業-1

アプリケーションの作成

SSOを行うために行うために、Azure ADで「アプリケーション」を作成します。

Azureポータルサイト > Azure Active Directory > エンタープライズアプリケーションを表示します。

「新しいアプリケーション」を選択します。

「独自のアプリケーションの作成」を選択します。

以下の通りに設定します。

  • 「お使いのアプリの名前は何ですか?」に好きな名称を入れる。
  • 「アプリケーションでどのような操作を行いたいですか?」で「ギャラリーに見つからないその他のアプリケーションを統合します (ギャラリー以外)」を選択。
  • 「作成」ボタンをクリック。

WordPressのメタデータ読み込み

「2。シングル サインオンの設定」の「作業の開始」をクリックします。

「SAML」をクリックします。

「メタデータ ファイルをアップロードする」をクリックします。

WordPressのプラグイン管理でダウンロードした「Metadata XML File」を指定して「追加」ボタンをクリックします。

必要な情報が入力されているのでこのまま「保存」をクリックします。その後、右上の「×」をクリックして閉じます。

シングルサインオンのテストをするか聞いてきますが、まだ気が早いので「いいえ、後でtestします」をクリックして閉じます。

フェデレーションメタデータ取得

「3 SAML 署名証明書」からフェデレーションメタデータを取得します、ここでは2パターンの方法があります。どちらでもいいですが、1.の方が手間いらずです。

  • 「アプリのフェデレーション メタデータ URL」の をクリックしてURLをクリップボードにコピーする。(このURLは後でWordPressに入力しますので保管しておきます。)
  • 「フェデレーション メタデータ XML」の「ダウンロード」をクリックしてメタデータをPCにダウンロードしておく。(このファイルは後でWordPressにアップロードします。)

シングルサインオンするユーザーを登録するため、左のメニューから「ユーザーとグループ」をクリック。

アプリケーションにユーザーを追加

「ユーザーまたはグループの追加」をクリック。

Azure ADで管理されているユーザーとグループが表示されるので必要なメンバーを選択します。(ユーザーでもグループでも)

「選択」をクリックします。

ユーザーが選択されました。これでよければ「割り当て」ボタンをクリックします」。

※ 「割り当て」ボタンをクリックするまではまだ割り当てられていないので注意、「割り当て」ボタンのクリックを忘れずに。

※ 設定者がAzure Active Directory Premium P1以上のライセンスを持っていない場合、ここで割り当てに失敗することがあるようです。

割り当て完了、このプロセスはユーザー登録・削除の必要が生じるたびに繰り返します。

WordPressでの作業-2

フェデレーションメタデータの取り込み

メニューバーの「miniOrange SAML 2.0 SSO」で管理画面を開き、「Service Provider Setup」タブの「Configure Service Provide」の「Upload IDP Metadata File/XML」をクリックします。

先にAzure ADから取得したフェデレーションメタデータを取り込みます。

前のプロセスでURLを選んだ場合は「Enter metadata URL:にそのURLを入れます。メタデータをダウンロードした場合は「ファイルを選択」でそのファイルを指定します。

「Identity Provider Name」には好きな名前を入れます。(AzureADとか)

これはURL指定の例です。

必要な情報が取り込まれているのがわかります。

Azure ADでの作業-2

サインオンテスト

おまたせしました、テストを行います。

※ WordPressにログイン中なら、テストの前に一旦ログアウトしておきます。

「サインインのテスト」をクリックします。

ブラウザで別タブが開き対象のWordPressが表示されます。すでにログイン状態であることがわかります。(権限は寄稿者)

Windowsの「マイ アプリ」からもアクセスできます。

WordPressでの作業-3

ログインページのカスタマイズ

好みにより、WordPressへのログインページをカスタマイズします。

URL/wp-adminでSSOでログインさせるか従来のユーザー名とパスワードでログインさせるか、SSOを強制するかなど。

プラグインの設定ページで「Redirection & SSO Link」をクリックします。設定オプションが5個あります。

Option 1

ログインページにSSO用のボタンを追加する。

Option 2

ウィジェットとしてSSO用のリンクを付ける。組合などのHPのように、会員用のログインをメニューなどに明示したい場合は便利。

逆にオフィシャルHPならそのような入口は見せたくないので不要。

Option 3

有料エディションのみ。

サイトにアクセスするにはSSOを強制する。試していませんが、会員のみがアクセスできるサイトに向いているようです。

Opton 4

有料エディションのみ。

ログインページにアクセスするとSSOを強制する。試していませんが、SSO運用に一本化する場合に適しているようです。

Option 5

有料エディションのみ。

ショートコードを使う。試していませんが、投稿や固定ページの中にショートコードとしてSSOの入り口を設けるのでしょう。

一番手軽なOption 1を設定してみます。左上のボタンをクリックするだけで有効になります。(その他のデザイン的なカスタマイズは無料バージョンでは指定できません)

この設定により、ログインページにSSO用のボタンが付きます。

本当はユーザー名テキストボックス、パスワードテキストボックスの下に「ログイン」テキストボックスが配置され、その下に「OR」、その下に「Login with AzureAD」ボタンが配置されるべきでしょうが、無料なのでそこまで気にしないこととします。

ユーザー名、パスワードを入れなくても、「Login with AzureAD」ボタンを押すことでログインできます。

複数人で運用しているサイトでいきなりSSOを強制すると戸惑う人も出るでしょうから、しばらくはOption 1でSSOと従来のユーザー名パスワードログインの両方を有効としておき、慣れてきたらSSOを強制するのが良いと思います。ただしSSO強制は有料エディションです。(初年度$345、次年度から50%Off)

自動ユーザー作成の検証

Azure ADでユーザーを登録してあれば、WordPressサイトにそのユーザーが登録されていなくても、初回ログイン時に自動的にWordPressサイトにユーザー登録してくれるという機能を検証します。

プラグインのデフォルト設定で自動ユーザー作成ができるようになっています。「Do not auto create users if roles are not mapped here」をEnableにすると自動作成は抑止されるようです。(未検証)

同じくデフォルトで新規作成されるユーザーは「寄稿者」となっています。ここは目的に合わせて設定してください。

Azure ADでユーザー登録

あらかじめ検証用のユーザーを登録します。

(詳細手順は省略)

「徳川家康」というユーザーをADに登録しました。

アプリ(WordPressへのSSO対象サイト)にこのユーザーを追加します。

(詳細手順は省略)

WordPressにログイン

WordPressのログインページにアクセスします。(もちろん、Login with AzureADボタンをクリック)

ADに新規追加したユーザーのメールアドレスを指定します。

初回なのでパスワードを聞かれます。AD登録時に決めたパスワードを入力します。

初回パスワードは受け付けられ、今後使用する本パスワードを求められますので、設定して「サインイン」ボタンをクリックします。

これはお使いのAzure ADの設定に寄るでしょうが、うちでは2ファクタ認証を必須にしているのでこの手順となります。

2ファクタ認証の手段として携帯電話、認証用電子メールアドレス(ADで設定したユーザーのメールアドレスとは別)のいずれかで「今すぐセットアップ」をクリックします。

携帯電話の例)電話番号を入れます。

指定した携帯電話にSMSで確認コードが送られてくるので、そのコードを入力して「確認」ボタンをクリックします。

「完了」ボタンをクリックします。

※ 2つの手段の内1つ(このケースでは携帯電話)が指定してあればOKです。もちろん、念のために電子メールアドレスを設定してもよい。

「はい」をクリックします。

目的のWordPressサイトのユーザーログインページが表示されるので、「Login with AzureAD」ボタンをクリックします。

これでログインできるはずです。

このサイトの管理者アカウントでログインして、実際にユーザーが作成されたか確認してみると、ちゃんと「寄稿者」として作成されていることがわかります。

ユーザーのブロック

今度はAzure ADでユーザーのサインインをブロックしてみます。

サイトにログインしようとすると、このようにブロックされます。

ユーザーの削除

Azure ADからユーザーを削除して、WordPress側で自動的に削除されるかどうか確認しましたが、残念ながらWordPress側にはユーザーが残ったままでした。ユーザーの削除はWordPress側で手作業で削除しなければなりません。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール