为什么 Azure API 外部消费者管理中的客户端身份验证需要 PFX 文件?
Why a PFX file is required for Client Authentication in Azure API Management for external consumer?
此 article 解释了使用 Azure api 管理可以进行客户端认证身份验证。以下是这篇文章的节选:
API Management 提供使用客户端证书安全访问 APIs(即客户端到 API Management)的功能。目前,您可以根据所需值检查客户端证书的指纹。您还可以根据上传到 API 管理的现有证书检查指纹。
它包含一个 link 到 another article,解释了如何将客户端证书添加到 azure api 管理,以便在使用客户端证书身份验证的上下文中使用客户端证书仅与后端服务通信时。这显然需要加载一个 PFX 文件(其中包含私钥)。
但是我有兴趣使用 api 管理来验证来自 API 托管在 api 管理中的消费者的客户端证书。第一篇文章似乎表明 api 管理可以接收客户端证书以验证消费者。第一篇文章中的一个策略如下所示:
<choose>
<when condition="@(context.Request.Certificate == null || !context.Deployment.Certificates.Any(c => c.Value.Thumbprint == context.Request.Certificate.Thumbprint))" >
<return-response>
<set-status code="403" reason="Invalid client certificate" />
</return-response>
</when>
</choose>
这意味着我应该只能从我的 API 消费者上传客户端证书的 public 部分。然而,它不允许非 pfx 文件。 我在这里错过了什么?
抱歉耽搁了。您可以上传的证书主要用于通过后端进行身份验证。进行客户端证书验证的推荐解决方案只是检查策略中的指纹值。如果您觉得仅使用 public 密钥就可以上传客户端证书很有价值,请将其添加到我们的 uservoice 中。 http://aka.ms/apimwish
此 article 解释了使用 Azure api 管理可以进行客户端认证身份验证。以下是这篇文章的节选:
API Management 提供使用客户端证书安全访问 APIs(即客户端到 API Management)的功能。目前,您可以根据所需值检查客户端证书的指纹。您还可以根据上传到 API 管理的现有证书检查指纹。
它包含一个 link 到 another article,解释了如何将客户端证书添加到 azure api 管理,以便在使用客户端证书身份验证的上下文中使用客户端证书仅与后端服务通信时。这显然需要加载一个 PFX 文件(其中包含私钥)。
但是我有兴趣使用 api 管理来验证来自 API 托管在 api 管理中的消费者的客户端证书。第一篇文章似乎表明 api 管理可以接收客户端证书以验证消费者。第一篇文章中的一个策略如下所示:
<choose>
<when condition="@(context.Request.Certificate == null || !context.Deployment.Certificates.Any(c => c.Value.Thumbprint == context.Request.Certificate.Thumbprint))" >
<return-response>
<set-status code="403" reason="Invalid client certificate" />
</return-response>
</when>
</choose>
这意味着我应该只能从我的 API 消费者上传客户端证书的 public 部分。然而,它不允许非 pfx 文件。 我在这里错过了什么?
抱歉耽搁了。您可以上传的证书主要用于通过后端进行身份验证。进行客户端证书验证的推荐解决方案只是检查策略中的指纹值。如果您觉得仅使用 public 密钥就可以上传客户端证书很有价值,请将其添加到我们的 uservoice 中。 http://aka.ms/apimwish