具有多個應用程序的 ASP.NET 標識
所以我們的組織正在使用 asp.net mvc 和 web api 開發一些新的 web 應用程序。我們決定不使用活動目錄進行身份驗證/授權,因此看起來帶有實體框架的 asp.net 身份可能會起作用。
查看數據庫架構,我沒有看到應用程序表,因此我們可以擁有一個用於使用者憑據和應用程序訪問的中央儲存庫。這是索賠的來源嗎?那看起來怎麼樣?使用者 -> 應用程序 -> 角色 -> 權限
此外,我們的目標之一是還為使用者提供單點登錄。新的不記名令牌可以做到這一點嗎?
感謝您的任何幫助,您可以提供
看看這個教程。它展示瞭如何使用 Web API 實現 ASP.NET Identity:
http://bitoftech.net/2015/01/21/asp-net-identity-2-with-asp-net-web-api-2-accounts-management/
至於處理多個應用程序。想到的兩種方法是:
- 將一個附加
AppId到所有使用者名- 向表中添加一
AppId列,從基於的方法AspNetUsers派生UserStore並重新實現,Find以便查詢考慮到AppId對於#1,當應用程序想要創建一個新使用者時,它會向 WebApi 發送一個請求,其中包含新使用者資訊和一個
AppId. 然後,WebApi 將連接UserName和AppId以創建將寫入數據庫的完整使用者名。因此,如果應用程序1234想要使用 username 創建一個使用者myuser,那麼 WebApi 將使用 username 創建一個新使用者myuser_1234。從那時起,在查詢數據庫時,您將首先從請求中獲取UserNameandAppId,將它們連接起來,然後查詢數據庫。如果另一個應用程序
9900想要創建一個myuser,那麼寫入數據庫的最終使用者名將是myuser_9900。您可能希望將應用程序詳細資訊儲存在數據庫中,並對每個請求進行驗證,
AppId以確保您在處理其請求之前辨識該應用程序。我沒有考慮太多步驟#2,所以它只是一個建議。
如果您想在多個應用程序之間共享使用者憑據,那麼您可能會忽略上述內容,使用標準功能並讓所有應用程序指向同一個數據庫,因此允許所有應用程序訪問所有使用者,而不管哪個應用程序創建了哪個使用者。
更新#1:在這種情況下,可以使用不記名令牌,我認為(從記憶中)上面提到的教程系列涉及這一點以及單個 WebApi 如何為多個應用程序提供令牌。