azure - 如何在我的 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 帐户登录。
推荐阅读
- assembly - x64 asm 挂钩 winsocket2 Connect()
- sql - 比较两张表并找出缺失的组合
- java - 使 gridview 的复选框可见
- sql - 如果日期列有时间戳,如何按月计算列?
- python - 将标签分配给直方图中的非空箱(使用 matplotlib)
- javascript - JavaScript(node.js) - 异步等待不起作用
- android - 抛出 OutOfMemoryError “无法分配 28 字节分配,其中 4000 个空闲字节和 3KB 直到 OOM”
- javascript - UWP - WebView - Angular JS 注入
- arrays - 将多个 ACF 变量合并到一个数组中
- jasper-reports - Jasper - org.xml.sax.SAXParseException:cvc-complex-type.2.1:元素“属性”必须没有字符