2016-05-31 57 views
0

我們需要使用開放標識和OAuth標準來保護我們的.net web api。 IdentityServer 3對我們來說非常完美,因爲我們必須使用我們現有的用戶存儲。IdentityServer 3使用用戶信息保護webAPI

編輯更加清晰: 我們公司爲多個客戶提供服務。我們的每個客戶都有自己的數據庫。在我們自己開發的客戶端應用程序中,當客戶用戶輸入他們的用戶/密碼時,我們會進行查找以進行身份​​驗證,並確定應用程序連接到的後端數據庫。

我們現在需要允許幾個值得信賴的合作伙伴訪問我們的數據庫資源以滿足特定需求。我們已經創建了一個Web API,供他們進行特定的調用。 Web API需要知道合作伙伴正在呼叫什麼客戶。合作伙伴正在從服務側調用api,因此沒有用戶交互。

我正在嘗試確定要用來完成此操作的流程。我在https://gist.github.com/jawadatgithub/638c11f08ecc0d76b05c發現了一些相當不錯的流量信息。

如果我使用客戶端憑證流定義客戶端,我不知道他們如何通過他們代表客戶進行呼叫的客戶。我認爲我們不想爲每個合作伙伴/客戶組合定義一個「客戶」,但這是否正確?

我們最初想到的是給出一個額外的用戶/密碼或祕密密鑰來告訴我們客戶,但我不確定客戶端的「流量」會允許這麼做。

任何幫助或方向將不勝感激。

回答

0

如果這有助於其他人,我們決定使用混合流來處理這些類型的請求。我們考慮爲我們的每個客戶數據庫指定一個服務帳戶(用戶/密碼),通過請求具有資源所有者密碼憑證流的令牌,但可以決定採用這種方式,從而讓這個可信的第三方訪問它們。我們決定反對它的所有原因標準說不使用它的用途。

如果第三方想代表我們的客戶與我們互動,那麼他們將需要在他們身邊建立UI以重定向到我們以進行用戶/ pw認證和同意。