OpenID Connect 基本參數說明
這份文件旨在說明設定 OpenID Connect 時,IDExpert Cloud (IDP) 端所需的各項參數及其意義。正確的設定是確保 IDExpert Cloud 與 Service Provider (SP) 之間能夠成功建立信任關係並安全通訊的關鍵。
建立流程
- 在左側導航列中找到「應用程式」並點擊前往頁面,並點選右側的「建立應用程式」按鈕。
- 選擇應用程式類型:選擇 OpenID Connect。
- 選擇範本或自定義:於右側選擇「自定義」。
- 依照流程設定應用程式名稱、認證通知
- 依照Service Provider指示設定所要求的 OpenID Connect參數
- 按下「建立」並 查看建立結果
- 前往設定政策。
基本參數說明
1. 轉址設定(Redirect URI)
- 說明:轉址設定是驗證完成後,系統將使用者重新導向的目標位置。
- 設定指南:此 URL 通常由 SP 提供,您需要將其準確填寫到 IDExpert Cloud 對應的 轉址設定/Redirect URI 欄位中。URL 必須包含完整的協定(https://)和路徑,且建議使用 HTTPS 確保安全性。
若轉址設定/Redirect URI 填錯,將導致驗證流程無法完成,使用者在驗證後無法正確返回應用程式,例如發生「無效的重定向 URI」錯誤或使用者被導向錯誤頁面等問題。
2. 有效時間(分鐘)
- 說明:有效時間是控制各種Token的有效期限。
- 設定指南:過短可能導致頻繁重新驗證,影響使用者體驗;過長則可能增加安全風險,高敏感度應用建議使用較短時間。
3. JWT 模式:
- 說明:JWT 模式是定義 ID Token 的格式和加密方式
- 設定指南:選擇時,需考慮 SP 的支援度
4. Client ID
- 說明:Client ID 是應用程式在 IDExpert Cloud 平台中的唯一識別碼,用於識別發起驗證請求的應用程式
- 設定指南:IDExpert Cloud 會在建立 OpenID Connect 應用程式時自動產生此識別碼,請確保在 SP 端填入的 Client ID 與 IDExpert Cloud 中顯示的完全一致
若不一致將導致發生「invalid_client」錯誤 或「Client authentication failed」錯誤,或驗證請求被拒絕等問題,使整個認證流程無法進行。
5. Client Secret
- 說明:Client Secret 是應用程式與 IDExpert Cloud 平台之間的共享密鑰,用於確保通訊安全。只有擁有正確 Client Secret 的應用程式才能成功完成權杖交換。
- 設定指南:在 IDExpert Cloud 建立應用程式後,系統會產生對應的 Client Secret,請確保在 SP 端填入的 Client Secret 與 IDExpert Cloud 中顯示的完全一致。
若不一致將導致發生「invalid_client」錯誤、「Client authentication failed」錯誤,或權杖交換失敗等問題,嚴重影響應用程式的正常運作。
6. HMAC 私鑰
- 說明:HMAC 私鑰 用於產生和驗證訊息驗證碼(Message Authentication Code),確保資料在傳輸過程中的完整性和真實性,防止資料被篡改或偽造。
- 設定指南:IDExpert Cloud 會為每個應用程式產生獨特的 HMAC 私鑰。請確保在 SP 端填入的 HMAC 私鑰 與 IDExpert Cloud 中顯示的完全一致。
若不一致將導致發生 JWT 權杖驗證失敗、「invalid_signature」錯誤,或訊息完整性檢查失敗等問題,可能造成安全漏洞或服務中斷。
7. End Point
- 說明:End Point 定義了 OpenID Connect 服務的各種 URL 端點,供 SP 進行不同階段的操作,包括驗證、權杖交換、使用者資訊取得等。
- 設定指南:IDExpert Cloud 提供以下標準端點,需要將這些 URL 填入 SP 的對應設定中。
若端點 URL 不一致將導致發生連線失敗、「endpoint not found」錯誤、網路超時,或無法取得權杖等問題,使整個 OpenID Connect 整合功能無法正常運作。
常見問題
** 1. 登入成功並重導向回系統時,畫面卡死或Console顯示CORS Error,該如何處理? ** 當您執行 OIDC 流程的 「Token Request」時,若該 HTTP 請求由用戶端瀏覽器(前端 JavaScript)直接發起,將觸發 IDExpert Cloud 的跨來源資源共享(CORS)安全防禦機制。請將此請求邏輯移至 Server-side(伺服器端) 執行,以實施標準的 Server-to-Server(後端對後端) 串接架構。