来自不同租户的 Azure AD 同意
Posted
技术标签:
【中文标题】来自不同租户的 Azure AD 同意【英文标题】:Azure AD Consent from a different Tenant 【发布时间】:2017-12-07 21:08:09 【问题描述】:我正在尝试使用我们的多租户 AD 应用程序来访问用户的 Onedrive for Business。但是,当用户属于其他租户时,在同意某些权限时,我不断收到错误消息。我不确定我需要设置哪些权限,以便任何 365 用户都可以。
我正在使用读取目录的图形 API 权限和 AD。这就是权限的样子。
应用程序权限
读取所有网站集中的文件 在所有网站集中读写文件 读写设备 读写目录数据 -读取目录数据委派权限
拥有用户可以访问的所有文件的完全访问权限 读取用户可以访问的所有文件 拥有对用户文件的完全访问权限 以登录用户的身份读取用户文件访问目录 读写目录数据 读取目录数据登录并读取用户配置文件 读写用户选择的文件(预览) 读取用户选择的文件(预览)【问题讨论】:
【参考方案1】:其他租户的管理员必须首次同意该应用。
这是因为您使用了一些需要管理员同意的范围。如果您将自己限制在不需要管理员同意的范围内,那么普通用户通常应该能够直接同意您的应用。
需要注意的是,其他租户中的管理员始终可以禁用最终用户同意,在这种情况下,他们始终需要管理员同意每个应用程序。
【讨论】:
谢谢,我希望我能解决什么问题。是否有任何其他选项可以使用 O365 帐户并访问他们的 Onedrive,可能使用 Azure B2C 还是始终基于其他租户的应用权限? 好吧,B2C 行不通。 v2 端点可能会有所帮助,但我必须快速对其进行测试,看看用户是否可以自己同意。 感谢@GarethJ 在这里纠正了我的误解。猜猜我只使用了需要管理员权限的权限/禁用了允许用户同意的设置。所以,是的,这取决于您需要的权限。委派的 Files.Read(“读取用户文件”)权限不需要管理员,因此应该可以。但是,您不能使用应用权限,这些权限确实需要管理员始终同意。 虽然有例外,但一个好的一般经验法则是,如果范围/权限包含单词All
,则很可能需要管理员同意。用户通常可以在未经同意的情况下访问自己的信息,而访问其他用户的数据则需要管理员竖起大拇指。 :)
是的,这是经验法则,尽管这取决于定义权限的人 ;)以上是关于来自不同租户的 Azure AD 同意的主要内容,如果未能解决你的问题,请参考以下文章
Azure AD B2C 租户和普通 Azure AD 租户有啥区别?
在多租户应用程序中如何检查应用程序在 Azure 门户中注册的租户数据?
Azure AD 在 Web API 中使用来自客户端应用程序的令牌
使用不同租户上的 Azure Active Directory 访问 Azure Service Fabric 应用程序上的 Key Vault