gpt4 book ai didi

javascript - Azure AD V2/msal.js 限制个人账户?

转载 作者:行者123 更新时间:2023-11-30 20:58:58 26 4
gpt4 key购买 nike

我使用 msal.js 允许用户使用他们的 AAD 帐户登录。我在 https://apps.dev.microsoft.com/ 中创建了应用程序使用目标租户中的帐户。我的印象是,这样做也会在该租户下创建应用程序,并且 msal.js 会正常工作。但是,当 loginRedirect() 被调用时,我最终到达/common/端点,并且我被允许使用各种组织和个人帐户登录。

通过像这样指定权限,我能够重定向到正确的登录 url:

new Msal.UserAgentApplication({client_id}, 'https://login.microsoftonline.com/{tenant_id}/', () => {});

但是,这仍然不限制仅使用来自该组织的帐户登录。其实我也可以用个人账号登录。

我读自Is there a way to find whether authentication followed MSA or Azure AD in MSAL.jshttps://learn.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-tokens我可以使用解码后的 id_tokeniss 属性的 Guid 部分来确定用户是使用 MSA 还是 AAD 登录的。但是,这始终返回相同的值,即 https://sts.windows.net/{tenant_id}/ 无论我是使用 MSA 还是其他帐户登录。

我的问题是如何强制仅使用来自同一租户的用户帐户登录,如果我不能这样做,我如何至少获取一个值来检查用户是使用 MSA 还是帐户登录来自同一个租户?

最佳答案

您可以在权限中指定 organizations 而不是 common 以仅允许 AAD 帐户:

https://login.microsoftonline.com/organizations

如果您只需要 Microsoft 帐户,则可以使用 consumers

要允许所有,请使用 common

https://learn.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols#endpoints

当您在新的 v2 门户中创建应用程序时,默认情况下该应用程序将是 Multi-Tenancy 的,您不会在您的目录中找到它。

如果您想要单租户应用,请使用 v1。

关于javascript - Azure AD V2/msal.js 限制个人账户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47323852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com