Azure AD V2 / msal.js限制个人帐户?

时间:2017-11-16 07:24:42

标签: javascript azure-active-directory msal

我使用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://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-tokens读到,我可以使用已解码iss的{​​{1}}属性的Guid部分来确定用户是使用MSA登录还是AAD。但是,无论我是使用MSA还是其他帐户登录,都会返回id_token的相同值。

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

1 个答案:

答案 0 :(得分:1)

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

https://login.microsoftonline.com/organizations

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

要允许所有人,请使用common

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

在新的v2门户中创建应用程序时,默认情况下该应用程序将是多租户,您将无法在目录中找到它。

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