我已经创建了一个HTTPTriggered azure函数,并且我已经设置了API管理来调用该函数。证书验证策略在APIM中设置,当APIM将调用转发到azure函数时,函数的API密钥将被传递。
是否可以将客户端证书验证也从APIM发送到function-App而不仅仅是API密钥?
答案 0 :(得分:0)
您需要将属性添加到功能应用程序资源定义described here,以便启用客户端证书身份验证。然后,您需要在功能代码中进行自己的证书验证。
{
"properties": {
"clientCertEnabled": true
}
}
检查此标头是否为base64编码的客户端证书:
X-ARR-ClientCert
这里有一点需要注意,它可能不适用于消费计划,我没有去测试它,如果有效的话请发表评论。
或者,您可以使用客户端凭据流(client_id
和client_secret
)从Azure AD获取承载令牌,并以此方式调用该功能(启用EasyAuth以使其工作)。这里更大的警告也是一个问题,APIM可以为你做这个流程吗?我不知道。
找到了一些here,看起来它可以使用出站策略,并在Azure AD中发出原始POST请求,这很好,since that's what that flow is really about。