我正在尝试登录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访问Microsoft Graph但未授予对Azure AD Windows Graph API的访问权限(我没有在任何地方看到此选项)
我可以成功导航到https://portal.azure.com
- &gt;查找Azure AD B2C资源 - &gt;点击进入 - &gt;应用。还有新创建的“Web Portal v2”
我的应用程序已使用“Web Portal v2”的新ClientId和ClientSecret进行了更新。但是,当我启动应用程序并单击“登录”时,我收到错误。 我缺少哪些其他配置?
另外,我应该补充一点,所有上述配置的原因是我可以将我的应用程序从使用Azure AD V1令牌迁移到Azure AD V2令牌,其中包含User.Identity.Name
中的信息,这是我用来在应用程序的右上角显示当前登录用户名的值。如果有不同/更好的方法来实现这一点,请告诉我。
答案 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权限:
刚刚完成了自动化过程,我可以告诉您,要使用Graph API(请注意:使用beta端点),必须配置四个层。
更新应用程序属性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等
为刚创建的应用创建服务主体:https://docs.microsoft.com/en-us/graph/api/serviceprincipal-post-serviceprincipals?view=graph-rest-beta&tabs=http
使用服务主体的对象ID:https://docs.microsoft.com/en-us/graph/api/oauth2permissiongrant-post?view=graph-rest-beta&tabs=http
答案 2 :(得分:0)
您需要做的就是为在管理应用设置下的 API 权限菜单中注册的组织授予管理员同意。它立即对我有用