擴展驗證功能開通
擴展驗證功能需單獨開通,若你的客戶端賬號如下圖顯示,則是已開通狀態。因為此部分功能涉及到成本,對各事業群單位暫不開放。
擴展驗證功能使用說明
此功能并不記錄或收集用戶的郵箱地址或手機號,而是在需要二次驗證時,由第三系統傳入郵箱和手機號碼。傳值格式為:
ext_data = Base64Data.SHA1(Base64Data+redirect_uri值+login_hint值+簽名KEY)
// 在授權端站中加上參數 ext_data
// 其值由一個 Base64Url 字符串和一個 SHA1簽名 字符串組成,中間用 . 隔開。
string Base64Data = Base64Url("{'email':'demo@test.com','phone':'+8613800138000'}");
// 此值為:eydlbWFpbCc6J2RlbW9AdGVzdC5jb20nLCdwaG9uZSc6Jys4NjEzODAwMTM4MDAwJ30
// 假設其它參數如下:
string redirect_uri = "https://bu01.foxconn.com/SigninByCivet/MyVendor";
string login_hint = "clientId01:13800138000";
string signatureKey = "f5489f301ddd4572a4d368160999d40d";
// 計算簽名
string signature = SHA1(Base64Data+redirect_uri+login_hint+signatureKey);
// 此值為:B020B12EAF0198F7EF1927F69B3939AB23DDAEEC
OIDC返回值說明
在返回的access_token及userinfo中的數據中,sub都指定的賬號,如上述例子中為clientId01:13800138000。
使用郵件驗證時,返回數據中不會有totpid值,只有email值。同理短信驗證只會有phone_number值。
【相關說明】授權端點的login_type參數說明