Azure AD B2C アプリの登録

はじめに

Azure上に作成したwebアプリケーションに対して、利用者のサインインやアカウント管理機能を追加したい。AzureにはソーシャルIDとも連携できる利用者の統合管理サービス、AD B2Cがあるのでこれを使ってみる。技術的にはOAuth/OpenID Connectを使っているが、仕組みを深く意識せずとも環境は作れるようだ。

環境構築

B2Cテナントの作成

まずは利用者を登録するためにグループとなる組織(テナント)を作成する。サービスから「新しいB2Cテナントを作成する」を選択する。

組織名、初期ドメインを入力、リージョンを選択して「作成」ボタンを押す。

あっさりしているが、これだけで管理したい組織は出来上がり。ここに利用者を追加していくわけだが、今回は予め利用者を登録することはしない。利用者がはじめて訪れサインインしたときに自動でアカウントを追加し、その後、適切な承認者による承認の後に特定URLへアクセスできるようなワークフローをWebロジックで作ってみるつもりだ。

AD B2C アプリケーションの登録

続いて、Webサービスとの認証の橋渡しとなる、B2Cアプリケーションを登録します。今回はe-mailアドレスによる認証を想定しているので、アカウントの種類は3番目の「任意のIDプロバイダー」を選択する。

webアプリケーションに認証を設定

次は認証させたいWebアプリを選択して、認証の設定を追加します。

以下のように、「設定」の「認証/承認」から「AppService認証」を「オン」にします。すると、認証プロバイダを設定できるようになります。

ここではAzure ADを選択して設定をします。「詳細」を選択し、クライアントIDには先ほど作成したB2CのアプリケーションIDを、発行者のURLには作成したテナント名を入力して「OK」ボタンを押します。

ユーザーフローの作成

利用者がサイトを訪れた時にサインイン済みであればそのままWebサービスへ通し、まだサインしていなければサインイン画面を表示したりするフローを制御する、ユーザフローを作成します。

名前やIDプロバイダを選択し、「作成」ボタンを押します。

利用者のIDを作成済みであれば、ここで実際にWebからサインインする処理を試すことができます。上部にある「ユーザーフローを実行します」でテスト可能です。

もし、うまく動作しない場合は一時的にリダイレクトURIをhttps://jwt.msに変更して問題を切り分けます。

IDトークンに属性を追加

一度サインインすると以降有効期限が切れるまで、自分がだれかをしめす情報(IDトークン)をWebアプリへ常に提示するようになります。今回は、アプリでメールアドレスと役職を操作したいので、属性情報(メール、役職)の追加します。

「アプリケーション要求」から必要な属性をチェックして「保存」ボタンを押します。

以上でWebサービスを訪問したときに、サインインするような仕組みは出来上がり。次は、Webアプリから属性情報を操作したり、サインインに承認ワークフローを追加したりしてみたいと思います。

タイトルとURLをコピーしました