数据 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。 有关详细信息,请参阅 授权用户角色。