3

我對身份管理領域非常陌生,所以請放心。 :)使用Web API服務作爲中心身份驗證點

我想要做的是讓多個客戶端(MVC)應用程序與單個Web API應用程序進行通信,以對其用戶進行身份驗證。在那個Web API應用程序中,我想使用ASP.NET Identity與用戶交談數據庫。

這樣,我可以使用SSO的客戶端應用程序(我猜)。

這有道理嗎?有人可以幫助我實現這一點(當然也歡迎鏈接)? 我不知道IdentityServer可以幫我用我想要的嗎?

作爲一個側面的問題:當我能以我想要的方式實現這個時,我該如何處理同源策略?

回答

3

謝謝所有幫助。 :)

我在過去幾個月裏自己做了一些研究,並且學到了很多關於身份管理的知識。其中很多還要感謝IdentityServer(及其他項目)的人員。

我終於做了以下的(很簡單):

  • IdentityServer被用作所有客戶端應用程序的供應商。使用cookie和OIDC中間件。
  • 我使用ASP.NET Identity user service將用戶存儲在SQL Server數據庫中。 (IdentityServer配置的方式也存儲在數據庫中。)
  • 我設置了一個使用ASP.NET Identity用戶管理器進行用戶配置(更改密碼,創建新用戶...)的Web API服務。它使用IdentityServer作爲提供者的應用程序使用承載認證。
  • 作爲便箋,IdentityManager被用作管理所有用戶的內部管理工具。

如果有人正在尋找一些幫助建立他/她的身份管理系統(並認爲我可以幫助):請詢問。 ;)

+0

感謝您的信息。這是怎麼回事?你如何用這種方法來管理角色和權限? – GutierrezDev 2017-05-09 01:46:21

+1

@GutierrezDev儘管如此,我仍然很喜歡IdentityServer **,就像通常的安全事情一樣,它非常複雜。可以通過他們的[IdentityManager](https://github.com/IdentityManager/IdentityManager)應用程序管理角色和權限(聲明)(注意,這不是最新的(.NET Core)版本!)和應用程序本身與他們的(新)[IdentityAdmin](https://github.com/IdentityServer/IdentityServer3.Admin)。希望能幫助到你! – DeveTho 2017-05-11 20:25:04

+0

不錯@DeveTho。我也在觀看IdenityServer4。感謝IdentityAdmin提及。 – GutierrezDev 2017-05-12 04:05:03

1

有關活動配置文件的許多文章例如Federated Security: How to setup and call a WCF service secured by ADFS 2.0。但那篇文章假設你想使用AD?

我猜你想使用ASP.NET標識進行配置?

IdentityServer OOTB支持SQL DB,並且內置了基本的用戶配置。它允許用戶根據數據庫進行身份驗證並支持WIF。

+0

再次感謝。 :)對不起,當我不清楚。我對這個世界很新,但我已經研究了幾天,現在我注意到它有多複雜(我想這應該是這樣)。:)我只想使用多個客戶端(MVC)應用程序(使用他們自己的登錄,註冊,用戶管理頁面),以便他們的身份驗證(和授權)與單個(Web API)服務交談它的邏輯。然後該服務應該與數據存儲進行通信,無論它是Active Directory還是SQL DB。 SSO會很好,但不是必需的。 – DeveTho 2015-04-01 20:20:01

+0

我不確定你完全理解我想要做什麼,並且我明白你的意思。 :p我不認爲我想要使用兩個存儲庫? MVC應用程序不應與用戶存儲直接聯繫。但是,他們應該能夠訪問可以訪問它幷包含一些邏輯的Web API服務。我只想從客戶端應用程序向服務發送憑證,然後服務應該返回一個令牌或一些可用於訪問客戶端應用程序的安全頁面和安全服務方法的令牌。但是這不可能,你說? – DeveTho 2015-04-02 08:07:51

+0

對不起,我遲到的答案。目前,我正忙於實施IdentityServer以進行身份​​驗證和授權(以及使用自定義服務的用戶管理)。 IdentityServer將使用ASP.NET身份與用戶存儲(數據庫)交談。所以這與我在原來的問題中所說的完全不同,但我認爲這是有道理的,不是嗎?一旦我進一步實現了這一點,我會發布更廣泛的答案。 – DeveTho 2015-04-18 12:53:28