2016-11-16 146 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。