当前位置: 首页 > news >正文

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

MaxKey的Oauth过程

在这里插入图片描述

  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应用

基本配置

在这里插入图片描述

OAuth2.0配置

在这里插入图片描述

扩展信息

在这里插入图片描述

访问控制管理

将目标角色添加新增的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

在这里插入图片描述

2. 重载gitlab配置

sudo gitlab-ctl reconfigure

3. 进入登录页面

出现刚才配置的Oauth登录按钮
在这里插入图片描述

4. 通过MaxKey登录

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

在这里插入图片描述

登录后,MaxKey提示授权确认

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

关联Gitlab用户与Max用户

登录Gitlab账号,点击右上角个人设置-账号
点击社交登录,进行登录绑定,下次再通过Oauth登录即可成功
在这里插入图片描述

相关文章:

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

MaxKey的Oauth过程 引导进入 GET http://{{maxKey_host}}/sign/authz/oauth/v20/authorize?client_idYOUR_CLIENT_ID&response_typecode&redirect_uriYOUR_REGISTERED_REDIRECT_URI 登录后回调地址 YOUR_REGISTERED_REDIRECT_URI/?code{{code}} 换取Access Token GET…...

【Buildroot】构建根文件系统等

文章目录 0. 前言10. 环境软件硬件 20. Buildroot 环境搭建简述下载环境搭建toolchain下载、安装构建镜像(仅供参考) 80. 问题点1. 编译、清除时提示权限不足 0. 前言 对嵌入式linux开发和linux开发环境不熟悉的同志们就不要往下看了 对嵌入式linux开发和…...

利用css动画和定时器setTimeout,实现上传图片进度条

思路 利用css动画和js定时器&#xff08;setTimeout&#xff09;&#xff0c;实现简单的进度条。 优势 不使用 setInterval&#xff0c;减少js代码量&#xff0c;业务代码更加简洁。 示意图 上传中上传成功上传失败 代码 html <!-- img-wrap有两种状态&#xff1a;u…...

关于VScode插件,你不得不知道的几件事

一、前言 VSCode是微软家一个非常轻量化的编辑器&#xff0c;体量虽轻&#xff0c;但是却有异常强大的功能。原因在于VSCode许多强大功能都是基于插件实现的&#xff0c;IDE只提供一个最基本的框架和基本功能&#xff0c;我们需要使用插件来丰富和扩展它的功能。 由于插件的重…...

MySQL 奇遇记三则

公司新项目&#xff0c;要使用 MySQL 数据库。 第一次使用 MySQL&#xff0c;有点小激动。听说过 N 多次&#xff0c;这一次终于用上了。 为什么是奇遇记&#xff1f; 因为在网上几乎搜索不到别人遇到和我一样的问题。 系统 &#xff1a;WINDOWS10X64 中文版 数据库&#xf…...

UI设计师的主要职责说明(合集)

UI设计师的主要职责说明1 职责&#xff1a; 1、负责公司移动端、PC端产品相关的交互、UI等设计 2、负责公司宣传册、海报、运营物料、banner等设计 3、负责公司品牌相关的视觉设计 3、制定相关设计规范&#xff0c;提高产品的可用性、不断优化产品体验; 4、与PM、运营紧密…...

SOLIDWORKS 2023中装配体配合的正确使用方法 硕迪科技

-SOLIDWORKS 装配体打开时是由不同的阶段和性能检查组成的。如果在创建装配体时未应用基本的配合方法&#xff0c;问题会随着时间的推移而累积&#xff0c;并且在使用时会出现明显的速度减慢。 如果您的装配体运行速度很慢&#xff0c;则很可能是在创建配合时出现了不良操作的症…...

代码随想录——96.不同的二叉搜索树

class Solution {public int numTrees(int n) {int[] dp new int[n1];dp[0] 1;dp[1] 1;for(int i 2;i < n ; i){for(int j 1; j < i;j){dp[i] dp[j-1]*dp[i-j];}}return dp[n];} }...

智安网络|零信任安全框架:保障数字化时代网络安全的最佳实践

随着数字化时代的快速发展&#xff0c;网络安全问题变得越来越突出。传统的安全防御模式已经不再适用于现代复杂的网络环境中。为了应对日益增长的网络威胁&#xff0c;零信任安全模式应运而生。 一、什么是零信任&#xff1f; 零信任是一种安全框架和哲学&#xff0c;它基于…...

Rancher管理K8S

1 介绍 Rancher是一个开源的企业级多集群Kubernetes管理平台&#xff0c;实现了Kubernetes集群在混合云本地数据中心的集中部署与管理&#xff0c;以确保集群的安全性&#xff0c;加速企业数字化转型。Rancher 1.0版本在2016年就已发布&#xff0c;时至今日&#xff0c;Ranche…...

【Linux】一切皆文件

Linux 下一切皆为文件&#xff0c; 文件包括头文件&#xff0c;库文件&#xff08;静态库和共享库&#xff09;&#xff0c;可执行文件&#xff0c;目录文件&#xff0c;软链接文件&#xff0c;配置文件等。 每个文件都依据权限分为用户、用户组和其他人三个身份&#xff0c;…...

C++学习笔记4

什么是指针&#xff1f; 指针是存储内存地址的变量。就像int变量用于存储整数值一样&#xff0c;指针变量用于存储内存地址。指针是一种指向内存单元的特殊变量。 内存单元地址通常使用的是16进制表示&#xff08;0&#xff5e;9和A&#xff5e;F&#xff09;来表示数字。显示…...

x11 gtk qt gnome kde 之间的区别和联系

Linux 下的图形库介绍 一、Linux 图形领域的基础设施 1.1 X Window X Window从逻辑上分为三层&#xff1a;X Server、X Client和X协议。 最底层的X Server&#xff08;X服务器&#xff09;主要处理输入/输出信息并维护相关资源&#xff0c;它接受来自键盘、鼠标的操作并将…...

MAC访问MySQL下的data目录

1.查看创建表存储路径 show variables like datadir 2.快捷键comshiftG&#xff0c;输入查询到的地址 3.终端输入 sudo chmod -R arwx /usr/local/mysql/data 然后输入密码即可...

WebMagic - 创意前端项目集合(点击链接可在电脑上查看效果)

WebMagic - 创意前端项目集合 欢迎来到 WebMagic 仓库&#xff01;这里汇集了一系列令人惊叹的前端项目&#xff0c;涵盖了HTML5、CSS3和JS等多项技术。无论你是前端开发者、设计师&#xff0c;还是对创意互动内容感兴趣的人&#xff0c;这个仓库都将为你带来无尽的惊喜。 每…...

黑马项目一阶段面试58题 苍穹外卖业务逻辑15题

一、员工登录流程 1.前端在登录页面登录&#xff0c;发送请求 2.进入拦截器&#xff0c;拦截器放行所有登录页面的请求 3.进入三层架构&#xff0c;查询用户是否存在&#xff0c;若存在&#xff0c;则加盐加密&#xff0c;返回JWT的token&#xff0c;存放在请求头部。用户不…...

C++学习笔记总结练习: 字符串类MyString的实现

MyString是一个自定义的字符串类&#xff0c;它封装了一些常见的字符串操作和功能。下面是一个简单的MyString类的实现示例&#xff1a; #include <iostream> #include <cstring>class MyString { private:char* m_data; // 用于存储字符串的字符数组int m_length…...

测试人进阶技能:单元测试报告应用指南

为什么需要单元测试 从产品角度而言&#xff0c;常规的功能测试、系统测试都是站在产品局部或全局功能进行测试&#xff0c;能够很好地与用户的需要相结合&#xff0c;但是缺乏了对产品研发细节&#xff08;特别是代码细节的理解&#xff09;。 从测试人员角度而言&#xff0…...

非2的幂次的ASTC纹理格式尺寸对带宽的影响

1&#xff09;非2的幂次的ASTC纹理格式尺寸对带宽的影响 2&#xff09;​C#端如何处理xLua在执行DoString时候死循环 3&#xff09;如何制定美术规范或者各个模块的指标 4&#xff09;如何处理Lua的io.open出现中文路径 这是第348篇UWA技术知识分享的推送&#xff0c;精选了UWA…...

Java设计模式之策略模式

1. 策略模式介绍 1、根据它来避免 if-else 或 switch 分支判断&#xff0c;避免使用多重条件转移语句&#xff1b; 2、支持“开闭原则”&#xff0c;可以在原有基础上选择行为方法&#xff0c;同时允许增加行为方法。 2. 策略模式结构类 ① 接口或抽象类&#xff1a;自定义接口…...

HDD与SSD存储技术演进:从产业变迁看成本容量比与分层存储实践

1. 硬盘驱动器产业的十字路口&#xff1a;一场迟来的告别十多年前&#xff0c;当我在实验室里第一次把玩一块2.5英寸的机械硬盘&#xff0c;惊叹于它能在方寸之间存储数十GB的数据时&#xff0c;绝不会想到&#xff0c;这个看似坚不可摧的存储基石&#xff0c;其背后的商业帝国…...

Python统一调用多AI模型:python-tgpt库实战指南

1. 项目概述&#xff1a;一个让Python与AI对话更简单的工具 如果你最近在尝试用Python调用各种大语言模型&#xff08;LLM&#xff09;的API&#xff0c;比如OpenAI的GPT、Google的Gemini&#xff0c;或者开源的Llama、Mistral&#xff0c;那你大概率经历过这样的场景&#xf…...

ChatGPT Discord机器人开发全链路拆解(含Rate Limit绕过策略与上下文记忆优化)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ChatGPT与Discord机器人开发全链路概览 构建一个能调用 ChatGPT 能力的 Discord 机器人&#xff0c;需跨越 API 集成、身份认证、消息路由与状态管理四大核心层。该链路并非单向调用&#xff0c;而是一…...

MySQL性能优化:慢查询分析与索引设计艺术

MySQL性能优化&#xff1a;慢查询分析与索引设计艺术 引言 MySQL是世界上最流行的开源关系型数据库之一&#xff0c;但再强大的数据库在不当使用下也会出现性能问题。慢查询是数据库性能的头号杀手&#xff0c;而正确的索引设计则是解决慢查询的关键。本文将深入探讨MySQL慢查询…...

高性能零依赖Vue3跑马灯组件:企业级动态内容展示解决方案

高性能零依赖Vue3跑马灯组件&#xff1a;企业级动态内容展示解决方案 【免费下载链接】vue3-marquee A simple marquee component with ZERO dependencies for Vue 3. 项目地址: https://gitcode.com/gh_mirrors/vu/vue3-marquee Vue3-Marquee是一个专为Vue 3设计的零依…...

Win2D文本渲染:从基础格式到高级排版的全方位教程

Win2D文本渲染&#xff1a;从基础格式到高级排版的全方位教程 【免费下载链接】Win2D Win2D is an easy-to-use Windows Runtime API for immediate mode 2D graphics rendering with GPU acceleration. It is available to C#, C and VB developers writing apps for the Wind…...

Windows XP图标主题:5分钟让你的现代Linux桌面重获经典魅力

Windows XP图标主题&#xff1a;5分钟让你的现代Linux桌面重获经典魅力 【免费下载链接】Windows-XP Remake of classic YlmfOS theme with some mods for icons to scale right 项目地址: https://gitcode.com/gh_mirrors/win/Windows-XP 还在怀念那个经典的开始按钮和…...

从零构建现代Web音乐应用:技术选型、音频引擎与全栈实践

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目&#xff0c;叫chemistwang/music-app。光看名字&#xff0c;你可能会觉得这又是一个“音乐播放器”&#xff0c;市面上类似的轮子已经多如牛毛了。但作为一个在前后端领域摸爬滚打多年的开发者&#xff0c;我习惯性…...

好用的四川企业用工风险咨询生产厂家

行业痛点分析在四川企业用工风险咨询领域&#xff0c;企业面临诸多技术挑战。首先&#xff0c;许多企业虽意识到用工风险的存在&#xff0c;但却不清楚风险具体所在。测试显示&#xff0c;超过七成企业未系统排查过自身用工风险&#xff0c;社保未足额缴纳、合同存在漏洞、规章…...

Anthropic Claude Haiku 4.5 安全突破:勒索行为从96%降至0%

上一篇: Google I/O 2026前瞻&#xff1a;Gemini 4.0、Android XR与AI原生生态的全面突破 下一篇: Anthropic ARR突破440亿美元&#xff1a;Q1营收同比增长80倍深度分析 核心结论: Anthropic通过"困难建议数据集"和宪法训练方法&#xff0c;成功将Claude模型的勒索行…...