繁体   English   中英

Azure API 管理 - 机器相关客户端证书创建

[英]Azure API Management - Machine dependent client certificate creation

我创建了 API 并在https://docs.microsoft.com/en-us/learn/modules/control-authentication-with-apim/1-introduction的帮助下实现了订阅+基于证书的身份验证的功能。这个实现当前为特定用户提供安全性。 如果我向另一个用户提供相同的订阅和证书,那么 API 也会被访问。 您能解释一下如何避免这种情况吗? 请您指导我如何通过 Azure API 管理提供基于机器的认证访问?

根据您在问题中提供的教程,有几个属性供用户设置验证策略。 实践中的示例策略是基于指纹<when condition="@(context.Request.Certificate == null || context.Request.Certificate.Thumbprint != "desired-thumbprint")" >

在此处输入图像描述

这导致了您在问题中提到的情况。 如果你想设置基于机器的认证访问策略,你需要改变判断条件。 例如,您想让您的 API 可供受信任的主体访问,您可以像这样更改策略:

<inbound>
   <base />
   <choose>
       <when condition="@(context.Request.Certificate == null 
       || context.Request.Certificate.Issuer != "CN=client-daemon.mycustomdomain.com, OU=Azure, O=tosokr.github.io, L=Amsterdam, S=North Holland, C=NL" 
       || context.Request.Certificate.SubjectName.Name != "CN=*.mycustomdomain.com")">
         <return-response>
             <set-status code="403" reason="Invalid client certificate" />
         </return-response>
       </when>
   </choose>
 </inbound>

更多示例可以参考这个博客

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM