我試圖從一個相當標準的用戶管理的現有應用程序設計微服務:有認證和授權,並存儲用戶數據。授權和用戶微服務設計
我的深化發展授權服務器來管理用戶使用OAuth2
作爲授權認證和授權。另一方面,我必須存儲用戶的信息/配置文件。
問:應該授權服務器管理:
- 授權和用戶API?因此,其他微服務可以聯繫授權服務器在
/me
獲得當前用戶,但也/users
獲得用戶的完整列表。 - 或者只有授權和我必須創建用戶微服務?因此授權服務器只公開
/me
與用戶相關的API和用戶微服務將公開/users
?
第一個解決方案是簡單一點但授權服務器會變少通用的(可重複使用的少),因爲用戶應用數據模式將它(User
表的數據庫中的數據模型)的一部分。
另一項要求是授權服務器如果用戶授權它之前就存在應檢查。
沒有用戶自動創建,必須由管理員邀請用戶訪問。 關於該要求,第一個解決方法很簡單,因爲授權服務器訪問用戶數據庫,但第二個解決方案授權服務器意味着:
- 共享數據庫用戶服務(哼哼不喜歡這樣)
- 呼叫用戶服務使用授權REST API(例如)前
- 授權服務器應mainta在最小
User
表(可以改名Account
)和管理員將無法創建用戶在用戶服務但授權服務器
我覺得解決方案是出在只有用戶帳戶,但有關任何建議2。和3.?
3.在首位似乎是最好的,但如果我想切換到另一個授權服務器,例如一公共(OAuth2用戶)如谷歌,Github上,臉譜等..安能妥協,因爲我們無法控制用戶帳戶的創建。
有沒有反饋意見?
您如何管理身份驗證? –
外部服務(基於CAS)負責認證。但我不是這項服務的擁有者。但是,您可以簡單地通過使用基於數據庫用戶信息的基本表單身份驗證 – Kakawait