7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Azure App Service で Azure AD 認証を有効化する

Posted at

 Azure App Service のシンプルな Web ページで Azure AD 認証を有効化する際の手順の記録です。シークレットキーを用いた Web API アクセスではなく、ブラウザでユーザー認証を受けるシンプルなシナリオを想定します。マルチテナントのシナリオは Microsoft Docs (Manage identity in multitenant applications) により詳しい説明があります。

前提条件

  • Azure Active Directory のテナントは既に作成されているものとします
  • サブスクリプション、リソースグループ、リソースに対する適切な権限があるものとします
  • App Service Plan および App Service は既に作成されているものとします
  • Azure AD アプリを新たに作成する場合、その権限があるものとします

手順

  1. 対象の App Service を選択して 認証/承認 (Authentication / Authorization) のブレードを開きます
  2. 「App Service Authentication」で On を選び、「認証プロバイダー (Authentication Providers)」では Azure Active Directory を選択します
    image.png
  3. App Service と AD アプリと関連付けます。既にある AD アプリを使用せず、新しく作成する場合「管理モード (Management mode)」は 簡易 (Express)Create New AD App を選び、AD アプリの名前を入力します
    image.png
    同一のテナントに既に存在するADアプリを使用する場合は Select Existing AD App から対象のアプリを選びます。異なるテナントに存在するマルチテナント認証の AD アプリを使用する場合は「Advanced」の画面から client id と issuer url を入力します
  4. OK ボタンで前の画面に戻り、保存します。認証のないリクエストを受けたときにログインへ誘導させる場合(つまり、未認証のアクセスを許可しない場合)は「要求が認証されない場合に実行するアクション」に Azure Active Directory でのログイン を選択します
    image.png
  5. 上記の構成を保存すると App Service にアクセスしたときに認証を求められるようになります
    image.png
  6. 登録した AD アプリには「リダイレクトURI」が設定されていること、暗黙的な許可 (Implicit grant) の「ID トークン」がオンになっていることを確認します。この例でリダイレクト URI は https://{APP_SERVICE_DOMAIN}/.auth/login/aad/callback となっています
    image.png

ASP.NET Web アプリケーション (.NET Framework) と App Service を使用している場合 Web サーバー環境変数 Request.ServerVariables で認証タイプ、ユーザー名の情報を取得できます

サーバー環境変数 説明
ServerVariables["AUTH_TYPE"] ユーザーの認証方法が設定される。AD認証の場合 aad となる
ServerVariables["AUTH_USER"] ユーザーの名前が設定される。例えば *@*.onmicrosoft.com
ServerVariables["AUTH_PASSWORD"] Basic認証の場合にダイアログに入力された値が設定されるとのこと。AD認証では使用されない
ServerVariables["LOGON_USER"] Windows 認証の場合に Windows アカウント名が設定されるとのこと。AD認証では AUTH_USER と同じユーザー名が設定される
ServerVariables["REMOTE_USER"] ユーザーから送信されたマップされていないユーザー名とのこと。AUTH_USER と同じユーザー名が設定される
Request.IsAuthenticated 認証されているかを表す真偽値
7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?