活动
使用 Microsoft Graph 权限的最佳做法
创建具有高级协作的Microsoft Teams 应用时,请重点关注客户隐私和安全性,以确保广泛使用和采用。
本文介绍在生成用于分发的 Teams 应用时使用 Microsoft Graph 权限的最佳做法。
Microsoft Graph 提供精细权限,允许应用仅请求所需的权限。 Microsoft Graph 提供此功能,因为客户租户管理员可能不会批准请求超过所需权限的应用或应用功能。 通过请求应用所需的最小特权最低权限,可以应用最小特权原则,从而与客户租户管理员建立信任。
应用请求的权限越少,客户的隐私问题就越少。 因此,如果功能简单提供类似的值,同时需要较少的 Graph 终结点或权限,请重新考虑。
Microsoft Graph 支持两种类型的访问方案:委托访问和应用程序访问。 在委托访问中,应用代表已登录用户调用 Microsoft Graph。 在应用程序访问中,应用使用自己的标识调用 Microsoft Graph,而无需登录用户。 特定于资源的同意 (RSC) 权限支持委派访问和应用程序访问权限,但仅限于安装应用的域。 有关详细信息,请参阅 Microsoft Graph 权限。
所请求权限的特权越低,客户的隐私问题就越少。 首选 RSC 权限,因为它们提供更高级别的隐私。 委派权限允许应用程序代表已登录用户进行操作,从而限制对用户范围内数据的访问。 如果无法使用 RSC 或委托的权限,则必须使用应用程序权限。 应用程序权限具有最大的隐私风险,因为它们允许在没有登录用户的情况下访问数据。
以下示例描述了使用最低特权原则的一些方案:
仅读取已登录用户的个人资料信息的应用需要
User.Read
权限,这是访问用户详细信息的最低特权权限。 权限User.ReadWrite
是不必要的,因为它会超出应用的权限,无需修改用户的配置文件。在没有登录用户的情况下读取租户组的应用需要
Group.Read.All
应用程序权限。管理动态作业并与用户的 Outlook 日历同步以读取和更新的应用需要
Calendars.ReadWrite
权限。在 Teams 应用商店上发布的应用可以使用应用持久 ID 而不是 使用
AppCatalog.Read.All
来获取应用 ID。向聊天发送消息的应用可以使用
ChatMessage.Send.Chat
RSC 权限,而不是委托的Chat.ReadWrite
Microsoft Graph 权限。
有关应用最低特权原则的详细信息,请参阅 使用最低特权原则增强安全性 和 生成通过权限和许可保护标识的应用。
租户管理员可以阻止应用所依赖的权限。 通过提供替代方法来最大化应用的价值来预测这一点。 即使未对客户租户授予某些权限,应用仍必须向用户提供价值。 只有需要阻止权限的特定功能才不可用。 请考虑以下方案,这些方案演示如何在权限被阻止时最大化用户价值:
-
创建回退解决方法:在阻止首选功能时准备好无权限替代项,确保用户仍能获得最佳体验。 例如,如果使用
Presence.Read.All
在应用中显示用户的状态,并且权限被拒绝,请隐藏状态指示器,以避免与 “未知 ”状态混淆。 或者,如果应用创建日历事件,请使用 深层链接方法 作为使用 Graph 和请求权限的Calendar.ReadWrite
回退。 使用深层链接,客户可以使用“ 将事件添加到我的日历” 功能,即使他们未授予权限。 - 实现功能管理:使用切换开关或其他管理工具根据客户授予的权限调整功能。
- 考虑为用户安装的应用提供交错权限:对于用户安装的应用,请考虑仅在必要时使用 交错权限 来请求权限,使其符合用户隐私策略,并可能增加应用使用量。 此方法可能不适用于管理员安装的应用。
若要有效管理具有权限更改的新应用版本,请与客户沟通以维护信任并防止流失。 更新应用时,请考虑以下事项:
- 将权限更改组合在一起:将权限更改合并到单个版本中,以最大程度地减少更新频率和对客户的影响。
- 提前管理更新:提前规划和传达权限更新,使客户能够启动其内部审批流程,避免应用功能中断。
以技术利益干系人和业务利益干系人均可访问的格式和语言清楚地记录所有权限。 以下列表提供了有关明确记录应用中的权限选项的具体建议:
- 说明用例:提供与应用的用例和方案直接相关的说明,详细说明每个权限添加的值。
- 包括视觉对象:使用屏幕截图说明应用中需要权限的位置。
- 描述未授予权限的影响:对于高价值方案,描述如果未授予权限,则对用户的影响。
- 提供清晰的应用版本:为已发布的应用、Azure AD 应用注册和文档创建易于理解的版本控制系统。 这种版本控制系统使客户能够跟踪每个版本的功能和审批情况。
客户租户管理员比使用自定义安装和管理系统的应用更信任遵守标准过程的应用。 请考虑以下安装最佳做法:
- 提供标准应用安装:若要保持信任,请使用Microsoft的官方渠道发布应用,并使用Microsoft推荐的应用安装过程。 请勿使用替代安装方法(例如链接或多个应用),因为它们会损害客户信任。 例外情况适用于以下情况: 将应用程序权限限制为特定的 Exchange Online 邮箱、缺少 Outlook 邮箱或 SharePoint 控件。
-
为管理员安装的应用向用户隐藏应用:对于管理员安装的应用,请考虑将应用清单中的 参数设置为
defaultBlockUntilAdminAction
true,以便在管理员授权之前默认对租户用户隐藏应用。 此方法可能不适用于用户安装的应用。
若要提供可信且被客户视为这样的体验,请更新 发布者证明 以反映应用的权限更改。 否则,Microsoft文档页上的权限列表与应用请求的权限列表不同。 这种差异损害了客户的信任和采用。
通过 Microsoft 365 计划认证 Teams 应用。 通过 Microsoft 365 认证,你确认你致力于遵守安全和隐私标准,从而增强客户的信心,并简化应用及其权限的审批过程。
其他资源
培训
认证
Microsoft Certified: Information Protection and Compliance Administrator Associate - Certifications
演示保护 Microsoft 365 部署的数据安全、生命周期管理、信息安全和合规性基础知识。