首页 文章

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

提问于
浏览
1

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

通过指定权限,我能够重定向到正确的登录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读到我可以使用已解码的 id_tokeniss 属性的Guid部分来确定用户是否使用MSA或AAD登录 . 但是,无论是否使用MSA或其他帐户登录,它始终返回相同的值 https://sts.windows.net/{tenant_id}/ .

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

1 回答

  • 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 .

相关问题