3

我在我们组织的“xxx.onmicrosoft.com”Azure Active Directory 中创建了一个“Web 应用程序/API”应用程序。该应用程序的“多租户”属性已设置为“是”。

我们将 OpenID Connect(我们使用https://github.com/mitreid-connect/)配置为使用以下 URL:

请注意,我们在 URL 中使用了“common”,而没有使用“xxx.onmicrosoft.com”,因为我们希望“xxx.onmicrosoft.com”之外的人能够验证和访问我们的应用程序。

通过这些设置,来自 xxx.onmicrosoft.com 的人员可以正确地验证和访问该应用程序。

但是,当我使用我的个人 live.com 帐户(用户名 xxx@gmail.com)访问该应用程序时,我收到 AADSTS50020 错误。我能够使用我的 xxx@gmail.com 帐户进行正确身份验证,但我没有被重定向到回复 URL。我被困在 Microsoft 的网页上,出现以下错误消息:

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

如果我希望来自任何身份提供者的人能够访问我的应用程序,我需要更改什么配置?

就像这里所说的那样,我希望任何地方的人都可以访问我的应用程序,而无需我进行更多配置。

我问这个问题是因为我正在为 AppSource 获得认证,而这目前阻止了我这样做。

4

1 回答 1

4

AppSource仅需要工作帐户才能登录。您正在使用@gmail帐户 - 这是一个个人帐户 - 因为v1除了common( https://login.microsoftonline.com/common ) 之外,您还使用 Azure Active Directory 端点,它不能接受个人帐户进行签名- 直接输入 - 仅工作帐户。

你有三个选择:

  1. 如果您的应用程序不需要登录个人帐户v1,那么您可以继续使用端点并使用工作帐户登录/测试您的应用程序。这将使您为 AppSource 认证做好准备。
  2. 如果您需要/希望在您的应用程序中允许除了工作帐户之外的个人帐户,那么您可以考虑使用 Azure Active Directory 的v2端点 ( https://login.microsoftonline.com/common/v2.0 )。v2端点允许个人帐户和工作帐户轻松登录。
    需要注意的是v2端点有一些限制:如果您可以忍受这些限制(例如,您的应用程序只需要登录用户并最终对 Graph API 进行查询),那么通常它应该可以使用,但如果您需要额外的功能,例如使用范围保护您自己的 Web API,那么此时此功能尚未发布(截至 2017 年 11 月)。请阅读这份文件v2有关端点限制的更新列表。
  3. 第三个(但不太推荐的 AppSource 选项)是继续使用v1端点并使您的应用程序成为单租户- 即将端点从https://login.microsoftonline.com/common更改为https://login。 microsoftonline.com/ {yourtenantid},然后使用B2B 邀请 API邀请每个外部用户(包括工作和个人帐户)成为 Azure AD 租户/组织的一部分。更多关于 B2B的信息也在这里

上面的选项“3”对管理以及 AppSource 有一些影响:通过使用此选项,您需要拥有一个 Azure Active Directory 租户(如果您还没有租户,您可以使用这些说明获得一个) ,并且被邀请的用户将是该租户的来宾帐户- 这意味着您需要邀请每个外部用户加入您的应用程序/租户。多租户应用程序允许来自任何组织的任何用户登录到您的应用程序,而您的管理较少。通常对于 SaaS 应用程序,建议使用多租户配置。

对于 AppSource,选项“3”也会导致用户体验不那么沉浸(合作伙伴主导的试用),最终用户将无法立即访问您的应用程序演示 - 主要是因为他们必须等待邀请发送电子邮件并接受它(用户必须接受成为您租户的客人),以便他们可以访问您的应用程序。

有关 AppSource 要求和试用选项的更多信息 - 请参阅本文

于 2017-11-17T18:21:42.300 回答