Active directory Azure AD多租户应用程序不可预测的行为?
我正在尝试在Azure AD中使用Angular前端和node+Azure MS SQL分片数据库设计构建一个可扩展的多租户b2b SAAS 我花了一周的时间阅读MS文档和示例(tailspin、survey应用程序),并开始在angular7应用程序中测试多租户行为,该应用程序上除了身份验证之外没有其他功能,我还使用了其他5个目前正在生产的项目 到目前为止,我一辈子都无法找出这种不可预测的行为背后的原因。我有3个房客:A-B-C A是开发者租户+我的管理员帐户,B是另一家公司的租户+我的普通用户帐户,C是我个人帐户的无广告层租户 除了将多租户设置切换为on并将Oauth2implicitflow更改为true,我在开发者广告上的Azure广告中没有对我的应用程序做任何其他操作Active directory Azure AD多租户应用程序不可预测的行为?,active-directory,azure-active-directory,multi-tenant,activedirectorymembership,Active Directory,Azure Active Directory,Multi Tenant,Activedirectorymembership,我正在尝试在Azure AD中使用Angular前端和node+Azure MS SQL分片数据库设计构建一个可扩展的多租户b2b SAAS 我花了一周的时间阅读MS文档和示例(tailspin、survey应用程序),并开始在angular7应用程序中测试多租户行为,该应用程序上除了身份验证之外没有其他功能,我还使用了其他5个目前正在生产的项目 到目前为止,我一辈子都无法找出这种不可预测的行为背后的原因。我有3个房客:A-B-C A是开发者租户+我的管理员帐户,B是另一家公司的租户+我的普通用
- 如果我与租户A一起登录到应用程序中,在控制台中,一切都很好 可以在TID下查看租户A的GUID
- 如果我使用租户B登录-它第一次请求权限,然后允许我进入(为什么??)
- 如果我使用租户C“work”帐户登录,它不会抛出任何错误,也不会请求权限,返回页面时不会实际登录,控制台上也不会显示任何内容
- 如果我使用租户C“个人”帐户登录,它会告诉我租户live.com未为应用程序设置
您的应用程序后端需要检查用户的租户ID,以确定他们是否有效。当然,您的前端也可以进行检查,尽管它不能取代后端检查。对于第一个问题,当第一个用户同意权限(并且能够这样做)时,应用程序的服务主体已在其租户中创建,并已登录。@juunas这意味着任何拥有帐户的人都可以从技术上注册到我的应用程序?关于如何限制这种行为,我是否缺少一份文档?很明显,我只希望该应用程序被“允许”的租户使用。AD中应用上的“设置”设置为“手动”,当前没有其他选项。目前没有。您的应用后端需要检查用户的租户ID,以确定他们是否有效。当然,您的前端也可以进行检查,尽管它无法替代后端检查。多租户应用程序=任何Azure AD租户都可以使用此功能app@juunas感谢您的洞察力——有了这些知识,我可以推断出什么是异常,什么是期望的行为。我将继续将租户C的行为视为租户C的错误,而不是认为租户B是异常现象。如果你把你的答案作为答案贴出来,我很乐意把它标记为正确的解决方案!谢谢