有了單一登入 (SSO) 服務,使用者就可以直接存取許多應用程式,不必分別為每個應用程式輸入使用者名稱和密碼。安全宣告標記語言 (SAML) 是一種 XML 標準,可讓安全的網域互相交換使用者的驗證與授權資料。
服務供應商和識別資訊提供者的角色
Google 提供 SAML 式單一登入 (SSO) 服務,可讓合作夥伴公司授權及驗證嘗試存取安全內容的代管使用者。Google 是以線上「服務供應商」的身分提供 Google 日曆和 Gmail 等服務;Google 合作夥伴則是以「識別資訊提供者」的身分管理使用者名稱、密碼等資訊。當使用者利用 Google 代管的網頁應用程式時,這些合作夥伴就會運用這些資訊協助識別、驗證及授權使用者。
您可以利用許多開放原始碼和商用識別資訊提供者,在 Google 服務中實作單一登入。
電腦用戶端仍需登入
請注意,SSO 解決方案僅適用於網頁應用程式。您可以讓使用者透過電腦用戶端存取 Google 服務。舉例來說,如要使用 Outlook 透過 POP 存取 Gmail,您需要向使用者提供適用密碼,並使用 Admin SDK 的 Directory API 將這些密碼同步到內部使用者資料庫。同步處理密碼時,建議您瞭解如何使用管理控制台登入網址驗證使用者。
瞭解合作夥伴提供的 SAML 式 SSO 服務
下圖 1 呈現使用者透過合作夥伴提供的 SAML 式 SSO 服務,登入 Google 應用程式 (例如 Gmail) 的完整流程。後面的編號清單則依序列出圖片中每個步驟的詳細說明。
注意:開始這項程序前,合作夥伴必須向 Google 提供 SSO 服務網址和公開金鑰,讓 Google 驗證 SAML 回應。
圖 1:顯示使用 SAML 式 SSO 服務登入 Google 的程序。
這張圖包含以下步驟。
- 使用者嘗試存取代管的 Google 應用程式,例如 Gmail、Google 日曆或其他 Google 服務。
- Google 產生 SAML 驗證要求,這個要求會在編碼後嵌入合作夥伴的 SSO 服務網址。這個 SSO 網址也包含 RelayState 參數,其中含有使用者嘗試存取的 Google 應用程式經過編碼的網址。RelayState 參數是一種不易解讀的 ID,傳回時不會經過任何修改或檢查。
- Google 向使用者的瀏覽器傳送重新導向網址。這個重新導向網址包含經過編碼的 SAML 驗證要求,後者也會提交至合作夥伴的 SSO 服務。
- 瀏覽器重新導向至 SSO 網址。
- 合作夥伴對 SAML 要求進行解碼,並擷取 Google 宣告客戶服務 (ACS) 網址和使用者的到達網頁網址 (RelayState 參數)。
- 合作夥伴驗證使用者。進行驗證時,合作夥伴可以要求使用者提供有效的登入憑證,或檢查有效的工作階段 Cookie。
- 合作夥伴產生 SAML 回應,內含已驗證使用者的使用者名稱。根據 SAML v2.0 規格,這個回應會加上數位簽章,包含合作夥伴的公開與私密 DSA/RSA 金鑰。
- 合作夥伴對 SAML 回應和 RelayState 參數進行編碼,然後將這些資訊傳回使用者的瀏覽器。合作夥伴會提供可讓瀏覽器將這些資訊轉送至 Google ACS 的機制。舉例來說,合作夥伴可將 SAML 回應和到達網頁網址嵌入表單,然後讓使用者只要點選按鈕,就能將這個表單提交給 Google;或是在網頁中加入能將這個表單提交給 Google 的 JavaScript。
- 瀏覽器將回應傳送至 ACS 網址。Google 的 ACS 使用合作夥伴的公開金鑰驗證 SAML 回應。如果回應通過驗證,ACS 會將使用者重新導向至到達網頁網址。
- 使用者已登入 Google 應用程式。