数据 API 生成器中的 Azure 身份验证

数据 API 生成器允许开发人员定义身份验证机制(标识提供者),他们希望数据 API 生成器用于对发出请求的用户进行身份验证。

身份验证委托给受支持的标识提供者,可在其中颁发访问令牌。 获取的访问令牌必须包含在对数据 API 生成器的传入请求中。 然后,数据 API 生成器会验证呈现的任何访问令牌,确保数据 API 生成器是令牌的目标受众。

支持的标识提供者配置选项包括:

  • StaticWebApps
  • JSON Web 令牌 (JWT)

Azure 静态 Web 应用身份验证 (EasyAuth)

数据 API 生成器要求 Azure 静态 Web 应用身份验证(EasyAuth)对请求进行身份验证,并在使用选项 StaticWebApps时,在 X-MS-CLIENT-PRINCIPAL HTTP 标头中提供经过身份验证的用户的元数据。 静态 Web 应用提供的经过身份验证的用户元数据可在以下文档中引用:访问用户信息

若要使用 StaticWebApps 提供程序,需要在配置文件 runtime.host 部分中指定以下配置:

"authentication": {
    "provider": "StaticWebApps"
}

如果打算在 Azure 中运行数据 API 生成器、使用应用服务托管数据 API 生成器并在容器中运行它:在 Azure 应用服务中运行自定义容器时,使用 StaticWebApps 提供程序非常有用。

JWT

若要使用 JWT 提供程序,需要通过提供所需的信息来验证收到的 JWT 令牌,来配置 runtime.host.authentication 部分:

"authentication": {
    "provider": "AzureAD",
    "jwt": {
        "audience": "<APP_ID>",
        "issuer": "https://login.microsoftonline.com/<AZURE_AD_TENANT_ID>/v2.0"
    }
}

角色选择

通过任一可用选项对请求进行身份验证后,令牌中定义的角色将用于帮助确定如何评估权限规则以 授权 请求。 除非请求使用用户角色,否则任何经过身份验证的请求都会自动分配给 authenticated 系统角色。 有关详细信息,请参阅 授权

匿名请求

还可以在不进行身份验证的情况下发出请求。 在这种情况下,请求会自动分配给 anonymous 系统角色,以便 授权

X-MS-API-ROLE 请求标头

数据 API 生成器要求标头 X-MS-API-ROLE 来授权使用自定义角色的请求。 X-MS-API-ROLE 的值必须与令牌中指定的角色匹配。 例如,如果令牌的角色 Sample.Role,则 X-MS-API-ROLE 还应 Sample.Role。 有关详细信息,请参阅 授权用户角色