Azure AD B2C错误:请求中指定的客户端ID未在租户

时间:2018-03-24 11:16:28

标签: oauth-2.0 microsoft-graph azure-ad-b2c

我正在尝试登录Azure Active Directory B2C应用程序。

每当我访问网址https://login.microsoftonline.com/te/<my_domain>/<my_sign_up_sign_in_policy_name>/oauth2/v2.0/authorize?client_id=<my_client_id>...时,都会收到以下错误:

  

请求中指定的客户端ID <my_client_id>未在租户<my_tenant_name>中注册。

以下是有关我的配置的一些信息:

  • https://portal.azure.com中,我创建了Azure Active Directory B2C租户,其中包含用户globaladmin@<my_domain>.onmicrosoft.com

    • 为了创建应用程序,我导航到https://apps.dev.microsoft.com,以全局管理员身份登录并在instructions here
    • 之后创建了“Web Portal v2”应用程序
  • 我授予Web Portal v2访问Microsoft Graph但未授予对Azure AD Windows Graph API的访问权限(我没有在任何地方看到此选项) enter image description here

  • 我可以成功导航到https://portal.azure.com - &gt;查找Azure AD B2C资源 - &gt;点击进入 - &gt;应用。还有新创建的“Web Portal v2”

enter image description here

我的应用程序已使用“Web Portal v2”的新ClientId和ClientSecret进行了更新。但是,当我启动应用程序并单击“登录”时,我收到错误。 我缺少哪些其他配置?

另外,我应该补充一点,所有上述配置的原因是我可以将我的应用程序从使用Azure AD V1令牌迁移到Azure AD V2令牌,其中包含User.Identity.Name中的信息,这是我用来在应用程序的右上角显示当前登录用户名的值。如果有不同/更好的方法来实现这一点,请告诉我。

3 个答案:

答案 0 :(得分:3)

https://login.microsoftonline.com/te/<tenant_id>/<policy_id>/oauth2/v2.0/authorize?client_id=<client_id>...网址是正确的,但您不应该使用the Application Registration Portal创建Azure AD B2C应用程序,否则它会变为a faulted app,然后您会收到The client id ... specified in the request is not registered in tenant ...错误。

应使用the Azure Portal的Azure AD B2C刀片创建Azure AD B2C应用程序。

答案 1 :(得分:3)

我认为这样做的原因是,通过AD刀片(或Graph API)创建应用程序时未预先设置API权限。解决方法是向应用程序添加API权限:

Api Permissions default B2C

刚刚完成了自动化过程,我可以告诉您,要使用Graph API(请注意:使用beta端点),必须配置四个层。

  1. 创建应用程序https://docs.microsoft.com/en-us/graph/api/application-post-applications?view=graph-rest-beta&tabs=http

  2. 更新应用程序属性https://docs.microsoft.com/en-us/graph/api/application-update?view=graph-rest-beta&tabs=http 一种。 requiredResourceAccess https://docs.microsoft.com/en-us/graph/api/resources/requiredresourceaccess?view=graph-rest-beta b。其他任何属性,例如implicitGrantSettings,logoutUrl等

  3. 为刚创建的应用创建服务主体:https://docs.microsoft.com/en-us/graph/api/serviceprincipal-post-serviceprincipals?view=graph-rest-beta&tabs=http

  4. 使用服务主体的对象ID:https://docs.microsoft.com/en-us/graph/api/oauth2permissiongrant-post?view=graph-rest-beta&tabs=http

  5. 创建oauth2PermissionGrants

答案 2 :(得分:0)

您需要做的就是为在管理应用设置下的 API 权限菜单中注册的组织授予管理员同意。它立即对我有用