azure - Azure 应用服务多租户功能实际上不起作用
问题描述
我按照以下步骤尝试创建一个允许从多个 Azure AD 租户登录的 Azure 应用程序:
创建新的应用服务并打开身份验证
1) 在 Azure 门户中:我创建了一个全新的空 Azure 应用服务,并在我的浏览器中拨出它的 URL 以确保它正常工作。
2) 我导航到我的新应用服务,然后是“身份验证/授权”刀片。
3)我打开了“应用服务身份验证”开关。
4) 我从“请求未通过身份验证时采取的操作”下拉菜单中选择了“使用 Azure Active Directory 登录”。
5) 在同一个刀片上的“身份验证提供程序”下,单击“Azure Active Directory”,将我导航到“Azure Active Directory 设置”刀片。
6) 在这个刀片中,我在“管理模式”单选按钮上选择了“快递”。Active Directory 的选择是灰色的,但它是我想要使用的——当前的。
创建与我的应用服务关联的新 Azure AD 应用
7) 我点击了“Azure AD App”,它提示我创建一个 Azure AD App,默认情况下它与我的应用服务名称相同,所以我保留了它。
8) 仍然在“Azure Active Directory 设置”刀片上,单击“管理 Azure Active Directory 应用程序”标题下的“管理应用程序”按钮。我又向下导航了一个刀片,标题是我刚刚创建的 Azure AD 应用程序的名称。
9) 在这里,我单击“设置”按钮,然后单击“设置”刀片中的“属性”。
10)在“属性”中,我将“多租户”单选按钮设置为“是”。
11)也在“属性”中:据说多租户工作需要:我还将“App ID URI”更改为唯一的东西,并且还来自我组织内的已验证 URL。就我而言,我使用了:
https://<<MyTenantName>.onmicrosoft.com/login-ProofOfConcept
测试安全功能
12) 假设一切都设置好了,我首先尝试使用我当前 B2C 租户中存在的用户登录到我的新应用程序。我拨打了我的应用服务的 URL,microsoftonline 提示我进行身份验证,我进行了身份验证,然后我直接进入我的应用程序没有问题。
这是问题所在
13) 然后,我注销并尝试再次登录——但这次是作为另一个 Azure AD 中的用户,这只是我在我的个人 gmail 帐户下启动的一个。我期待它“正常工作”,但在我作为另一个用户进行身份验证后,屏幕上显示了这个错误:
AADSTS50020:来自身份提供者“live.com”的用户帐户“MyUserName@gmail.com”在租户“[MyTenantName]”中不存在,并且无法访问该租户中的应用程序“[MyApplicationGUID]”([AzureADApplicationName])。需要先将该帐户添加为租户中的外部用户。注销并使用不同的 Azure Active Directory 用户帐户重新登录。
这正是我希望通过启用多租户来避免的行为。我希望它只会“登录”这个用户,他是现有 Azure AD 的成员。我错过了配置步骤吗?
解决方案
我认为您可能在这里查看 Azure AD B2B,您需要先邀请非 Azure AD 用户:请参阅此docs.microsoft.com参考。
假设您有默认设置,即允许所有用户邀请非 Azure AD 用户在此实例中访问应用程序,邀请您的第二个用户 @hotmail 然后尝试登录,请参阅此docs.microsoft.com参考。
如果您希望 @hotmail 中的任何人都能够登录您的应用程序,请考虑使用 Azure AD B2C,有关更多详细信息,请参阅此docs.microsoft.com。
推荐阅读
- sql-server - 如何从另一台服务器中的 Springboot 应用程序从一台服务器中连接到 SQL Server 数据库?
- angular - 如何实现永久地址复选框与 Mat-Formfield 中的住宅地址相同。和步进器我尝试了各种方法但不能
- python - keras conv1d 图层自定义填充
- jenkins - 无法在 Jenkins 上同时使用 Kubernetes 和 Jackson 2 API 插件
- python - 具有存储触发器的云功能 - 保持记录:遇到 403 Forbidden,原因为“PERMISSION_DENIED”
- java - Android 无法使用键盘在 SearchView 中选择文本
- makefile - Libft 奖金规则重新链接
- javascript - 如何通过 HTML 显示 javascript 函数的输出
- reactjs - 为样式化组件创建通用道具
- mysql - Galera Cluster 从 MySQL 集群复制数据