使用 GitLab 的 OAuth2 認證服務


原文地址

本文檔講述如何使用 GitLab 作為 OAuth 認證服務提供商,以通過 GitLab 的 OAuth 認證登錄其他服務(例如持續集成工具 Drone)。

如果想使用其他 OAuth 身份驗證服務提供商(例如 GitHub、Facebook 等)登錄 GitLab,請參閱 OAuth2 客戶端文檔

OAuth 簡介

OAuth 代表資源所有者向客戶端應用程序提供對服務器資源的“安全委派訪問”。實際上,OAuth 允許授權服務器在獲得資源所有者或最終用戶的批准后向第三方客戶端頒發訪問令牌。

OAuth 主要用作單一登錄服務(SSO),但也可以在此功能中找到許多不同的用途。例如,可以允許用戶使用他們的 GitLab.com 帳戶登錄你的應用程序,或者可以使用 GitLab.com 對你的 GitLab 實例進行身份驗證(請參閱 GitLab OmniAuth)。

GitLab Importer 功能還使用 OAuth 協議訪問存儲庫,無需將用戶憑據共享到您的 GitLab.com 帳戶。

GitLab 支持兩種向實例添加新的 OAuth2 應用程序的方式。你可以將應用程序添加為常規用戶,也可以將其添加到管理員區域。這意味着 GitLab 可以具有實例范圍和用戶范圍的應用程序。除了它們設置的不同權限級別(用戶/管理員)之外,它們之間沒有區別。默認回調網址是 http://your-gitlab.example.com/users/auth/gitlab/callback,例如 https://gitlab.kikakika.com/users/auth/gitlab/callback

通過“Settings”添加 application

點擊右上角的用戶頭像后,點擊 Settings 進入設置頁面,然后點擊 Applications 開始創建 application。



在創建 application 的表單中,輸入任意一個名稱,並確保正確設置重定向 URI(用戶在用 GitLab 授權后跳轉到的 URL)。

選擇合適的“Scopes”。

  • api:訪問經過身份驗證的用戶 API。以用戶身份完全訪問 GitLab,包括對其所有組和項目的讀/寫。
  • read_user:閱讀經過驗證的用戶的個人信息。以只讀方式訪問用戶的個人資料信息,如用戶名、公共電子郵件和全名。
  • sudo:以系統中的任何用戶身份執行 API 操作(如果經過身份驗證的用戶是 admin)。
  • read_repository:讀倉庫。
  • openid:使用 OpenID Connect 進行身份驗證。使用 GitLab 進行身份驗證的能力以及對用戶個人資料信息和組成員身份的只讀訪問權限。

點擊提交時,將獲得 application ID 和 application secret,然后可以將其與連接到 GitLab 的應用程序一起使用。

管理區域(admin area )中的 OAuth 應用程序

可以在管理區域創建不屬於特定用戶的應用程序。

還可以通過管理區域將應用​​程序標記為可信,這樣的應用程序會自動跳過用戶授權步驟。

你授權使用你的 GitLab 憑證的每個應用程序都將顯示在 Settings > Applications 下的“Authorized applications”部分。

Authorized_applications

GitLab 的 OAuth 應用程序支持范圍(scopes),用來設置應用程序可以執行的操作。目前支持的范圍有:apiread_usersudoread_repositoryopenid

可以隨時通過點擊 Revoke 來撤消任何訪問權限。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM