api 的 Azure Apim 身份验证

Azure Apim authentication for apis

我有一个 api 端点被多个 public 客户端使用。并且每个客户端都配置了不同的clientids。我正在使用带有 Oauth2 openid 协议的授权代码流。我想介绍一个 Azure Apim 服务,并想在将请求转发到 apis 之前验证 jwt 令牌。你能告诉我如何实现吗?

注意:我不能使用单个客户端 ID,因为每个客户端的重定向 uri 都不同。

您可以使用 Validate JWT 策略通过验证每个传入请求的访问令牌来预授权 API 管理中的请求。如果请求没有有效令牌,API 管理会阻止它。例如,将以下策略添加到 Echo API 的 <inbound> 策略部分。它会检查访问令牌中的观众声明,如果令牌无效,returns 会显示一条错误消息。

<validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized. Access token is missing or invalid.">
    <openid-config url="https://login.microsoftonline.com/{aad-tenant}/.well-known/openid-configuration" />
    <required-claims>
        <claim name="aud">
            <value>{Application ID of backend-app}</value>
        </claim>
    </required-claims>
</validate-jwt>

详情请参考Configure a JWT validation policy to pre-authorize requests

的文章