繁体   English   中英

Azure AD多租户权限

[英]Azure AD multitenant permissions

我有一个Azure webapp,它通过Azure AD管理它的用户。 我希望用户能够在我的Azure AD目录中注册以创建帐户(自助服务),因此我为应用程序提供了对目录的读写访问权限,并使用Graph API设置页面来创建用户。

到此为止,一切都很棒。 但我现在遇到的问题是我想启用多租户,因此外部AD目录的用户可以登录我的应用程序。 这有效,但我需要以帐户的管理员身份登录,因为它还要求对其目录进行读写访问。

有没有办法解决这个问题? 我只想对我的目录进行读写访问才能创建用户帐户。 我不想要求允许触摸他们的目录,因为很可能他们不相信我的应用程序。

谢谢。

我找到了一个快速而又脏的解决方案:将另一个应用程序添加到Active Directory。 此应用程序应该是单个租户,并且只具有读取和写入活动目录的权限。 我们可以使用此应用程序的凭据来访问Graph API和其他应用程序的凭据以对用户进行身份验证。

我等着看是否有人有更好的解决方案...

对不起,这里的回复很晚。 通常,在目录(如用户)中创建对象的操作需要管理员权限。 此外,您正在创建的Web应用程序使用仅限应用程序的权限,这肯定需要管理员同意。 在多租户案例中,同意租户的管理员必须是同意此类应用程序的管理员 - 只有具有此角色的人才有权授予此级别访问权限。

希望有所帮助,

无需使用辅助应用程序代替身份验证角色 - 无论如何,对身份验证用户可能会产生一些特殊的副作用,例如无关/不完整的日志记录,角色不一致以及缺少系统/内部引用。

您使用的是什么用于应用程序的登录凭据(TenantID等)? AD在凭据管理方面非常严格,所以我会回到应用程序结构。

在查询级别,您可以使每个租户完全分离所有表,没有共享表数据,并且包含多租户标识符列,因此如果您确定将多租户标识符包含为显式变量,则无法进行sql注入。

然后在实体模型中,您可以为每个人返回一个多租户接口,该接口返回租户标识符(作为EF的一部分)。

这样,负担就会被隔离到OAuth或其他库,以便处理第三方身份验证。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM