本文將為您詳細解析如何通過 GitHub OAuth 2.0 協議,為 INFINI Console 實現高效、安全的單點登錄(Single Sign-On, SSO)集成。通過此方案,用戶可直接使用 GitHub 賬戶無縫登錄 INFINI Console,簡化身份驗證流程,提升系統安全性與用戶體驗。
一、GitHub OAuth 應用配置
1. 創建 OAuth 應用程序
-
登錄 GitHub,導航至 Settings -> Developer settings -> OAuth Apps。
-
點擊 New OAuth App,創建新的 OAuth 應用程序。
2. 配置應用信息
-
填寫應用的基本信息,包括:
- Application Name:應用名稱(如 “INFINI Console SSO”)
- Homepage URL:應用主頁 URL
- Authorization callback URL:回調 URL(格式:
http://localhost:9000/oauth/callback
)
3. 獲取客戶端憑證
-
創建應用后,系統將生成 Client ID 和 Client Secret。
-
這些憑證將用于 INFINI Console 的 OAuth 配置。
4. 查看已注冊的 OAuth 應用
-
創建完成后,您可以在 OAuth 應用列表中查看應用的詳細信息。
二、INFINI Console 的 OAuth 集成配置
1. 修改配置文件
-
編輯 INFINI Console 的配置文件,添加以下 OAuth 配置:
security:enabled: trueoauth:enabled: trueclient_id: "xxxx" # 替換為您的 Client IDclient_secret: "xxxx" # 替換為您的 Client Secretdefault_roles: ["ReadonlyUI", "AllClusters"] # 默認角色role_mapping:medcl: ["Administrator"] # 特定用戶的角色映射authorize_url: "https://github.com/login/oauth/authorize"token_url: "https://github.com/login/oauth/access_token"redirect_url: ""scopes: []
2. 配置角色權限
-
AllClusters 角色:用于管理集群的全局權限。
-
ReadonlyUI 角色:為只讀用戶分配受限權限。
三、單點登錄流程演示
1. 訪問 INFINI Console
-
打開瀏覽器,訪問
http://localhost:9000
。 -
點擊 單點登錄 按鈕,進入登錄流程。
2. 使用 GitHub 登錄
-
點擊 GitHub 圖標,跳轉至 GitHub 登錄頁面。
3. 授權應用訪問
-
在 GitHub 授權頁面,確認授權 INFINI Console 訪問您的 GitHub 賬戶。
4. 登錄成功
-
授權成功后,系統將自動跳轉回 INFINI Console,并顯示您的 GitHub 用戶名。
四、總結
通過以上步驟,您已成功將 INFINI Console 與 GitHub 的單點登錄功能集成。此方案不僅簡化了用戶的登錄流程,還通過 GitHub 的 OAuth 2.0 協議確保了身份驗證的安全性。未來,希望INFINI Console進一步擴展角色權限管理,或集成其他身份提供者(如 Google、Microsoft 等),打造更加靈活的身份驗證體系。