原文地址

本文档讲述如何使用 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. Qt之UI文件设计和运行机制

    1.项目文件组成在QtCreator中新建一个WidgetApplocation项目,选中窗口基类中选中QWidget作为窗口基类,并选中"GnerateForm"复选框.创建后项 ...

  2. C++之匿名对象与析构函数的关系

    #include <iostream> using namespace std; class Location{ public: Location(, ){ X = xx; Y = yy; ...

  3. 搜索---BFS

    搜索   深度优先搜索和广度优先搜索广泛的应用于树和图中,但是他们的应用远不止于此. BFS   广度优先搜索一层一层地进行遍历,每层遍历都是以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点 ...

  4. Ftp客户端(上传文件)

    #coding=utf-8 import os import socket import hashlib import json # client = socket.socket() #申明socke ...

  5. C#设计模式:命令模式(Command Pattern)

    一,什么是命令模式(Command Pattern)? 命令模式:将请求封装成命令对象,请求的具体执行由命令接收者执行: 二,如下代码 using System; using System.Colle ...

  6. Version Controlling with Git in Visual Studio Code and Azure DevOps

    Overview Azure DevOps supports two types of version control, Git and Team Foundation Version Control ...

  7. JAVA一个文件写多个类

    JAVA一个文件写多个类,并且是同级类,需注意: 在一个.java文件中可以有多个同级类,  其修饰符只可以public/abstract/final/和无修饰符 public修饰的只能有一个,且必须 ...

  8. javaScript基础--概念以及使用

    1.什么javascript? 为什么要学习? 处理网站动态特效 为后期课程打基础 什么是javascript? 是一个客户端的具有安全性的脚本语言. js和h5 的关系 :  都是向静态的元素动起来 ...

  9. [转]使用flask实现mock server

    什么是mock server: http://www.testclass.net/interface/mock_server 使用flask 实现  mock server : http://www. ...

  10. 【记录】git error:bad signature 解决方法

    今天提交git 的时候出现 bad signature 错误,意思是git下的index文件损坏了,需要重新生成下 error: bad signature fatal: index file cor ...