Authentication Azure APIM:将客户端证书发送到后端进行身份验证
我们有一个APIM,它根据不同的策略将请求转发到不同的后端服务器。我想限制对后端服务器的请求仅来自该APIM(而不是其他实体)。目前有两种选择:Authentication Azure APIM:将客户端证书发送到后端进行身份验证,authentication,azure-api-management,client-certificates,Authentication,Azure Api Management,Client Certificates,我们有一个APIM,它根据不同的策略将请求转发到不同的后端服务器。我想限制对后端服务器的请求仅来自该APIM(而不是其他实体)。目前有两种选择: 在后端服务器上进行IP过滤,仅当请求来自APIM IP地址时才接受请求-不想走这条路,因为APIM IP地址可能会更改,并且保持列表更新很麻烦 客户端证书身份验证机制—APIM将发送一个证书,然后由后端服务器进行验证 我不明白的是APIM是如何发送证书的?证书是在HTTP头中发送的,还是在HTTP下面的TLS层中发送的 问这个问题是因为:我正在寻找一种
对这种方法有什么想法吗?如果我对APIM中客户端证书如何工作的理解是错误的?我不知道这个答案是否对您有帮助。几个月前我做了一些调查。据我所知,入站和出站客户端证书都是在TLS级别上处理的,只有Azure中的一些原语(例如前门、应用程序网关或应用程序服务)可以将客户端证书从TLS级别调到HTTP头中,由后端处理。由于此解决方案对我的案例来说不够通用,而且一个第三方后端受到限制,因此我设计了服务器到服务器的证书。请允许我在这里补充我的想法。使用apim时,后端服务器的url是隐藏的,外部用户或设备不知道到服务器的路由。如果您的服务器url已公开,并且您需要设置策略以禁止来自apim的请求以外的其他请求,则您只能让您的服务器知道传入的请求来自apim,例如请求包含特定的请求头,我们可以在请求转到后端服务的同时添加订阅密钥。正如您所说的,后端服务器可能会选择验证证书,那么为什么不选择请求头或其他人呢?