Share via


ユーザーの同意を要求する

重要

2022 年 6 月、Bing広告の要件として 多要素認証 を導入しました。 この要件に準拠するには、引き続きコードの変更が必要な場合があります。 Microsoft Advertising は、10 月初旬に技術的な適用チェックを実行しています。

このブログ投稿 では、コンプライアンスを確保するために実行する必要がある手順について説明します。

詳細については、 多要素認証要件 ガイドを参照してください。

アプリケーションを登録したら、Microsoft Advertising アカウントを管理するためにユーザーの同意を得る必要があります。

ヒント

トラブルシューティングのヘルプについては、 一般的な OAuth エラー ガイドを参照してください。

重要

アプリケーションが Microsoft Advertising アカウントを管理するには、各ユーザーに対して少なくとも 1 回は Web ブラウザー コントロールを通じて同意を求め、同意する必要があります。 これは標準の OAuth 2.0 フローであり、 OAuth 2.0 仕様の承認コード許可セクションで詳細に定義されています。

承認コード フローは、ユーザー /authorize をエンドポイントに誘導するクライアントから始まります。 この要求では、クライアントはユーザーから取得する必要があるアクセス許可を示します。

注:

以下のyour_client_idを、Azure portalポータルによってアプリが割り当てられたアプリケーション (クライアント) ID アプリの登録置き換えます。

// Line breaks for legibility only

https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?
client_id=your_client_id
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&response_mode=query
&scope=openid%20offline_access%20https%3A%2F%2Fads.microsoft.com%2Fmsads.manage
&state=12345
  1. 以下の URL をコピーし、ブラウザーに貼り付けて、このサンプル要求を実行してユーザーの同意を求めます。

注:

の URL のyour_client_idを、Azure portalポータルによってアプリが割り当てられたアプリケーション (クライアント) ID アプリの登録置き換えます。

<https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=your_client_id&response_type=code&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F&response_mode=query&scope=openid%20offline_access%20https%3A%2F%2Fads.microsoft.com%2Fmsads.manage&state=12345>
  1. Microsoft アカウントの資格情報でサインインし、Microsoft Advertising アカウントの管理に アプリ の同意を付与します。
  2. サインイン後、ブラウザーはアドレス バーの で codehttps://localhost/myapp/リダイレクトされます。 ページのエラー メッセージは無視できます。
  3. 次に、コードを使用して アクセス トークンと更新トークンを取得します

Microsoft ID プラットフォーム エンドポイントでは、ユーザーがクエリ パラメーターに示されているscopeアクセス許可に同意していることも確認されます。 ユーザーがこれらのアクセス許可のいずれかに同意していない場合は、必要なアクセス許可に同意するようにユーザーに求められます。 このガイドは主にを使用して scope=https://ads.microsoft.com/msads.manageMicrosoft Advertising アカウントを管理することに焦点を当てていますが、Microsoft ID プラットフォームでのアクセス許可と同意の詳細については、こちらを参照してください

ユーザーが認証し、同意を付与すると、Microsoft ID プラットフォーム エンドポイントは、 パラメーターで指定されたメソッドを使用して、指定された redirect_uriでアプリへの応答をresponse_mode返します。 たとえば、ユーザーがアプリケーションに Microsoft Advertising アカウントを管理するためのアクセス許可を付与した場合、コールバック URI には次のような承認コードが含まれます http://localhost/myapp/?code=CodeGoesHere&。state=12345

ユーザーが Microsoft Advertising アカウントを管理するためのアクセス許可をアプリケーションに付与した場合は、次の手順ですぐにコードを使用する必要があります。 承認コードの短い期間 (約 5 分) は変更される可能性があります。 ユーザーが Microsoft Advertising アカウントを管理するためのアプリケーションのアクセス許可を拒否した場合、コールバック URI にはエラーとエラーの説明フィールドが次のように http://localhost/myapp/?error=access_denied&含まれます。error_description=ERROR_DESCRIPTION&state=ClientStateGoesHere。 OAuth エラーの詳細については、「 一般的な OAuth エラー 」と「 認証と承認のエラー コード」を参照してください。

次の表には、Bing Ads API クライアントが同意要求に含めることができるパラメーターが含まれています。 省略可能なパラメーターの詳細については、Microsoft ID プラットフォーム OAuth 2.0 承認コード フローのドキュメントを参照してください。

パラメーター 必須 / オプション 説明
client_id 必須出席者 Azure portal - アプリの登録 ポータルによってアプリが割り当てられたアプリケーション (クライアント) ID。
code_challenge 推奨 Proof Key for Code Exchange (PKCE) を使用して承認コード許可をセキュリティで保護するために使用されます。 が含まれている場合 code_challenge_method は必須です。 詳細については、 PKCE RFC を参照してください。 これは、ネイティブ アプリ、SPA、Web アプリなどの機密クライアントなど、すべてのアプリケーションの種類に対して推奨されるようになりました。
code_challenge_method 推奨 パラメーターの を code_verifier エンコードするために使用される code_challenge メソッド。 次のどちらかの値にすることができます。

- plain
- S256

除外されている場合は、 code_challenge 含まれている場合 code_challenge はプレーンテキストと見なされます。 Microsoft ID プラットフォーム では、 と S256の両方plainがサポートされています。 詳細については、 PKCE RFC を参照してください。
prompt 省略可能 アプリケーションで必要なユーザー操作の種類を示します。 サポートされる値は次のとおりです。
- prompt=login では、ユーザーはその要求に対して資格情報を強制的に入力し、シングル サインオンを否定します。
- prompt=none は"ログイン" の反対です。つまり、ユーザーに対話型プロンプトが表示されないようにします。 シングル サインオンを使用して要求をサイレント モードで完了できない場合、Microsoft ID プラットフォーム エンドポイントはinteraction_required エラーを返します。
- prompt=consent は、ユーザーがサインインした後に OAuth 同意ダイアログをトリガーし、ユーザーにアプリへのアクセス許可の付与を求めます。
- prompt=select_account では、シングル サインオンが中断され、アカウントの選択エクスペリエンスが提供され、セッション内のすべてのアカウント、または記憶されているアカウント、または別のアカウントを完全に使用することを選択するオプションが一覧表示されます。
redirect_uri 必須 認証応答をアプリで送受信できるアプリのredirect_uri。 ポータルに登録したredirect_urisのいずれかと完全に一致する必要があります。ただし、URL エンコードする必要があります。 ネイティブ & モバイル アプリの場合は、 の https://login.microsoftonline.com/common/oauth2/nativeclient既定値を使用する必要があります。
response_mode 推奨 結果のトークンをアプリに送信するために使用するメソッドを指定します。 次のいずれかを指定できます。

- query
- fragment
- form_post

query は、リダイレクト URI のクエリ文字列パラメーターとしてコードを提供します。 暗黙的なフローを使用して ID トークンを要求する場合は、OpenID 仕様で指定されているようにを使用queryすることはできません。コードだけを要求する場合は、または form_postを使用queryfragmentできます。 form_post は、コードを含む POST をリダイレクト URI に実行します。 詳細については、「 OpenID Connect プロトコル」を参照してください。
response_type 必須 認可コードのフローに code を含める必要があります。
scope 必須出席者 ユーザーが同意する スコープ のスペース区切りのリスト。 必ず を含 https://ads.microsoft.com/msads.manage めて、ユーザーに Microsoft Advertising アクセスを求めます。 応答に更新トークンが確実に含まれるようにするには、 を含 offline_access めます。
state 推奨 トークン応答にも返される要求に含まれる値。 任意のコンテンツの文字列にすることができます。 ランダムに生成された一意の値は、通常、クロスサイト リクエスト フォージェリ攻撃を防止するために使用されます。 値は、認証要求が発生する前のアプリ内のユーザーの状態に関する情報 (ページやビューなど) をエンコードすることもできます。
tenant 必須出席者 要求のパスで {tenant} 値を使用して、アプリケーションにサインインできるユーザーを制御できます。 アプリケーションで MSA 個人アカウントと Azure AD の職場または学校アカウントの両方が確実にサポートされるように、Bing Ads API 認証のテナントとして使用 common することをお勧めします。

アプリケーションに別のテナントが必要な場合は、「Microsoft ID プラットフォーム エンドポイント」を参照してください。

次の手順

関連項目

概要