EIP SSO服務說明

以下部分說明合作夥伴如何串接 EIP 提供的 SSO 服務,取得目前使用者資料登入至應用程式。

一. 透過 EIP SSO 服務轉頁並拋轉 EIP 登入者資訊至目標系統

下圖 1 是使用者透過 EIP SSO 服務登入合作夥伴應用程式的完整流程。後面的編號清單則依序列出圖片中每個步驟的詳細說明。

注意:進行這項程序前,合作夥伴必須向 EIP 提供下圖步驟 3、5 的服務網址,並於 Server 安裝新光醫院根憑證以回應 EIP 的 SSO 服務。

圖 1:

  1. 觸發 EIP SSO 服務連結(若觸發當下使用者未登入 EIP,則跳轉至EIP登入頁面,於使用者登入成功後才觸發後續動作)。

    使用 EIP SSO 服務連結(新光醫內部測試環境)範例如下: http://10.1.225.101/SKH_SSO.ASPX?uri=http%3A%2F%2F10.1.225.101%2FBPM%2FFM7_SetAuthorityTEST.aspx&redirect=http%3A%2F%2F10.1.225.101%2FBPM%2FSKH_SSO.aspx uri 參數值為驗證憑證並記錄 token 頁面(參圖1 步驟3)、redirect參數值為要跳轉的目標頁面 (參圖1 步驟5)

  2. EIP 產生 token,透過 POST 的方式包含 EIP 憑證將其發送至合作夥伴的驗證服務網址。

  3. 合作夥伴如驗證憑證無誤,需自行紀錄 token 並設定一過期時間(ex:2分鐘)。

    取得步驟 2 EIP 發送之 token 範例如下:

    string token;
    using (Stream receiveStream = Request.InputStream)
    {
      using (StreamReader readStream = new StreamReader(receiveStream, Request.ContentEncoding))
      {
           token= readStream.ReadToEnd();
      }
    }        
    Response.Write(token);
    //5fc84f46-5743-4ed3-a94d-1ba63b8022a5
    
  4. 重新導向網址至合作夥伴 SSO 目標頁面,並提交 token 與使用者資訊(JSON String)。

  5. 驗證步驟 3 紀錄的 token 是否生效,生效則取用使用者資訊登入系統。

    取得步驟 3 EIP 發送之 token 、使用者資訊範例如下:

    string token = Request["token"].ToString();
    string AccountInfo = Request["AccountInfo"].ToString();
    Response.Write(token);
    //5fc84f46-5743-4ed3-a94d-1ba63b8022a5
    Response.Write(AccountInfo);
    /*
    {
     "AccountID":"00123",
     "AccountName":"Jack",
     "Dept":[
         {
         "DeptID":"001",
         "DeptName":"藥劑部",
         "IsMainJob":1
         }
     ]
    }
    */
    
  6. 使用者已重新導向至夥伴系統實際連結網址。

二. 透過 token 取得 EIP 登入者資訊

  1. 於 EIP SSO 成功轉向至夥伴系統後,夥伴系統可取得 EIP SSO 服務所傳遞的 token,以該 token 呼叫服務即可取得登入者資訊。

    透過 token 取得 EIP 登入者資訊(新光醫內部測試環境)範例如下: http://10.1.225.101/SKH_SSO_AUTH.ASPX?token=93feb23e-1e33-4e97-93ce-b75c3e4597b2 token參數值為EIP SSO服務成功導向後傳遞的 token 回應格式為 json,範例資料如下:

    /*
    {
     "AccountID":"00123",
     "AccountName":"Jack",
     "Dept":[
      {
       "DeptID":"001",
       "DeptName":"藥劑部",
       "IsMainJob":1
      }
     ]
    }
    */
    
  2. 若呼叫服務取得資料為空,表示該帳號未登入 EIP,請執行章節一描述之 EIP SSO 服務重新取得 token。

results matching ""

    No results matching ""