使用 Azure Ad 中的服务应用程序限制对组或个人邮箱的访问

Posted

技术标签:

【中文标题】使用 Azure Ad 中的服务应用程序限制对组或个人邮箱的访问【英文标题】:Limit access to groups or individual mailboxes using a service application in Azure Ad 【发布时间】:2016-09-19 10:05:43 【问题描述】:

我有一个 Azure 集成服务应用程序(守护程序应用程序),它具有 Microsoft 图形 api 的权限,我现在可以读取整个公司的所有邮箱,这很棒,但可能会引起业务管理的一些担忧。我们在 Office 365 中使用 Outlook。有没有办法指定应用程序可以访问的邮箱,而不是访问所有邮箱/用户。

【问题讨论】:

【参考方案1】:

此 Microsoft 文档似乎给出了答案将应用程序权限范围限定到特定 Exchange Online 邮箱 https://docs.microsoft.com/en-us/graph/auth-limit-mailbox-access

想要限制应用程序访问特定邮箱集的管理员可以使用 New-ApplicationAccessPolicy PowerShell cmdlet 来配置访问控制。本文介绍了配置应用程序访问策略的基本步骤。

【讨论】:

【参考方案2】:

使用客户端凭据获取访问令牌的守护程序应用程序。

客户端凭据流通常在客户端代表自己行事时用作授权授予。并且无法指定应用可以访问的邮箱。

您可以通过在守护程序应用程序中实现业务逻辑来实现这一点。

【讨论】:

谢谢,所以守护程序应用程序可以访问所有内容或不访问任何内容。感谢您解决这个问题。 是的,你是对的。根据我的理解,守护程序应用程序应该在“安全”环境中运行。我们不必担心令牌泄漏。所以限制业务逻辑中的资源访问应该在这种场景下工作。 @FeiXue 我很好奇是否可以让用户选择加入而不是做业务逻辑(参考:docs.microsoft.com/en-us/graph/permissions-reference)?即使业务逻辑再次保护它,仍然有一个很大的安全整体。如果业务逻辑或流氓用户中存在错误,他们可能能够访问所有邮箱的所有电子邮件,并且最终客户无法再次保护(但可能具有同意功能?) @FeiXue - 我认为你想要的可以使用docs.microsoft.com/en-us/graph/auth-limit-mailbox-access - 它允许指定应用程序可以访问的邮箱。我认为即使您在守护程序应用程序中的逻辑提供控件,客户仍然可能希望拥有独立的方式来控制应用程序可以访问谁?让我知道这是否有帮助。

以上是关于使用 Azure Ad 中的服务应用程序限制对组或个人邮箱的访问的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Oauth 2限制访问

Azure AD 限制整个 ASP.NET Core API

Azure 数据库迁移服务安全问题

如何使用 Azure AD 对 VueJS 应用程序进行身份验证?

Azure 实践系列 3:Azure AD中的服务器管理

Azure AD 应用程序注册中的 Client Secret 最长到期时间修改为 2 年