【MaxKey对接一】对接gitlab的oauth登录

这篇具有很好参考价值的文章主要介绍了【MaxKey对接一】对接gitlab的oauth登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MaxKey的Oauth过程

【MaxKey对接一】对接gitlab的oauth登录,gitlab

  1. 引导进入

GET
http://{{maxKey_host}}/sign/authz/oauth/v20/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI

  1. 登录后回调地址

YOUR_REGISTERED_REDIRECT_URI/?code={{code}}

  1. 换取Access Token

GET、POST
http://{{maxKey_host}}/sign/authz/oauth/v20/token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code={{code}}

返回结果:
{
“access_token”: “7c915770-7208-4548-aac8-b0230a834b51”,
“token_type”: “bearer”,
“expires_in”: 299,
“scope”: “read”
}

  1. 获取用户信息

GET、POST
http://{{maxKey_host}}/sign/api/oauth/v20/me?access_token={{access_token}}

返回结果
{
“birthday”: null,
“gender”: 2,
“displayName”: “lidi”,
“departmentId”: “101”,
“mobile”: null,
“createdate”: “2023-08-16 05:59:23”,
“title”: null,
“userId”: “889188663856988160”,
“online_ticket”: “OT889225022864883712”,
“employeeNumber”: null,
“realname”: “lidi”,
“institution”: “1”,
“randomId”: “cc3025a9-dfec-4a7f-bfaa-e731c3bd8b9d”,
“state”: null,
“department”: “产品部”,
“user”: “lidi”,
“email”: “363192641@qq.com”,
“username”: “lidi”
}

MaxKey配置

创建一个Gitlab应用

基本配置

【MaxKey对接一】对接gitlab的oauth登录,gitlab

OAuth2.0配置

【MaxKey对接一】对接gitlab的oauth登录,gitlab

扩展信息

【MaxKey对接一】对接gitlab的oauth登录,gitlab

访问控制管理

将目标角色添加新增的gitlab应用使用权限
【MaxKey对接一】对接gitlab的oauth登录,gitlab

Gitlab配置

1. 开启Gitlab的Oauth2功能

编辑 /etc/gitlab/gitlab.rb

#OAuth2.0
gitlab_rails['omniauth_enabled'] = true # 开启omniauth
gitlab_rails['omniauth_allow_single_sign_on'] = false # 此处值为true的话,当gitlab不存在该用户时会自动在gitlab中创建用户
gitlab_rails['omniauth_block_auto_created_users'] = true # 是否禁用自动创建的gitlab用户 ,为false则表示自动创建的用户不禁用。为true时则表示禁用,需要gitlab管理员手动解除禁用
gitlab_rails['omniauth_auto_link_user'] = true # 是否自动关联已经存在的gitlab账号
gitlab_rails['omniauth_providers'] = [
  {
    'name' => 'oauth2_generic',   # 不能修改
    'label' => 'AIP_OAUTH',   # oauth登录按钮名称展示
    'app_id' => '9cdbccbe-47a0-4adb-9d3d-7e0eceacaace', # maxKey配置的client_id
    'app_secret' => 'F3QOMTUwMzIwMjExMTMyMTAzNDknMW',  # maxKey配置的client_secret
    'args' => {
      client_options: {
        'site' => 'http://maxKeyHost', # maxKey地址
        'authorize_url' => '/sign/authz/oauth/v20/authorize', # 认证URL,对于MaxKey无需修改
        'token_url' => '/sign/authz/oauth/v20/token', # 获取token的URL,对于MaxKey无需修改
        'user_info_url' => '/sign/api/oauth/v20/me' # 获取用户信息的URL,对于MaxKey无需修改
      },
      user_response_structure: {
        root_path: [], 
        id_path: ['userId'], 
        attributes: { name: 'username', nickname: 'displayName',email:'email'}
	  }
	}
  }
]
user_response_structure
id_path: [‘userId’]

以获取用户信息接口返回数据格式,比如MaxKey的用户信息返回结果如下

{
    "birthday": null,
    "gender": 2,
    "displayName": "lidi",
    "departmentId": "101",
    "mobile": null,
    "createdate": "2023-08-16 05:59:23",
    "title": null,
    "userId": "889188663856988160",
    "online_ticket": "OT889225022864883712",
    "employeeNumber": null,
    "realname": "lidi",
    "institution": "1",
    "randomId": "cc3025a9-dfec-4a7f-bfaa-e731c3bd8b9d",
    "state": null,
    "department": "产品部",
    "user": "lidi",
    "email": "363192641@qq.com",
    "username": "lidi"
}

userId为用户唯一标识

attributes

同样还是对照用户信息接口返回的数据格式来对应

 attributes: { name: 'username', nickname: 'displayName',email:'email'} 
Gitlab官方配置说明

https://docs.gitlab.com/ee/integration/oauth2_generic.html?tab=Linux+package+%28Omnibus%29

【MaxKey对接一】对接gitlab的oauth登录,gitlab

2. 重载gitlab配置

sudo gitlab-ctl reconfigure

3. 进入登录页面

出现刚才配置的Oauth登录按钮
【MaxKey对接一】对接gitlab的oauth登录,gitlab

4. 通过MaxKey登录

点击按钮后,跳转到MaxKey地址

【MaxKey对接一】对接gitlab的oauth登录,gitlab

登录后,MaxKey提示授权确认

【MaxKey对接一】对接gitlab的oauth登录,gitlab

同意授权后,页面跳转到应用配置的回调地址(这里我配置的Gitlab首页)

【MaxKey对接一】对接gitlab的oauth登录,gitlab

如果用户没有在Gitlab中绑定MaxKey用户Id,那么登录会无效(在gitlab配置中我关闭了当用户不存在自动创建用户)

【MaxKey对接一】对接gitlab的oauth登录,gitlab

关联Gitlab用户与Max用户

登录Gitlab账号,点击右上角个人设置-账号
点击社交登录,进行登录绑定,下次再通过Oauth登录即可成功
【MaxKey对接一】对接gitlab的oauth登录,gitlab文章来源地址https://www.toymoban.com/news/detail-654881.html

到了这里,关于【MaxKey对接一】对接gitlab的oauth登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java实现Google授权登录,OAuth 2.0登录

    首先创建OAuth 2.0 客户端 ID 配置url,必须是 https 的,同时复制好客户端id 和密钥 配置回调url 回调接口

    2024年02月14日
    浏览(33)
  • 【OAuth2】OAuth2概述及使用GitHub登录第三方网站

    我们在浏览器上可以访问成百上千个网站,使用每个网站的服务一般都要先注册账号,那么我们为了更好地记忆,一般都会在多个网站使用相同的账号和密码进行注册。那么问题就来了,如果在你注册的网站中有某些个网站的系统设计不够严谨和安全,数据库的用户信息使用

    2024年01月19日
    浏览(45)
  • SpringSecurity +oauth2获取当前登录用户(二)

    特别注意:以下内容如果访问失败或有其他疑问,可先学习: SpringSecurity +oauth2+JWT实现统一授权和认证及项目搭建(一) 1 获取当前用户的信息代码为: 但是,通过运行会发现principal的值只是 用户名 ,没有用户信息,通过去看源码,才发现问题所在,以下是源码: 源码类:

    2023年04月12日
    浏览(32)
  • Python oauth2登录Outlook读取邮件

    微软登录方式发生了改变,需要用 oauth2 ,以前的写的脚本都登录不上了,本文记录下更新后的登录方式。 报错如下: imaplib.IMAP4.error: b’LOGIN failed.’ 1.在Azure 门户注册应用程序 这里可以跟着官方教程走 传送门:https://learn.microsoft.com/zh-cn/azure/active-directory/develop/web-app-quicks

    2024年02月04日
    浏览(38)
  • Oauth2使用postman登录获取token

    网关请求拦截-(CheckJwtFilter.java) 网关配置把获取到的token存入redis-(GatewayConfig.java)它是把我们访问网关的路由转发到授权微服务 授权服务认证配置-(AuthorizationConfig.java) 授权服务安全配置-(WebSecurityConfig.java) 授权服务登录-(UserDetailsServiceImpl.java) 授权服务启动类-(AuthServerApplicatio

    2023年04月08日
    浏览(33)
  • 微信小程序——单点登录,OAuth 2.0,openid

    单点登录 (Single Sign-On,简称SSO)是一种身份认证的机制,允许用户在多个应用程序之间只需进行一次登录,即可访问所有相互信任的应用程序,而无需再次输入用户名和密码。SSO可以提供更好的用户体验和简化的身份验证流程。 OAuth 2.0 是一种开放标准的授权协议,用于授

    2024年02月07日
    浏览(24)
  • OAuth 2.0 协议介绍【实现 GitHub 第三方登录】

    OAuth(是 Open Authorization 开放授权的缩写),在全世界得到广泛应用,目前的版本是2.0版。 本文会对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749。 OAuth 2.0 是一个开放标准,用于授权用户访问另一个应用程序的资源,而无需将用户的凭据(比如

    2024年02月20日
    浏览(52)
  • 如何通过OAuth2.0完成Microsoft平台登录验证

    参考内容: OAuth2 in Python | TestDriven.io 代表用户获取访问权限 - Microsoft Graph | Microsoft Learn OAuth 2.0 Bearer Token Usage 首先需要了解的是,通过Microsoft平台做身份验证,有一些配置时拿到的参数不可或缺(在身份验证的步骤中会用到,不一定是同一个步骤用到),其中包括: client_id:

    2024年02月09日
    浏览(32)
  • 【OAuth2系列】Spring Cloud Gateway 作为OAuth2 Client接入第三方单点登录代码实践

            在年初的时候我参与了一个项目,当时是很多家公司协同完成这个项目,其中一个公司专门负责登录这块的内容,需要我们的后端接入他们的单点登录(OAuth2 授权码模式),这块接入工作是由我来负责,我们的项目是微服务架构,经过网上各种查阅资料发现网关作为

    2024年02月04日
    浏览(50)
  • Spring Security oauth2.0微信小程序登录

    微信小程序前期开发准备,可以参考这篇文章微信小程序前期准备 1、学习过Spring Secrity oauth2.0的都知道,他有四种登录模式可以选择 authorization code(授权码模式) implicit(简化模式) resource owner password credentials(密码模式) client credentials(客户端模式) 前三种模式都需要用

    2024年02月10日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包