閱讀669 返回首頁    go Udesk智能客服係統


單點登錄設置

單點登錄場景:

單點登錄(Single sign-on,SSO)是一種訪問控製,在多個軟件應用中,用戶隻需登錄其中一個應用,就可以成功訪問其他應用;同樣,用戶隻需注銷其中一個應用,就可以成功注銷其他應用。

譬如,某企業建設了OA係統和客服係統,同時做了單點登錄控製。某員工登錄了OA係統的時,其實也同時登錄了客服係統,這樣可以減少用戶多次登錄的麻煩。

 

單點登錄接入步驟:

1、登錄Udesk後台

用管理員身份登錄Udesk後台,進入”管理中心-管理中心-單點登錄“,在”遠程登錄URL“、”遠程退出URL“中分別填寫企業自己的登錄和退出URL。

這個地址的作用是當用戶通過Udesk域名進行登錄時,頁麵會自動跳轉至企業做了單點登錄控製的遠程登錄URL上,即在此處配置的“遠程登錄URL”鏈接。

當用戶在此登錄頁中輸入用戶名和密碼後,登錄後台根據sso協議調用Udesk的jwt響應地址,當Udesk服務器認證通過後,根據提交的參數判斷:

  • 如果在客服管理中找到客服賬號,即可登錄Udesk客服係統 ,
  • 如果找到客戶賬號,即以客戶的身份登錄Udesk,
  • 如果沒有找到客戶賬號,則創建新的客戶並以客戶身份登錄。

當用戶退出Udesk時,會同時退出其它應用,同時界麵跳轉至係統配置的“遠程退出URL”頁麵上。

2、開發者代碼添加

配置好遠程登錄和登出的URL後,需要開發者按SSO協議添加代碼 :

• jwt請求地址:即遠程登陸URL,第三方站點的登陸頁麵。該選項由管理中心 -> 單點登陸
設置
• jwt響應地址及參數
1、地址: https://{yourdomain}.udesk.cn/users/auth/jwt/callback
2、請求方法:get
3、請求參數
參數名:jwt
參數類型:string
參數值:由jwt協議編碼
• jwt協議編碼值所需的相關信息。使用的對稱加密協議為HS256,被加密的json數據如下:
{
name: "nickname", //用戶名稱
email: "xxx@qq.com", //用戶郵箱
iat: 1451890858 //登錄時間,時間為"格林整數"
}

 

對稱加密的demo

Ruby Demo:

    secret = sso_setting.shared_secret
    claims = {}
    claims[:name]  = "Dude"
    claims[:email] = customer_email
    claims[:iat]   = Time.now.to_i
    payload = JWT.encode(claims, secret)
    url     = "https://#{host_name}/users/auth/jwt/callback?jwt=#{payload}"

 

PHP的jwt lib在這裏https://github.com/firebase/php-jwt,使用方式類似:

php-jwt/src/JWT.php

public static function encode($payload, $key, $alg = 'HS256', $keyId = null, $head = null)
{
$header = array('typ' => 'JWT', 'alg' => $alg);
if ($keyId !== null) {
$header['kid'] = $keyId;
}
if ( isset($head) && is_array($head) ) {
$header = array_merge($head, $header);
}
$segments = array();
$segments[] = JWT::urlsafeB64Encode(JWT::jsonEncode($header));
$segments[] = JWT::urlsafeB64Encode(JWT::jsonEncode($payload));
$signing_input = implode('.', $segments);
$signature = JWT::sign($signing_input, $key, $alg);
$segments[] = JWT::urlsafeB64Encode($signature);
return implode('.', $segments);
}

php自行實現這個encode函數即可。

 

最後更新:2017-01-17 10:01:40

  上一篇:go 移動端有幫助中心嗎?
  下一篇:go 如何使用工單過濾器來分類管理工單