2016-11-16 148 views
0

我被困在这里一段时间,可能是一个简单的问题。 我正在尝试使用X.509证书来验证api。使用证书Api管理进行身份验证?

我面临的问题是政策,而我尝试,因为这个对象要做到这一点使用片断

<when condition="@(context.Request.Certificate == null)"> 
</when> 

在context.Request.Certificate证书对象评价为真,为空我” m无法验证指纹(由于ontext.Request.Certificate为null,它会抛出ObjectNullReference Expection)。

请帮我这里。

我上传了安全证书并添加到了api中。 在跟踪我可以看到

authentication-certificate (0 ms) { 
"message": "Certificate was attached to request per configuration.", 
"certificate": { 
    "thumbprint": "35607BE3B76E4C12311F4502F502366E4F0BA091", 
    "subject": "CN=yourapp.cloudapp.net", 
    "expirationDate": "2035-12-31T18:30:00Z" 
} 

}

+0

您是否试图使用证书来认证向APIM发出请求的客户端,或者是否认证APIM到您的后端API?您展示的第一个片段是验证客户端,第二个片段是将APIM验证到后端API。 –

回答

1

有在APIM在那里你可以使用客户端证书身份验证两个地方。一个在客户端和APIM服务之间,另一个在APIM服务和后端之间。要做前者,你将不得不改变你的客户端调用APIM服务来附加证书和请求。一旦完成,您应该能够通过context.Request.Certificate在表达式中检索此证书。

要使用客户端证书对APIM服务及其后端进行身份验证,您必须通过管理门户上传证书,并使用API​​设置或API策略直接将其分配给API。