请求同意时的 AADSTS650052 和 AADSTS650051

AADSTS650052 and AADSTS650051 when requesting consent

运行 在请求同意时进入这些:

该应用需要访问您的组织尚未订阅或启用的服务。

请联系您的管理员以查看您的服务订阅配置

我有一个非常简单的场景:多租户 SPA 和 Web(API) 应用程序注册。

我同意URL:

https://login.microsoftonline.com/{otherAD}/v2.0/adminconsent?client_id={SPA-AppId)&scope=api://{API-AppId}/read&redirect_uri=https://localhost&state=12345

我的问题是由于我同意使用的范围不正确造成的 URL。

你只需要 &scope=.default

https://login.microsoftonline.com/{ConsentingTid}/v2.0/adminconsent?client_id={WebOrSpaAppId}&redirect_uri={RedirectUri}&scope=.default

无需将应用程序 ID 拼写两次。

如果您所做的只是为您征得同意 API,您只需同意一次。

此外,在您的 MSAL2 客户端代码中:

interactionType: InteractionType.Redirect,
      authRequest: {
        scopes: [
          '.default'
        ]
      }

通过将范围设置为默认值,您将不需要绕过同意 URL,因为在获得同意之前,系统会提示所有尝试访问您的应用的用户征求同意