microsoft-graph-api - 通过客户端凭据流程进行图形身份验证 - 我的应用程序是否只能访问我的用户帐户或整个组织?

标签 microsoft-graph-api outlook-restapi

我有一个守护程序脚本,需要访问我的 Office 365 收件箱才能阅读邮件。目前我正在使用 Outlook Rest API V1.0 的基本身份验证,它运行良好,但由于它已停止使用,我希望转向 Graph API 和 OAuth 2.0 身份验证。客户端凭据流,如 here 所述似乎是守护程序脚本的最佳选择,但是,我对应用程序将拥有的权限范围感到困惑。我上面链接的文章看起来好像应用程序可以访问整个组织,但我只需要脚本就可以访问我自己的帐户。我不希望我的应用程序访问其他用户的帐户,而且我认为我们的 I.T.部门也会允许。

那么,使用客户端凭据身份验证时,应用程序的权限范围是什么?如果答案是“整个组织”,那么有没有办法将权限限制为仅我的帐户?如果没有,我的其他选择是什么?

编辑:一个类似的问题被问到 here但没有得到任何答复。

最佳答案

那是正确的。如果您使用客户端凭据,则根据定义,您使用的是应用程序范围。这些 token 没有“用户”上下文,因此是租户范围的权限。这就是为什么应用程序范围在使用之前总是需要管理员同意。

来自 documentation :

Mail.Read (Read mail in all mailboxes)

Allows the app to read mail in all mailboxes without a signed-in user.



如果这只是用于您的邮箱而不是您部署给其他人的东西,您可以使用授权代码授予 offline_access范围同时获得 access_tokenrefresh_token .

一旦您使用 token “播种”了您的应用程序,该应用程序就可以使用 refresh_token获取新的 access_token当它到期时。您可能偶尔需要重新设置您的应用程序/服务(例如,如果您的密码更改),但否则,它应该可以在没有交互的情况下工作。

关于microsoft-graph-api - 通过客户端凭据流程进行图形身份验证 - 我的应用程序是否只能访问我的用户帐户或整个组织?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50273451/

相关文章:

microsoft-graph-api - 获取 Microsoft Graph 和单个服务 API 端点(Outlook REST API 等)的访问 token

c# - 在 Microsoft.Graph 客户端中查询组成员时出现异常

sharepoint - 使用 Microsoft Graph 通过查找 ID 获取 SharePoint 用户

.net - 尝试在 Azure Publish 上验证图形客户端时出现异常 : "Failed to acquire token silently. Call method AcquireToken"

azure - 如何在 Service Fabric 应用程序中添加 .NET Core 类库引用

c# - 使用 C# Graph SDK 获取 Sharepoint Online 站点

outlook - RESTAPINotEnabledForComponentSharedMailbox 错误

javascript - 对 Outlook API 的 POST Ajax 调用 - 访问被拒绝

php - Outlook 通知 REST API 订阅所有日历

azure - 使用 Office 365 API 的日历或用户时区