この記事はAzure App Service Team BlogのZero to Heroシリーズの記事に感銘を受けて、和訳&改変&自分で新規執筆した記事です。 この記事を通してWeb Appsの基礎から実運用の方法まで、筆者自身が見直す機会としてシリーズ化して掲載する事にしました。 本家の「Zero to Hero」というフレーズの通り、Azure App Serviceを使ったことの無い方は一人前になれるように、すでに利用している方は知識のアップデートに役立てていただければと思います。
なお、連載の5回目からは筆者オリジナルのコンテンツを掲載しています。目次からまとめて読めますので、是非どうぞ。
【Azure初心者から上級者まで!】Azure App Service を使いこなしてゼロからヒーローになる
この記事は App Service でゼロからヒーロー シリーズの第5回です。 この記事を読むためには初回記事を読み終えていることを想定しています。
Azure App Serviceには標準で認証と承認の機能を備えています。この機能を利用して、アプリケーションに認証機能を設定してアプリケーションを保護してみましょう。
注意:今回はWindowsアプリケーションの認証/承認機能について説明します。
以前はEasyAuthという名称でしたが、現在はAuthentication / Authorization(認証/承認) という名称で呼ばれています。Azure App Serviceの標準機能であり、アプリケーションを修正することなく認証機能を組み込む事ができます。
この機能はIISモジュールとして動作するため、デプロイしているWebアプリケーションとは分離して実行されます。そのため、アプリケーションの修正が必要なく機能追加&削除ができ。アプリケーションの変更にも影響を受けません。詳細な情報はこちらを参照してください。
認証に利用するプロバイダーは標準で以下のようなプロバイダーがあり、任意のプロバイダーを追加する事も可能です。
実際にAzure Active Directoryのプロバイダーを利用して認証/承認を設定してみましょう。
次は「Azure Active Directry」の認証プロバイダーの構成を行います。
この時点でWEBアプリケーションにアクセスしてみてください。設定前と特に変りは無いのではないでしょうか?現段階の設定では認証されていないユーザーは匿名アクセスを許可しているため、認証フローは表示されずにページが表示されます。
次は、匿名アクセスを許可せずにAzure Active Directoryのログインを促すように設定を変更してみましょう。
設定が完了したら再度、WEBアプリケーションにアクセスしてみましょう。下図のように認証画面が表示されるはずです。
これで、Azure Active Directoryを利用して認証するWEBアプリケーションなりました。
一般的な認証が必要なアプリケーションではログインやログアウトが必要なケースがほとんどかと思います。
ログアウトする場合は「/.auth/logout
」へのリンクを用意する事で各プロバイダーのセッションからログアウトする事ができます。
一方ログイン画面を表示させる場合は「/.auth/login/<provider>
」のリンクを設置します。<provider>
の部分は各IDプロバイダーごとに決まっており、Azure Active Directoryの場合はaad
となるためログイン用のURLは「/.auth/login/aad
」となります。
その他プロバイダーについての機能や詳細はこちらのドキュメントを参照してください。
認証したいページの特定のURLやHTTPメソッドを制限したいケースもあるかと思います、例えば管理者用のページなどは認証をかけて閲覧制限をかけるが、それ以外のページは認証せずに閲覧したいケースなどです。
管理者用のページが「/admin
」配下に存在する場合は以下のようなjsonファイルを用意する事で実現できます。
{
"routes": [{
"path_prefix": "/",
"policies": { "unauthenticated_action": "AllowAnonymous" }
},{
"path_prefix": "/admin",
"policies": { "unauthenticated_action": "RedirectToLoginPage" }
}]
}
上記のようなjsonファイルをauthorization.json
というファイル名でwwwroot
の直下に保存します。ファイルの中身に関する詳細はこちらの記事を参考にしてください。
次に認証されない場合のアクションを変更するで行った変更を元に戻します。
おめでとうございます。これでWEBアプリケーションがAzure Active Directoryへ認証を得てアクセスできるようになりました。今までは不特定多数のユーザーから閲覧可能でしたが、Azure Active Directory に登録されているユーザーのみアクセスできるようになっているため、よりセキュアなアプリケーションとなりました。
お問い合わせはこちらから
問い合わせる