2017-09-19 24 views
1

我們有一個包含API Server(後端),客戶端網站和最終用戶的三層系統。現在,身份驗證發生在API服務器上,這可以在兩種情況下完成。在一種情況下,客戶端網站使用從基於用戶/密碼的服務獲取的令牌(客戶端令牌)直接調用API,而在另一種情況下,除了最終用戶使用客戶端網站登錄API服務器之外,API服務器上還發生了認證客戶網站除外。客戶端站點獲得另一個命名爲Auth Token(用於最終用戶調用)的令牌,然後通過發送兩個所提及的令牌調用最終用戶請求的API。通過使用客戶端和身份驗證令牌,API服務器會檢查客戶端和最終用戶是否分別登錄。實體及其關係如圖所示in here使用WSO2 API Manager進行身份驗證

我想將API管理器用作API服務器和客戶端站點之間的網關,並使用它管理身份驗證過程。 如何使用WSO2 API管理器來實現此場景? 感謝您的迴應!

+0

閱讀這篇文章有點難(一些格式和詳細說明會有幫助,因爲有些部分不是很清楚)。在客戶端網站以外的API服務器上發生認證是什麼意思? '通過使用客戶端和身份驗證令牌',只使用單個令牌,但所請求令牌(使用代碼或密碼OAuth概要文件)綁定到應用程序和用戶(均必須有效)。只有訂閱的應用程序才能夠使用API​​) – gusto2

+0

客戶端網站是放置在我們的API服務器和最終用戶之間的第三方應用程序,並且未自行執行身份驗證過程(檢查用戶和最終用戶的傳遞)。在用戶登錄到客戶端網站的一種情況下,它將用戶傳遞給API服務器。因此,API服務器會檢查U&P的有效性並創建一個Auth令牌,併爲用戶創建一個會話。在這段時間之後,在最終用戶發出每個請求之前,API服務器會檢查會話映射,確定客戶端網站和最終用戶是否已登錄。由兩個令牌執行的檢查過程。 – DavidbIR

+0

和另一個場景客戶端網站調用AP​​I直接沒有任何來自最終用戶的請求。在這種情況下auth令牌不存在! – DavidbIR

回答

0

擴展以前的答案..

如果後端是API管理背後(諫),該API maanger可以通過客戶端/用戶/應用程序信息作爲JWT令牌添加到後端。因此,我們確實,這是一個很好的用例使用API​​經理

編輯:基於評論在一個場景中

當用戶登錄到客戶端的網站,它通過用戶 &傳球API擴展答案服務器。因此,API服務器會檢查ü& P的有效性

事實上,使用默認的OAuth(代碼或密碼的個人資料)會工作。

並創建Auth令牌以及爲用戶創建會話。

差不多。一個令牌被返回,API Manager中沒有用戶會話。所有授權都基於提供的令牌。

會話,客戶端網站和最終用戶 是否已登錄。由兩個標記執行的檢查過程

沒有。 APIM不檢查任何會話。它只檢查OAuth(承載)令牌。

,並在另一個場景中的客戶端的網站調用AP​​I的情況下直接從最終user.in這種情況下的身份驗證令牌任何 要求是不存在的

網站(可以稱之爲應用程序)可以通過驗證它自己的憑據(所謂的client_credentials配置文件)。它可能會收到自己的OAuth應用程序令牌。

+0

謝謝,請參閱我對Bhathiya先生的回答,它顯示了我的要求! – DavidbIR

+0

@DavidbIR保持簡單的人。 APIM正在以某種方式工作,你正在假設一些事情可能不是真實的:)看到編輯 – gusto2

+0

這不是我的假設,它是一個真正的系統,現在正在工作,我必須遵循它,因爲阻力.. :) 。的確,我同意這種複雜性,所以我想用API Manager來簡化它! – DavidbIR

0

APIM支持相同的功能。您可以簡單地擺脫後端的身份驗證登錄(或替換爲簡單的身份驗證)並使用API​​M身份驗證。

APIM使用OAuth2。爲了滿足您的要求,您可以使用不同的授權類型。對於客戶端網站,您可以使用客戶端憑據授權類型,對於最終用戶,您可以使用其他授權類型,例如密碼或授權碼。

有關詳細信息閱讀:

https://docs.wso2.com/display/AM210/Quick+Start+Guide https://docs.wso2.com/display/AM210/Token+API

+0

感謝您的回覆。但我想使用API​​M生成並處理第二個令牌(Auth令牌),而不是將它傳遞給API服務器並對其進行處理。我可以這麼做嗎?或者更好地將驗證令牌傳遞給後端?另外我更新我的文章,請參閱它以獲取更多信息。謝謝! – DavidbIR

+0

@Bhathiya我對此表示讚賞,我編輯了錯誤的答案(而不是我的),請拒絕編輯 – gusto2