Freigeben über


Azure AD B2C アクセス トークンのパブリック プレビューを開始

執筆者: Parakh Jain (Program Manager, Azure Identity)

このポストは、3 月 23 日に投稿された Azure AD B2C Access Tokens now in public preview の翻訳です。

 

このたび、Azure AD B2C を使用して Web API のセキュリティを管理する際により細かい制御が可能になりました。本日より、パブリック プレビューとして Web API でアクセス トークンを使用できるようになります。

この強力な機能は、多くのお客様からご要望が寄せられていた機能です。今回の導入により、複数の種類のクライアント アプリケーションからのアクセスに対応可能な Web API を作成できるようになります。アプリごとに API へのアクセス許可を付与することもできます。API にアクセスできるユーザーをより細かく制御できるようになるため、さらに安全性の高いアプリを開発できます。

使用を開始するには

Web API を作成する

Azure AD B2C テナントの [Azure AD B2C Settings] ブレードに移動して、アプリケーションを新規に追加します。アプリケーション名を入力して [Include web app / web API] を [YES] に設定し、[Reply URL] と [App ID URI] を指定します。

Capture1

Web API の作成が完了したら、そのアプリケーション、[Published scopes] の順にクリックします。このブレードでは、クライアント アプリケーションが要求を発行できる範囲やアクセス許可を設定できます。既定で [user_impersonation] というアクセス許可が有効になっています。

Capture2

クライアント アプリケーションを作成する

[Applications] ブレードで新しいアプリケーションを登録します。作成が完了したら [Api access] をクリックします。

Capture3

[ADD] ボタンをクリックします。次のブレードでは、API を選択し、クライアント アプリケーションに付与する API へのアクセス許可を選択します。アプリケーションには既定で、“openid” というアクセス許可でユーザー プロファイルにアクセスする権限と、“offline_access” というアクセス許可で更新トークンを生成する権限が付与されています。クライアント アプリケーションでこのアクセス許可を使用する必要がない場合は、削除することもできます。

Capture4

アクセス トークンを取得する

アクセス トークンを Azure AD B2C に要求する手順は、ID トークンを要求する場合とほぼ同じで、scope パラメーターの入力値が異なる程度です。scope パラメーターには、アプリが要求する特定のリソースとそれに対するアクセス許可を指定します。たとえば、App ID URI が “https://B2CBlog.onmicrosoft.com/notes” であるリソース アプリケーションに、“read” というアクセス許可でアクセスする場合、要求内の scope は “https://B2CBlog.onmicrosoft.com/notes/read” となります。

以下は、“https://B2CBlog.onmicrosoft.com/notes/read”、“openid”、“offline_access” という範囲で認証コードを要求する場合の例です。

https://login.microsoftonline.com/B2CBlog.onmicrosoft.com/oauth2/v2.0/authorize?
p=<ポリシー ID>&client_id = <クライアント アプリケーションのアプリ ID>&nonce=anyRandomValue
&redirect_uri = <クライアント アプリケーションのリダイレクト URI>&response_type=code
&scope=https%3A%2F%2FB2CBlog.onmicrosoft.com%2Fnotes%2Fread+openid+offline_access

この機能の詳細やサンプルについては、こちらのドキュメント (英語) を参照してください。

ぜひ UserVoice (英語) や Twitter (@azuread) までフィードバックをお寄せください。ご不明な点がありましたら、「azure-ad-b2c」というタグを付けて Stack Overflow (英語) でご質問をお願いします。