2016-01-20 128 views
2

我正在編寫一個Html/Angular應用程序,並使用隱式流與IdentityServer3進行身份驗證。我有這樣的設置和工作,但我關心的是允許用戶註冊。IdentityServer3用戶註冊

我知道我可以注入一個註冊鏈接進入登錄流程,但是這不是我感興趣的,我想用戶註冊,然後發送一封確認郵件等

這裏是我的當前的設置:

1)xyz.com(角前端)

2)api.xyz.com(的WebAPI後端)

3)accounts.xyz.com(identityserver)

我知道我可以通過調用一個API端點來完成用戶註冊,但我擔心它可能不安全。在這個流程中,我不會有令牌,也不能獲得XSRF令牌,因爲我沒有使用ASP.NET MVC。我可以在我的註冊終端上設置CORS,只接受來自xyz.com的請求,但我認爲這可以很容易地解決。

所以我的問題歸結爲:

我應該用MVC更換前端我的角度應用,並使用防僞令牌用於任何公開形式(即用戶登錄之前)?

是否有另一種方法/例子,我可以在IdentityServer上執行此操作並擁有乾淨的UI流?

這是否應該在IdentityServer之外完成並且僅用於IdentityServer登錄?

+0

你最終爲此做了什麼? –

+1

我最終保留了登錄身份服務器並允許通過主網站註冊。儘管在進行表單提交時添加了防僞標記,但我必須將我的前端應用程序從純JS應用程序更改爲ASP.NET MVC應用程序。我有一個可以生成防僞標記的主佈局,但其餘的html部分是靜態HTML文件而不是剃刀視圖。 – fbhdev

回答

0

解決此問題的一種方法是擁有一個API,全權負責註冊用戶帳戶。驗證調用API的客戶端具有將用戶註冊到系統中所需的權限是非常重要的。當然,前端應用程序仍然需要一個用於註冊的UI,但實際的實現將在註冊API中。因此,前端應用程序不必處理髮送帳戶驗證電子郵件,用戶名/電子郵件唯一性等的開銷。

此API將是內部的,所以仍然需要具有服務器端應用程序在負責調用這個API的前端。請記住,證書只能在服務器端,而不能在任何前端代碼中。