統一身份證自定義協議 2

2021-08-27 10:51:19 字數 1425 閱讀 2477

簡單的來講,統一身份認證應該分為兩塊,一是身份認證,一是統一認證(可以理解為sso),如果要整合多協議,比如saml、cas,是在統一認證進行整合,而不是身份認證。圖1

結構上,自定義協議還是包括sp、idp server和idp engine三部分。這時候我們需要建立乙個信任體系,我們認為idp server是可信的。

第一步,sp、idp server和idp engine都有自己的身份的,所以我們首先得認證自己和對方,但是我們的信任體系的建立是我們認為idp server是可信的。

第二步,sp和idp server需要向idp engine註冊生成自己的編號和金鑰。

如下圖所示:

圖2     協議互動流程如下:

1.保證了只有sp的請求才能讓engine為sp簽名,不會出現idp server權利過大的問題保證安全,解決了自定義協議1的存在的不足,安全性更進一步提高。

2.將身份認證和統一認證分開,更容易整合多協議的支援。

通過url傳遞資料。

3.2.1. authnrequest

內容由sp屬性集合、callbackurl、簽名組成

注:callbackurl不是必須,可以使用idp engine註冊的預設callbackurl

格式sp屬性集合

1、sp編號:sp

元素之間以「;」分隔,key與value之間用「:」分隔

比如:sp:12345;authnreqid:abc123;sign:signvalue

callbackurl:service

簽名:對請求屬性使用共享金鑰進行加密

請求格式組成 req=請求屬性格式&service=callbackurl

編碼base64,在網路以base64編碼傳輸

3.2.2. credentialsrequest

內容由請求屬性集合,簽名和callbackurl組成

格式l請求的屬性主要有:

1、身份(由使用者名稱和域組成,格式: 使用者名稱@域): principal

3、票據型別:type

4、隨機數標識:nonce

5、idp server**:agent

6、引用: reference

7、sp編號:sp

格式:time:x;type:x;principal:x;nonce:x;agent:x;reference:x;sp:x

元素之間以「;」分隔,key與value之間用「:」分隔

l簽名,對請求屬性用私有金鑰加密生成密文,格式:

sign=加密演算法:密文

私有金鑰由使用者名稱、域和密碼 md5而成,格式

域 + ":" + 使用者 + ":" + 密碼

lcallbackurl:service

請求格式組成 req=請求屬性格式&sign=簽名&service=***x

編碼base64,在網路以base64編碼傳輸

C 身份證識別(一) 身份證號定位

一 影象預處理 public static imagebyte binimg image byte img 二 身份證號區域提取 獲取輪廓 private static vectorofvectorofpoint getcontours imagebyte pic 篩選矩形 public stati...

oracle 自定義身份證15位轉18位 函式

oracle 函式15位身份證號轉18位身份證號,同時可以參考此 編寫身份證校驗函式 15位身份證轉18位 function get newcert oldcert in varchar2 return varchar2 isnew cert varchar2 20 old cert varchar...

Vue iView身份證 統一社會信用編碼校驗

身份證校驗 export default 長度校驗 if value.length 18 格式和日期校驗 let pattern d 1 8 9 2 9 0 9 d 0 1 9 1 0 2 0 1 9 1 2 0 9 3 0 1 d d x if pattern.test value 省份位址編碼校...