如何解决无法使用客户端ID /秘密Azure AD B2C登录
我试图使用Microsoft Graph API从应用程序管理Azure AD B2C用户,但是我无法使用我的客户端ID /密码进行身份验证。
首先,我按照此处的步骤注册了一个应用程序: https://docs.microsoft.com/en-us/azure/active-directory-b2c/microsoft-graph-get-started?tabs=app-reg-ga
在该文章的最后,我被指示学习如何获取访问令牌:https://docs.microsoft.com/en-us/graph/auth-v2-service#4-get-an-access-token
他们建议使用终结点https://login.microsoftonline.com/mytenant/oauth2/v2.0/token,但是当我在该URL中使用租户时,出现错误“找不到租户'mytenant'。如果租户没有活动订阅,则可能会发生这种情况。检查确保您具有正确的租户ID。请与您的订阅管理员联系。“
可以理解,那不是我一直在使用的那种URL。但是我应该使用什么样的端点?所以我尝试了一些。
我的应用程序概述中有一些端点建议,格式为 https://mytenant.b2clogin.com/mytenant.onmicrosoft.com/policy-name/oauth2/v2.0/token 但是策略名称是什么?说明中没有关于设置策略的任何内容。 我有一些他们可能在谈论的用户流程,所以我尝试了一些,例如 如果我使用https://mytenant.b2clogin.com/mytenant.onmicrosoft.com/b2c_1_sign_in/oauth2/v2.0/token, 我得到“不支持提供的grant_type [client_credentials]。”
我的工作流程中还建议使用以下格式的端点 https://mytenant.b2clogin.com/mytenant.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_sign_in 这给出了相同的client_credentials错误。
我还尝试了b2c_1_ropc用户流而不是b2c_1_sign_in,结果相似。
我在做什么错?指示是否不完整?我没猜到合适的端点吗?
解决方法
所有假定的建议都是错误的。
医生说要使用端点https://login.microsoftonline.com/mytenant/oauth2/v2.0/token,这是完全正确的。
如果您的B2C租户的租户名称为contoso.onmicrosoft.com或contoso.b2clogin.com,则端点为https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/v2.0/token
,在我的情况下,我的B2C租户名称(请参见Azure中的“租户属性”下的)为Company Customers
,因此我的所有用户流终结点都显示为:
https://Company Customers.b2clogin.com/mytenantdev.onmicrosoft.com/...
我必须更新租户名称,删除空格,然后重新创建我的应用程序注册,然后一切开始正常工作。但是,我不必重做用户流。
所以最终端点看起来像这样:https://mytenant.b2clogin.com/mytenantdev.onmicrosoft.com/<policy-name>...
还应注意,我必须注销Azure并重新登录才能使租户名称开始正确显示在控制台中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。