Microsoft 身份平台

面向开发者的 Azure 安全实现

Anushika Agarwal

Cloud Data Engineer

什么是 Microsoft 身份平台?

  • 管理应用登录与访问
    • 构建于 Microsoft Entra ID 之上
      • Entra ID = 核心身份服务
      • 身份平台 = 面向应用的开发层

Entra ID 与 Microsoft 身份平台的关系

面向开发者的 Azure 安全实现

如何工作?

  • 进行身份验证
    • 标准:
      1. OAuth 2.0: 限制应用可执行的操作
      2. OpenID Connect: 确认你的身份
    • 账户类型
      • 企业/学校账户
      • 个人 Microsoft 账户
      • 社交/本地账户

Microsoft 身份平台

面向开发者的 Azure 安全实现

Microsoft 身份平台的关键工具

  • MSAL
    • 为应用请求令牌

MSAL

  • 应用注册:
    • 在 Azure 中设置应用身份

App registration

  • Microsoft Graph API:
    • 访问用户、组和资源

Microsoft Graph API

面向开发者的 Azure 安全实现

应用注册

  • 注册应用可将其连接到 Entra ID

  • 选择

    • 单租户:应用仅在你组织内可用
    • 多租户:应用可跨组织使用
  • 自动创建

    • 应用程序对象
    • 服务主体
  • 添加机密、证书、范围和品牌

应用注册

面向开发者的 Azure 安全实现

应用程序对象

  • 应用的蓝图
  • 位于你的主租户
  • 定义身份验证访问规则

应用程序对象

面向开发者的 Azure 安全实现

示例:PeopleSphere 中的应用程序对象

  • PeopleSphere 在其自有租户中创建 HR 应用

PeopleSphere 的应用程序对象示例

面向开发者的 Azure 安全实现

服务主体

  • 每个租户中的应用实例
  • 原始密钥的工作副本
  • 每个客户在其租户中都有自己的服务主体

服务主体

面向开发者的 Azure 安全实现

示例:DataCamp 中的服务主体

  • DataCamp 的租户中创建的服务主体

DataCamp 中的服务主体示例

面向开发者的 Azure 安全实现

服务主体类型

  • Application
    • 标准应用实例

Application

  • 托管标识
    • 无密钥访问

Managed Identity

  • 旧版
    • 较早的应用

Legacy

面向开发者的 Azure 安全实现

权限

  • 应用使用 OAuth 2.0权限范围请求访问

  • graph.microsoft.com/Calendars.Read

示例范围 Calendars.Read。

应用如何通过 Microsoft 身份平台请求并获得访问权限

面向开发者的 Azure 安全实现

委托权限

  • 登录用户时,应用代表用户执行操作

  • 例:PeopleSphere 为 DataCamp 用户安排会议

PeopleSphere 委托权限示例

面向开发者的 Azure 安全实现

仅应用权限

  • 应用以自身身份执行
  • 无用户参与
  • 例:PeopleSphere 每晚同步 HR 数据

PeopleSphere 仅应用权限示例

面向开发者的 Azure 安全实现

同意

  • 应用需获得同意才能启用权限范围

  • 同意类型

    • 静态:注册时设置权限
    • 增量:按需添加
    • 管理员:高权限访问需管理员同意

同意

面向开发者的 Azure 安全实现

Passons à la pratique !

面向开发者的 Azure 安全实现

Preparing Video For Download...