允许所有外部用户通过Azure AD身份验证访问



我使用Adal JS库将Azure AD身份验证配置为JavaScript前端。我可以使用属于Active Directory的帐户成功登录。

我们希望允许所有外部用户登录该应用程序。只要您拥有Microsoft或Live帐户,就应该获得访问权限。我正在收到此错误:

AADSTS50020:来自身份提供者'live.com'的用户帐户'xxxx@gmail.com'live.com'不存在租户'默认目录',并且无法访问该房客中的应用程序'xxxx'。该帐户需要首先作为租户中的外部用户添加。登录并再次使用不同的Azure Active Directory用户帐户登录。

将用户添加为客人可以解决此问题,但我不希望这样做。它必须自动工作。我已经配置了该应用程序是多偏见的。我认为启用自助服务将是解决方案。但是,由于未知原因,设置被弄清楚,我不知道如何更改它们。

我已经使用户可以请求访问权限,还可以自动授予应用程序上的访问。屏幕截图:企业应用程序 - 自助服务设置

但是,在目录中,未启用自助服务(选项Self-service group management enabled设置为No(,我对此无能为力。如何更改这些设置?屏幕截图:组 - 一般设置


我尝试将另一个应用程序注册到https://apps.dev.microsoft.com上,如此线程Azure Ad Ad Authentication所说的无应用程序注册,但我仍然收到新客户ID的相同错误消息。

在此线程中,使用Windows Live ID身份验证的Azure多租户应用程序解决方案似乎会根据租户更改身份验证端点。这需要首先询问用户使用什么租户,然后重定向到身份验证,这似乎是非常不好的UX。

如果您的要求是接受两个个人帐户(hotmail.com/outlook.com(,则除了公司帐户外,您不应使用Adal。ADAL/ADAL.JS的设计仅是为了接受公司帐户并使用 - 所谓的Azure AD'V1'端点。

这是您的选择:

  1. AppSource 仅需要公司帐户签名。如果您只需要AppSource认证,则可以继续使用Adal.js登录公司帐户。那么,您需要做的是将应用程序设置为Azure Portal中的多租户,因此您无需添加访客帐户。但是,同样,此选项仅接受公司帐户登录。

  2. 如果您的要求还要接受个人帐户,则需要使用 msal.js 而不是Adal.js-然后在新的Portal https://中注册您的申请apps.dev.microsoft.com。该新应用程序称为收敛的应用程序,并使用 azure ad v2 endpoint 。开始使用本指南作为使用MSAL.JS登录用户的起点。

最新更新