首页 > 解决方案 > Azure APIM 到 azure 函数相互身份验证

问题描述

我创建了一个 HTTPTriggered azure 函数,并设置了 API 管理来调用该函数。证书验证策略在 APIM 中设置,当 APIM 将调用转发到 azure 函数时,将传递函数的 API 密钥。

这是否可以将客户端证书验证也从 APIM 放到功能应用程序而不是 API 密钥?

标签: azureazure-functionsazure-api-management

解决方案


您需要将属性添加到函数应用资源定义中,如此处所述,才能启用客户端证书身份验证。然后,您需要在函数代码中进行自己的证书验证。

{
    "properties": {
        "clientCertEnabled": true
    }
}

检查此标头是否有 base64 编码的客户端证书:

X-ARR-ClientCert

这里有一个警告,它可能不适用于消费计划,我没有去测试它,如果它有效,请发表评论。

或者,您可以使用客户端凭据流 (client_idclient_secret) 从 Azure AD 获取承载令牌,并以这种方式调用函数(启用 EasyAuth 以使其工作)。这里更大的警告也是一个问题,APIM 可以为你做这个流程吗?我没有任何线索。

更新:

在这里找到了一些东西,看起来它可以使用出站策略并向 Azure AD 发出原始 POST 请求,这很好,因为这就是该流程的真正意义所在


推荐阅读