多要素認証要件

Microsoft Advertising Online では、既に多要素認証が必要です。 多要素認証は、2 つの異なる方法で ID を確認する必要があるセキュリティ プロセスです。

重要

2022 年 6 月 1 日の時点で、Bing Ads API、Content API、および Hotel API を使用するために、サード パーティのアプリケーションを介してサインインするお客様に 対して多要素認証 が徐々に必要になります。

新しいmsads.manageスコープを使用してユーザーの同意を得るには、アプリケーションを更新する必要があります。 すべてのアプリケーション開発者は、新しいスコープを使用するためにアクションを実行する必要があります。

新しいスコープには、アプリケーションのすべてのユーザーからの新しいmsads.manage同意が必要です。 多要素認証を有効にしたかどうかにかかわらず、新しい msads.manage スコープを使用してユーザーに同意を求める必要があります。 これにより、アプリケーションに同意を与えるときに、2 番目の形式の識別または証明が提供されます。

操作が必要です

アプリケーションを更新し、Microsoft ID プラットフォーム エンドポイントを介してスコープを使用して msads.manage ユーザーに同意を求める必要があります。 すべての Microsoft Advertising 開発者は、新しいスコープを使用するためにアクションを実行する必要があります。

各 API 要求で、アクセス トークンを確認して、ユーザーが新しい msads.manage スコープを介して同意を付与されていることを確認します。 多要素認証を適用すると、それ以外の場合にプロビジョニングされたアクセス トークンは受け入れられません。

必要な変更はできるだけ早く行うことをお勧めします。

また、アプリケーションにアクセス許可を付与するときに 2 つ目の証明が必要になるように 、MFA を設定 するようにアプリケーションのユーザーに通知し、ガイドすることをお勧めします。 Microsoft Advertising の要件では、MFA を有効にするだけでは不十分です。 いずれの方法でも、スコープを入力するように求めることで、ユーザーの同意を msads.manage 得る必要があります。

適用後

MFA を適用すると、Microsoft ID プラットフォーム エンドポイントのスコープを介してmsads.manageアプリケーションへの同意を付与したユーザーに代わってのみ、アクセス トークンが認証されます。

  • MFA の適用前に、 Microsoft ID プラットフォーム エンドポイント はスコープを ads.manage サポートしています。 ads.manage スコープを使用してユーザーに対して取得したアクセス トークンは受け入れされなくなります。

  • MFA の適用前に、Live Connect エンドポイントはスコープを bingads.manage サポートしています。 Live Connect エンドポイントは既に非推奨になっており、サポートされなくなります。 スコープを介してユーザーに対して取得した bingads.manage アクセス トークンは受け入れされなくなります。

SDK のサポート

新しい msads.manage スコープのサポートは、バージョン 13.0.10 の Bing Ads SDK (.NET、Java、Python、PHP) 以降で利用できます。

既定では、新しい msads.manage スコープが使用されます。 下位互換性のために、適用日まで、 または bingads.manage スコープをads.manage短い回避策で使用できます。

var oAuthDesktopMobileAuthCodeGrant = new OAuthDesktopMobileAuthCodeGrant(
    Settings.Default["ClientId"].ToString(),
    apiEnvironment,
    OAuthScope.ADS_MANAGE // temporary workaround; remove or use MSADS_MANAGE instead
);
OAuthDesktopMobileAuthCodeGrant oAuthDesktopMobileAuthCodeGrant = new OAuthDesktopMobileAuthCodeGrant(
    ClientId, 
    ApiEnvironment,
    OAuthScope.ADS_MANAGE // temporary workaround; remove or use MSADS_MANAGE instead
);
$authentication = (new OAuthDesktopMobileAuthCodeGrant())
    ->withClientId(ClientId)
    ->withEnvironment(ApiEnvironment)
    ->withOAuthScope(OAuthScope::ADS_MANAGE); // temporary workaround; remove or use MSADS_MANAGE instead
oauth_web_auth_code_grant = OAuthDesktopMobileAuthCodeGrant(
    client_id=CLIENT_ID,
    env=ENVIRONMENT,
    oauth_scope="ads.manage" # temporary workaround; remove or use "msads.manage" instead
)

シナリオ例

ビジネスに適用される可能性があるシナリオの例を次に示します。

例: 別のスコープで更新して新しいアクセス トークンを取得する

アクセス トークンは、スコープに基づいて制限されたアクセス許可でユーザーに代わって行動するアクセス許可を表します。 アカウントの管理に同意を求める場合は、scope パラメーターを ads.managemsads.manage のいずれかに設定します。 スコープで定義されているものに対するアクセス許可を持つユーザー アクセス トークンを本当に要求しています。

重要

多要素認証を適用すると、アクセス トークンは msads.manage スコープを介してプロビジョニングまたは更新された場合にのみ受け入れられます。 ads.manage を使用してトークンを更新し続けることができますが、Bing Ads API はトークンを受け入れません。

多要素認証の適用時にアクセス トークンが受け入れられることを確認するには、応答スコープを確認できます。 スコープに msads.manage が含まれている場合は、受け入れられます。

たとえば、現在、ユーザーが ads.manage スコープと msads.manage スコープの両方を使用してアカウントを管理することにアプリケーションに同意しているとします。 彼らは先月 ads.manage を介して同意を与えた後、今月 msads.manage を介して同意を与えた可能性があります。

ads.manage でトークンを更新すると、トークンの更新応答に ads.manage スコープが含まれます。 多要素認証を適用すると、"MyAccessToken-1" は許可されません。

{
    "token_type":"Bearer",
    "scope":"https://ads.microsoft.com/ads.manage",
    "expires_in":3600,
    "ext_expires_in":3600,
    "access_token":"MyAccessToken-1",
    "refresh_token":"MyRefreshToken-1"
}

msads.manage でトークンを更新すると、トークンの更新応答に ads.manage スコープと msads.manage スコープの両方が含まれます。 多要素認証を適用すると、"MyAccessToken-2" が受け入れられます。

{
    "token_type":"Bearer",
    "scope":"https://ads.microsoft.com/msads.manage https://ads.microsoft.com/ads.manage",
    "expires_in":3600,
    "ext_expires_in":3600,
    "access_token":"MyAccessToken-2",
    "refresh_token":"MyRefreshToken-2"
}

ユーザーが現在同意していないスコープを使用してトークンを更新しようとすると、 invalid_grant エラーが返されます。

{
    "error":"invalid_grant",
    "error_description":"AADSTS70000: The request was denied because one or more scopes requested are unauthorized or expired. The user must first sign in and grant the client application access to the requested scope."
}

関連項目

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