使用 Entra ID 的身份验证与授权

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

OAuth 基础概念

Entra ID - APIM 集成

Azure API Management

为何使用身份提供者

代客泊车类比

  • 可将 IdP 理解为代客泊车员
  • 你的车的手套箱里有贵重物品(敏感数据)
  • 你给他们一把"代客钥匙"
    • 只可泊车,不能取用贵重物
  • 同理,IdP 管理应用安全,但不能访问应用内的敏感数据
  • 例如:Entra ID 是 IdP,API Manager 是客户端
Azure API Management

注册 Entra ID 应用

  • 在 Azure Portal 中可找到 Entra ID
  • 需要高权限"贡献者"访问来管理
  • 要应用 OAuth,在"应用注册"中新建实体
  • 每个注册需自定义名称和有效重定向 URL
  • 对于 APIM,重定向 URL 为该 APIM 实例地址
  • 确保登录后 Entra ID 将请求重定向回 APIM

Entra ID 应用注册

Azure API Management

获取客户端信息

Entra ID 客户端信息

  • Client ID 与 Tenant ID

    • 构成应用的"公共地址"
    • 代码用它们告诉 Entra ID 该应用"是谁"
  • Client Secret

    • 充当应用的"密码"
    • 代码通过它证明身份
    • 必须安全存储,绝不可在客户端代码中暴露
Azure API Management

获取端点 URL

  • 在连接客户端到 IdP 前获取 IdP 端点 URL

    • 在 Entra ID 的应用注册"概览"页点击"Endpoints"
    • 记录 OAuth 2.0 的"authorization"和"token"端点
  • 授权端点

    • 代码将用户重定向到此处登录
  • 令牌端点

    • 后端用授权码换取访问令牌

Entra ID 身份验证流程

Azure API Management

将 APIM 连接到 Entra ID

APIM 中的 OAuth 与 OIDC 连接

  • 在 APIM 的 APIs 下打开"OAuth 2.0 + OpenID Connect"

    • 新建授权服务器
  • 配置该服务器:

    • 授权端点与令牌端点
    • Client ID 与 Client Secret
    • 你的 API 暴露的作用域(scopes)
Azure API Management

¡Vamos a practicar!

Azure API Management

Preparing Video For Download...