0

我試圖將IdentityServer3實現到我的架構組合中。我喜歡註冊客戶端,用戶和範圍的想法。我不喜歡使用IdentityServer3的內置登錄和註冊表單。如何關閉IdentityServer3的內置UI視圖(登錄和註冊)?

我有4個不同的應用程序需要使用我的IdentityServer3實現(又名TokenServer)。這4個應用程序是AngularJs應用程序。我有各種C#.Net WebAPI服務爲這4個應用程序提供數據。目前,這4款應用都有自己的認證和註冊流程。我需要使用IdentityServer3來整合身份驗證。

這4個應用程序中的每一個都有不同的帳戶註冊/驗證需求。有第三方身份驗證(Facebook,Google)以及用戶註冊帳戶的傳統表單身份驗證。

因此,我不能讓我的任何AngularJs應用程序使用IdentityServer3附帶的默認登錄/註冊表單。我花了很多時間試圖找到一種方法來關閉默認視圖,並將每個AngularJs應用程序連接到我的TokenServer。我只是想將登錄憑證POST到/ token端點並返回一個令牌,可以在隨後調用WebAPI時使用該令牌。我想用IdentityServer3替換每個應用程序的身份驗證過程,而無需更改現有的登錄/註冊UI。

我找不到示例應用程序,甚至不能顯示如何執行此操作的文檔。是否有可能關閉每一個IdentityServer3的UI視圖並使用我的AngularJs客戶端的登錄和註冊表單?

請指點我正確的方向。謝謝你的時間。

回答

1

您似乎想要使用OAuth 2.0資源所有者流 - 這意味着 - 您的應用程序將憑據發佈到令牌端點並獲取訪問令牌。這是完全可能的 - 你會錯過一些功能,如聯邦和SSO。但是這些是這個流程的已知限制。

如果您想要使用基於重定向的流程(爲您提供SSO和Google登錄等) - 您需要重定向。您可以用自己的身份替換任何IdentityServer視圖。文件和樣品有大量的信息如何做到這一點。

https://identityserver.github.io/Documentation/docsv2/advanced/customizingViews.html

https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/CustomViewService

+0

感謝您的答覆。我一定會研究這些資源。你知道自定義視圖是通過彈出框還是iframe提供的嗎?我希望我可以在不使用iframe或彈出窗口的情況下簡單地將它們加載到我的HTML流程中。 –

+0

我正在查看您的CustomeViewService。看起來這些視圖是在服務器上生成的。我的範例是服務器的東西應該是REST。登錄,註銷,註冊都是UI活動,並且應該在您的前端代碼中處理(在我的情況下爲AngularJs)。在我看來,有一個後端服務器服務UI內容會讓水混濁。無論如何要實現SSO,Google和Facebook登錄等,而不依賴IdentityServer來提供UI位? –

+0

編號同樣適用於Google及其用戶。 – leastprivilege