如何在Azure租户中允许我的应用程序注册公开登录?

问题描述

我正在尝试创建一个在Azure中托管的应用程序,只要您具有Microsoft帐户,该应用程序(应)允许公共登录。我不在乎这是企业帐户还是个人帐户。您只需要能够登录即可。我正在创建SPA和API。

因此,我转到Azure门户并创建了一个应用程序注册,并配置了该应用程序注册以允许组织内部或外部的所有用户拥有有效的个人或企业Microsoft帐户。

现在SPA是一个Angular应用程序,我使用damien Bod的OpenId库登录。当我将stsServer指向我的登录端点(https://login.microsoftonline.com/{my-tenant-id}/v2.0)并登录时,除了我登录时,所有工作都很好使用组织外部的帐户(例如我的个人帐户)。

我收到以下错误

AADSTS50020: User account 'xxxx@xxxx.xxx' from identity provider 'https://sts.windows.net/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/' does not exist in tenant 'Default Directory' and cannot access the application 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'(App Name) in that tenant. The account needs to be added as an external user in the tenant first. Sign out and sign in again with a different Azure Active Directory user account.

现在的问题是,我只是不想添加所有这些用户,而是允许他们访问此应用程序。我该怎么办?

谢谢!

解决方法

如果要允许任何帐户登录,则不能使用特定于租户的登录端点。 您需要使用“公共”端点:https://login.microsoftonline.com/common/v2.0。 这样可以使用任何Azure AD /个人Microsoft帐户登录。