6
4

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 Front Door + Azure Active Directory B2C を利用したEasy Auth

Posted at

はじめに

Azure AD B2Cを利用することが増えてきたので、App ServiceのEasy Auth「認証と権限承認」と絡めて利用できないか。せっかくなのでマルチリージョン対応を見据えてAzure Front Doorをフロント配置する構成で検証しました。

App Serviceの作成

App Serviceを作成します。この部分は今回は割愛します。
リソースの名前は「azureadb2ceasyauth」とします。

Azure AD B2Cの設定

Azure AD B2Cで認証機能を利用するためには、以下、2つの方式があります。

今回は、既に用意されているテンプレートを利用する「ユーザーフロー」を利用します。
※ 基本的にはユーザーフローで事が足りるはずですが、「ユーザーフロー」では実現できないことを「カスタムポリシー」で実現すると捉えて頂ければと。

Azure AD B2Cの構築

以下の手順に従って、Azure AD B2Cを構築します。

  1. B2C テナントの作成
  2. アプリケーションの登録
  3. ユーザーフローの作成

1. B2Cテナントの作成

こちらは「B2C テナントの作成」に従ってテナントを作成する。

2. アプリケーションの登録

3. ユーザーフローの作成

  • ユーザーフローの作成に従って作成する。ただし、今回はEasy Authを検証したいので、ユーザーフローとしては、「サインアップとサインイン (推奨)」を利用して作成します。
    image.png

この時Web AppsのEasy Authで利用するURLとして、必要になるため、「ユーザーフローを実行します」で表示されるURLをコピーしておきます。

image.png

  • ルール:https://{B2Cテナント名}.b2clogin.com/{B2Cドメイン}/v2.0/.well-known/openid-configuration?p={ユーザーフロー}

App Serviceの設定

Easy Authの設定

作成したApp Serviceの「認証/承認」でEasy Authを設定します。

  • App Service認証をオンにし、Azure Active Directoryを選択する
  • クライアントIDにメモしたアプリケーションIDを入力
  • 発行者のURLにメモしたURLを入力
  • 許可されるトークン対象ユーザーにAppServiceのURLを入力

カスタムドメインの設定

ここがポイントで、Front Doorを利用してEasy Authをする場合は、一度App ServiceにFront Doorに利用するカスタムドメインを適用し、その後、Front Doorを向くようにDNSを再度変更する必要がある。

これをしないと、認証情報入力後のリダイレクトURLが合わずにFrontDoor経由ではなく、App Serviceに直接リダイレクトされてしまい、Front Doorの価値がなくなってしまいます。

カスタムドメイン設定後、「認証/承認」の「許可される外部リダイレクト URL」に以下を入力する。

  • https://{カスタムドメイン}/.auth/login/aad/callback

ここまで来たら、Front Doorのドメインとバックエンドプール、ルーティングルールを設定することで、無事Easy Authが利用できます。

6
4
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
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?