統一認證的實現方案及SAAS支持


一、建立統一認證中心,企業建立一個用戶中心庫

1、用戶角色分類

   1)租戶

   2)普通訪客

2、統一公司信息  

   注冊的用戶需要綁定着公司信息

二、統一認證平台提供統一的注冊和登錄接口

1、用戶注冊

    前提:所有應用要想利用統一認證,必須首先注冊一個租戶,租戶注冊接口分配給租戶一個公司,應用開發者需要記錄這個公司KEY,

  1)租戶注冊接口(無需認證)

       租戶注冊時,租戶注冊接口分配給租戶一個公司,應用開發者需要記錄這個公司KEY。

       適用場景:開發一個公司區隔的SAAS應用,需要多次調用這個接口創建多個公司租戶

  2)租戶創建普通用戶接口(需認證:租戶登錄獲取訪問jwt-token,認證攔截設置租戶公司id在請求頭中)

       適用場景:租戶作為某個應用管理員,創建自己應用的普通用戶,創建時候,普通用戶的公司取請求頭中公司ID

                     注意:本接口需要訪問token才可以訪問

  3)注冊普通用戶接口(無需認證)

      適用場景:從應用的前端非管理頁面,普通訪客用戶自由注冊,需要在請求頭中設置X-COMPANY-KEY,值是注冊租戶時返回,應用開發者需要交給前端開發者(前端直接調用)或后台控制器轉調統一認證API時,在后台代碼設置

  4)用戶登錄接口

     A、用戶名和密碼

      適用場景:    登錄后,返回訪問token,客戶端后續請求需要在請求頭中設置

     B、電話、認證碼登錄/注冊接口

      適用場景:    利用電話完成登錄,返回訪問token,客戶端后續請求需要在請求頭中設置

三、各應用SAAS的實現

  利用一、二完成准備,並登錄后,轉發給后續請求頭中會設置有唯一的用戶名、公司ID,等信息

  各應用可以利用公司ID,完成自己的SAAS

 

四、為了減少各個應用的開發量,和調用如上接口的復雜性

1、實現統一的租戶注冊頁面(開放平台)

2、各應用普通自由用戶的注冊頁面

3、租戶登錄頁面

4、個體登錄頁面

 

為了簡化,利用電話並同時設置密碼來實現注冊

 

第三方應用開發過程

1.建立應用--AKKKEY-appkey

2.建立租戶,返回公司KEY--companykey---到開放平台注冊,可以考慮給於建立APP的權力--appkey,添加創建者關系

3.第三方應用建立登錄/注冊鏈接,開放平台地址,open.gongsibao.com/login?appkey=xxxx&companykey=xxx&redirect-url=rdurl&state=xxxx

  平台實現了按照電話號碼和驗證碼進行注冊或登錄

  實現思路:

    注冊或登錄請求頭,會注入:appkey--companykey-redirect-url-state,

    服務端會根據請求頭里的redirect-url來判斷返回的數據格式,如果包含:返回{status:0,data:{redirecturl:rdurl?code=xxx&state=xxxxx}}

    登錄注冊頁面根據返回的數據中是否存在redirecturl,來執行,如果存在那么就執行location.href=rdurl?code=xxxxx,第三方應用中需要實現authByCode方法

    平台也要實現authByCode,按照code返回用戶相關的信息,包括訪問tocken

    第三方應用加載完成時,如果不存在token,需要按照code去調用平台的authByCode,如果獲取失敗,那么就重新調轉到第三方登錄鏈接

4、關於角色和授權

租戶在平台注冊並登錄后,租戶isadmin標示是否是租戶,租戶默認沒有平台應用系統管理功能。只有超級管理員sm才有系統管理的功能,

強調的是:

系統管理一定屬於某個應用的管理員

超級管理員是平台應用的管理員,所以只有超級管理員在平台應用中,對系統管理有操作權限。當前應用是平台應用大前提下,系統管理菜單對租戶不可見。

租戶是租戶創建的應用的管理員,系統管理菜單在

 

注意:創建租戶時,appkey,要利用平台的APPKEY

 

 

 

 

   

     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM