Web API如何知道令牌來自授權客戶端,以及如何驗證。
正常情況下,訪問令牌通過類似授權的HTTP頭傳遞。您可以在特定的航線網絡API使用處理,並檢查該令牌與你的邏輯
凡在網絡API代碼,我們可以覆蓋並檢查傳入的OAuth令牌 及其驗證。在生產環境中,我們將有 單獨的HA服務器用於IDP和Web API,那麼我們需要在web config中指定一些 證書嗎?
如上所述。最好的地方就是處理器
public class AuthenticationHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
//...
}
}
,不要忘記配置爲使用身份驗證處理某些特定的路線
public static void Register(HttpConfiguration config)
{
// ...
config.MessageHandlers.Add(new AuthenticationHandler());
// ...
}
你只需要,如果你的邏輯需要這個證書來驗證令牌證書。最好的方法是在Windows證書存儲中存儲和讀取它,並在web.config中僅配置所需證書的指紋,因此web.config中沒有用戶名或純文本密碼。
我們可以將所有的Auth機制都提供給Web Api嗎?像 基本,OAuth的等
是的,你可以通過OAuth一起使用基本authentcation,只是使用的東西區別開來,像適合autorization不同的HTTP頭,但目前尚不清楚對我,爲什麼你需要支持例如與oauth基本一致,也許它會更有意義地使用更簡單的基礎。
您需要的大部分信息在此收集http://www.asp.net/web-api/overview/security
很好的解釋。我不想使用機器密鑰來創建令牌,因爲OWIN框架默認使用此密鑰。有沒有其他解決方法來使用證書?我有兩個資源服務器,是否可以將相同的令牌發送到這兩個應用程序,以便可以使用他們的證書來驗證令牌:} –