概要
AppService上に配置したWordpressの一部のURL(ログイン画面、他)をAzure Active Directoryで保護します。
前提
- Azure AppServiceでWordpressを配置済み
- Azure Active Diretoryの初期設定は済んでいる
やり方
認証プロバイダーの設定
- AppServiceのブレードから設定したいアプリを選択し、「認証/承認」画面を開きます
- 「App Service 認証」を「オン」にします
- 「要求が認証されない場合に実行するアクション」は「匿名要求を許可する(操作不要)」を選択します(下の図では「Azure Active Directoryでのログイン」を選択してますが、間違いです)
- すると次のブレードが表示されます
- アクションを設定したら、「認証プロバイダー」の「Azure Active Directory」を選択します
- 下の画像のように入力(アプリの作成欄は、適宜変更)
- 「OK」ボタンを押下後、元のブレードに戻るので、「保存」ボタンを押下
- これでAppServiceでAzure Active Directoryの認証を使うことができるようになります
設定したアプリにユーザーを追加
- Azure Active Directoryのブレードを開く
- メニューから「エンタープライズアプリケーション」を選択し、次のブレードを開きます
- 「すべてのアプリケーション」を開くと、アプリ一覧が開くので、先ほど作成したものを探し、選択します
- 次のブレードが開きます
- 「ユーザーの追加」から、適宜追加します
AppServiceへの認証の設定
Kudu(高度なツール)から設定します。Kuduを開いたら、web.configがあるディレクトリまで移動し、authorization.json
を新規作成します。内容は以下のようにします。かなり厳しくしているので、おそらく普通であれば/wp-login.php
と/wp-admin
への設定を行うだけで十分だと思います。
{
"routes": [
{
"path_prefix": "/wp-login.php",
"policies": {
"unauthenticated_action": "RedirectToLoginPage"
}
},
{
"path_prefix": "/wp-admin",
"policies": {
"unauthenticated_action": "RejectWith404"
}
},
{
"path_prefix": "/wp-admin*",
"policies": {
"unauthenticated_action": "RejectWith404"
}
},
{
"path_prefix": "/wp-json",
"policies": {
"unauthenticated_action": "RejectWith404"
}
},
{
"path_prefix": "/wp-json/*",
"policies": {
"unauthenticated_action": "RejectWith404"
}
},
{
"path_prefix": "/xmlrpc.php",
"policies": {
"unauthenticated_action": "RejectWith404"
}
}
]
}
authorization.json
に何を書くかは、以下のブログポスト(英語)が役に立ちます。
https://blogs.msdn.microsoft.com/appserviceteam/2016/11/17/url-authorization-rules/