gpt4 book ai didi

azure - 管理员如何仅向特定用户授予应用程序注册的访问权限?

转载 作者:行者123 更新时间:2023-12-02 08:33:21 25 4
gpt4 key购买 nike

我有一个 Azure 应用程序注册,由证书保护,创建于 these steps 。应用程序注册是在管理员同意 Outlook.com 邮件、日历和联系人 API 的情况下设置的,这样租户内的任何用户都可以获取 OAuth 访问 token ,而无需单个用户执行任何操作(即无需单个用户签名)或需要同意)。

从应用注册获取访问 token 的代码如下:

var cert = new X509Certificate2(<certFromSecureLocation>)
var clientCredential = new ClientAssertionCertificate(<ApplicationId>, cert);
var authContext = new AuthenticationContext("https://login.windows.net/somecompany.com");
var result = await authContext.AcquireTokenAsync("https://outlook.office.com", clientCredential);
var accessToken = result.AccessToken;

使用访问 token ,可以向租户内的任何用户的 Office API 发出请求 - 例如:

GET https://outlook.office.com/api/v2.0/users/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c7a6a9bee9b2b4a2b587b4a8aaa2a4a8aab7a6a9bee9a4a8aa" rel="noreferrer noopener nofollow">[email protected]</a>/MailFolders
Host: outlook.office.com
X-AnchorMailbox: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c6a7a8bfe8b3b5a3b486b5a9aba3a5a9abb6a7a8bfe8a5a9ab" rel="noreferrer noopener nofollow">[email protected]</a>
Authorization: Bearer <ACCESS_TOKEN>
Accept: application/json
Accept-Encoding: gzip, deflate

是否可以设置应用程序注册,以便管理员可以向特定用户或组的 API 授予同意,从而避免所有用户的所有数据都可能被暴露?或者是否有办法从应用程序注册中排除用户或组,以便 OAuth 访问 token 不能用于他们的帐户?

或者是否有一种不同的方法可以实现相同的结果,即能够为管理员授予的一组用户获取访问 token ,而不需要最终用户交互?

This article似乎它位于解决方案的正确邻域,但似乎不适用于这种特定类型的设置。我可以为应用注册启用需要用户分配,并为其分配一组特定的用户,但我仍然能够对租户内的任何用户使用访问 token 。

最佳答案

恐怕没有这样的方法来访问一组用户。如果访问 token 包含A权限,则可以访问A权限允许的所有数据。

关于azure - 管理员如何仅向特定用户授予应用程序注册的访问权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58823575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com