【发布时间】:2020-08-15 01:26:52
【问题描述】:
我有 Angular 9 客户端调用 Azure Functions。我从msal-angular 包开始,使用“隐式授权流”进行身份验证,效果很好。
我在 Azure 中注册的客户端应用程序的身份验证设置为 "Accounts in this organizational directory only (Default Directory only - Single tenant)"。我无法更改此设置,因为该应用仅供公司用户使用。
我正在使用带有 Gmail 用户名的个人 Microsoft 帐户(例如:user@gmail.com)。到目前为止,此帐户是 Azure AD 中的“来宾”。
我正在远离msal-angular 并实施PKCE authentication flow。
我正在使用angular-auth-oidc-client 包。我的stsServer 和authWellknownEndpoint 设置为https://login.microsoftonline.com/[tenant-id]/v2.0(原来是问题所在,请参阅底部的更新)
以下是我遇到问题的登录场景:
-
当我使用
user@gmail.com时,我在输入用户名后立即收到"unauthotized_client ..."错误 -
当我使用我的 UPN(例如:
user@gmail.com#EXT#@our_ad_owner.onmicrosoft.com)时,我会看到密码提示,但我的 Microsoft 密码不起作用。我明白为什么它不起作用(该密码与 AD 无关),但我不知道如何为该帐户设置 AD 密码。
当我尝试在 AD 中重置密码时,它告诉我 "user@gmail.com is a Microsoft account that is managed by the user. Only user@gmail.com can reset their password for this account."
任何有关为我的 UPN 设置 AD 密码的帮助将不胜感激。我还想知道是否可以使用我的实际电子邮件地址而不是 UPN 登录。
更新:问题出在angular-auth-oidc-client 设置上,authWellknownEndpoint 设置为https://login.microsoftonline.com/common/v2.0,在我将其更改为https://login.microsoftonline.com/[tenant-id]/v2.0 后它起作用了!
【问题讨论】:
-
您的权限是否配置为前端的租户?
-
如果一切正常,您应该从 AAD 登录页面重定向到个人 MS 帐户登录页面..
-
@juunas 客户端配置很好,它与“隐式授权流”一起使用,我正在重用相同的客户端,只是禁用了“访问令牌”和“ID 令牌”以启用 PKCE
-
@juunas 权威:login.microsoftonline.com/[tenant-id]/v2.0
-
您在应用注册时将平台更改为SPA?
标签: azure oauth-2.0 azure-active-directory