原文地址

本文档讲述如何使用 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 来撤消任何访问权限。

使用 GitLab 的 OAuth2 认证服务的更多相关文章

  1. 远程办公的GitLab开源的员工手册:涵盖了公司价值观,内部沟通交流指南,开发流程,如何开会,写作风格指南,如何报销,如何请假,线上办公工具推荐等方方面面

    原文 :https://docs.gitlab.com.cn/ce/ 英文 :https://about.gitlab.com/handbook/ GitLab Community Edition G ...

  2. Secure REST API with oauth2 (翻译)

    http://blog.csdn.net/haiyan_qi/article/details/52384734 ******************************************** ...

  3. Oauth2 初步

    搭建一个最简单的 Oauth2 认证服务 基于 Springboot2,在 pom.xml 中引入 Oauth2: 123456789101112 <dependency> <gro ...

  4. spring oauth2获取当前登录用户信息。

    使用spring oauth2框架做授权鉴定.想获取当前用户信息怎么办? 我们知道spring oauth2是基于spring security的实现的. spring security可以通过Sec ...

  5. Spring Security OAuth2 完全解析 (流程/原理/实战定制) —— Client / ResourceServer 篇

    一.前言 本文假设读者对 Spring Security 本身原理有一定程度的了解,假设对 OAuth2 规范流程.Jwt 有基础了解,以此来对 SpringSecurity 整合 OAuth2 有个 ...

  6. 翻译:WebApi 认证--用户认证Oauth解析

        The Web API v2用户认证模板提供了流行的应用用户认证场景,如.使用本地帐号的用户名密码认账 (包括创建用户.设置和修改密码)以及使用第三方的认证方式,如facebook,googl ...

  7. 基于 Spring Cloud 完整的微服务架构实战

    本项目是一个基于 Spring Boot.Spring Cloud.Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目. @作者:Sheldon地址:ht ...

  8. OAuth2建立webapi认证服务供自己的客户端使用--密码模式

    场景:你自己实现了一套webApi,想供自己的客户端调用,又想做认证. 第一步:通过vs2015建立web api项目,Startup.cs,这个类将会作为Owin的启动类. 第二步:在webapi. ...

  9. OAuth2.0认证流程是如何实现的?

    导读 大家也许都有过这样的体验,我们登录一些不是特别常用的软件或网站的时候可以使用QQ.微信或者微博等账号进行授权登陆.例如我们登陆豆瓣网的时候,如果不想单独注册豆瓣网账号的话,就可以选择用微博或者微 ...

随机推荐

  1. UVA-10462.Is There A Second Way Left(Kruskal+次小生成树)

    题目链接 本题大意:这道题用Kruskal较为容易 参考代码: #include <cstdio> #include <cstring> #include <vector ...

  2. F. Fixing Banners

    http://codeforces.com/gym/102394/problem/F F. Fixing Banners time limit per test 1 second memory lim ...

  3. MFC框架各部分指针获取方式

    MFC框架各部分指针获取方式 前人在CSDN总结的,曾经帮助过我,整理总结一下,希望也能帮助一下别人. 获得CWinApp 获得CMainFrame 获得CChildFrame 获得CDocument ...

  4. js实现-小框框全选

    点击全选下面单独的肉也会全选,再次点击取消 一个一个点击肉,点完--全选也会被选上 HTML代码---CSS略 <table> <tr> <th> <inpu ...

  5. ElasticSearch 入门介绍

    tags: 第三方 lucene [toc] 1. what Elastic Search(ES)是什么 全文检索和lucene 全文检索 优点:高效,准确,分词全文检索允许用户输入一些关键字,从数据 ...

  6. 并发工具CountDownLatch源码分析

    CountDownLatch的作用类似于Thread.join()方法,但比join()更加灵活.它可以等待多个线程(取决于实例化时声明的数量)都达到预期状态或者完成工作以后,通知其他正在等待的线程继 ...

  7. 64bit assembly

    16个通用寄存器: %rax %rbx %rcx %rdx %rsi %rdi %rbp %rsp %r8 %r9 %r10 %r11 %r12 %r13 %r14 %r15

  8. Angular 一个简单的指令实现 阻止事件扩散

    //指令定义 @Directive({ selector: `click-stop-propagation` events: 'stopClick($event)' }) class ClickSto ...

  9. ps:不规则选区

    尽管我们学会了如何添加减去或是交叉选区,但选取出来的选区还是比较规则,不是矩形就是圆形,这样的形状很难胜任在实际制作中的需要.现在我们就要学习如何建立一个任意形状的选区.建立任意选区的工具是套索工具. ...

  10. 02.list--约瑟夫环

    from fib import fib # 参考01.线性表 def josephus_a(n, k, m): """ 约瑟夫环 没有人用0表示,n个人出列即结束 :pa ...