2

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

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

AADSTS50020:来自身份提供商“live.com”的用户帐户“xxxx@gmail.com”在租户“默认目录”中不存在,并且无法访问该租户中的应用程序“xxxx”。需要先将该帐户添加为租户中的外部用户。注销并使用不同的 Azure Active Directory 用户帐户重新登录。

将用户添加为来宾可以解决此问题,但我不希望这样。它必须自动工作。我已将应用程序配置为多租户。我认为启用自助服务将是解决方案。但是,由于未知原因,这些设置是灰色的,我不知道如何更改它们。

我允许用户请求访问并自动授予应用程序访问权限。 屏幕截图:企业应用程序 - 自助服务设置

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


我尝试向https://apps.dev.microsoft.com注册另一个应用程序,如该线程Azure AD authentication without app registration中所述,但对于新的 clientId,我仍然收到相同的错误消息。

在此线程Azure Multi-Tenant Application with Windows Live ID Authentication中,该解决方案似乎更改了基于租户的身份验证端点。这需要首先询问用户它正在使用哪个租户,然后重定向到身份验证,这似乎是一个非常糟糕的用户体验。

4

1 回答 1

3

如果您的要求是除了公司帐户之外还接受个人帐户 (hotmail.com/outlook.com),那么您不应该使用 ADAL。ADAL/ADAL.JS 仅设计用于接受公司帐户并使用 - 所谓的 - Azure AD 'v1' 端点。

以下是您的选择:

  1. AppSource仅需要公司帐户登录。如果您只需要 AppSource 认证,您可以继续使用 adal.js 登录公司帐户。然后您需要做的是在 Azure 门户中将您的应用程序设置为多租户,这样您就不需要添加来宾帐户。但是,同样,此选项仅接受公司帐户登录。

  2. 如果您还需要接受个人帐户,那么您需要使用msal.js而不是 adal.js - 然后在新门户https://apps.dev.microsoft.com中注册您的应用程序。这个新应用程序称为融合应用程序,使用Azure AD v2 端点。要开始使用本指南作为使用 msal.js 登录用户的起点。

于 2018-02-21T18:55:23.727 回答