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

标签 azure azure-active-directory outlook-restapi azure-authentication

我有一个 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/

相关文章:

azure - 重命名现有 Azure 数据工厂

javascript - Azure Active Directory登录页面和Xframe问题

使用 docker 的 Azure DevOps 自托管代理

c# - 如何使用 Microsoft Graph API 发送邀请电子邮件

c# - 将 login_hint 与 OpenID 结合使用

exchange-server - ResourceNotFound - 使用 Microsoft Graph API 访问混合 Exchange 设置中的本地邮箱

azure - 限制对存储帐户的访问时,无法在资源实例中选择 Azure 函数应用

javascript - 通过代码设置应用程序注册 (Azure AD)?

php - CURL 调用期间 Outlook rest api oauth2 php HTTP 错误 400

microsoft-graph-api - 微软图形 API : Is there any limit on payload size of a POST request