配置 API 认证与访问

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

API 安全的重要性

HTTP 安全

  • API 端点常为公开
  • API 背后的数据需受保护
  • 尤其是敏感数据
Azure API Management

认证概览

  • 认证与授权不同
  • 认证用于证明调用者身份
  • 使用用户名和密码登录是一种认证

登录表单

Azure API Management

授权概览

不安全与安全的请求

  • 授权用于控制权限
  • 已认证用户也可能无权访问
  • 例如:仅管理员可访问管理区
Azure API Management

天气应用示例

天气应用授权

Azure API Management

OAuth 简介

  • OAuth 用于认证
  • 也用于授权
  • 复杂的安全协议
  • 安全性评级很高

发放访问令牌

Azure API Management

Google OAuth 示例

Google OAuth 示例

Azure API Management

Azure Functions 中的 API 密钥授权

  • 授权不一定需要认证
  • 可用 API 密钥保护 HTTP 端点
  • 一串很长的字符
  • 在 Azure Functions 中默认生成密钥
  • 请求中必须包含密钥
  • 客户端需要知道该密钥
  • 客户端无需证明其身份

在 Azure 中设置 API 密钥

Azure API Management

API 密钥的不同作用域

Azure Function 中 API 密钥的作用域

  • 不同密钥有不同作用域
  • 函数级密钥 仅授予特定函数的访问
    • 像只开某个门的钥匙
  • 主机级密钥
    • 可访问应用中的所有函数
    • 像整栋楼的万能钥匙
Azure API Management

API 管理的认证

  • APIM 可连接到认证提供方
  • 其中之一是 Entra ID
    • 先前称为 Active Directory
  • 集成 OAuth 比使用 API 密钥更安全
    • 但更复杂

在 APIM 中启用 Entra ID 集成

Azure API Management

API 管理的授权策略

 

在 APIM 中验证 JWT

在 API 管理中通过策略实现授权

  • 策略定义访问规则

  • 基于角色限制端点

  • 确保只有获授权的客户端调用 API

Azure API Management

Passons à la pratique !

Azure API Management

Preparing Video For Download...