azure-authentication

  1. Azure身份认证
  2. 起因
  3. Azure权限说明
    1. 用户身份认证
    2. 应用身份认证
    3. 托管身份
    4. ….
  4. 使用场景
    1. CI/CD中使用
  5. 参考文章

Azure身份认证

起因

我在使用Azure的一些服务的时候发现有些资源访问只需要使用ENDPOINT+KEY的模式就能登录;有的需要账号密码还要手机通过认证

azure的权限管理怎么一回事?让我研究研究!

Azure权限说明

介绍几个常见的用户权限认证

用户身份认证

User Identity / Delegated Permissions

  • 概念

使用 具体用户的身份访问资源或 API。

用户登录 Azure AD,应用代表用户操作资源。

Token 中会包含 scp(scope)字段,表示用户同意的权限。

  • 流程
  1. 用户打开应用 → 被重定向到 Azure AD 登录页。

  2. 用户登录 → 授权同意应用访问权限(Delegated permissions)。

  3. Azure AD 返回 Authorization Code

  4. 应用用 Authorization Code 换取 Access Token

  5. Access Token 调用 API。

image-20250819095514005

  • 特点

Token payload 中有 "scp" 字段(代表同意的委派权限)。

可访问用户有权限的资源。

适合 前端应用、Web 应用、桌面应用

应用身份认证

Application Identity / App-only / Client Credentials

  • 概念

应用自己调用 API,不依赖用户登录。

使用 Client ID + Client Secret证书 获取 token。

Token 中包含 roles 字段(Application permissions)。

  • 流程
  1. 在 Azure AD 注册应用,获取 Client ID / Client Secret 或证书。
  2. API permissions 中添加 Application permissions
  3. 管理员执行 Grant admin consent
  4. 应用使用 client_credentials 流程 获取 Access Token。
  5. Access Token 调用 API。

image-20250819100000246

  • 特点

Token payload 中有 "roles" 字段。

可访问租户内授权范围的所有资源。

适合 后台服务、脚本、自动化任务

  • 优点

无需用户登录,可无人值守。

权限由管理员统一控制,安全可控。

  • 缺点

权限授予必须管理员同意。

不能访问特定用户的私有资源(除非 Application permissions 覆盖)。

托管身份

Managed Identity

  • 概念

Azure 资源(VM、App Service、Function)自带的系统身份。

无需手动管理 Client Secret 或证书。

Azure 会自动颁发 token。

  • 流程
  1. 在 Azure 资源启用 System-assigned 或 User-assigned Managed Identity
  2. Azure AD 自动为身份颁发 token。
  3. 应用直接请求 token → 调用资源/Graph API。
  • 优点

无需保存机密。

安全性高,自动轮换 token。

  • 缺点

只适用于运行在 Azure 上的资源。

….

使用场景

CI/CD中使用

参考文章

github