实现 INFINI Console 与 GitHub 的单点登录集成:一站式身份验证解决方案

ops/2025/2/26 20:54:31/
github-gist">

本文将为您详细解析如何通过 GitHub OAuth 2.0 协议,为 INFINI Console 实现高效、安全的单点登录(Single Sign-On, SSO)集成。通过此方案,用户可直接使用 GitHub 账户无缝登录 INFINI Console,简化身份验证流程,提升系统安全性与用户体验。


一、GitHub OAuth 应用配置

1. 创建 OAuth 应用程序

  • 登录 GitHub,导航至 Settings -> Developer settings -> OAuth Apps

  • 点击 New OAuth App,创建新的 OAuth 应用程序。

    创建 OAuth 应用

2. 配置应用信息

  • 填写应用的基本信息,包括:

    • Application Name:应用名称(如 “INFINI Console SSO”)
    • Homepage URL:应用主页 URL
    • Authorization callback URL:回调 URL(格式:http://localhost:9000/oauth/callback

    配置应用信息

3. 获取客户端凭证

  • 创建应用后,系统将生成 Client IDClient Secret

  • 这些凭证将用于 INFINI Console 的 OAuth 配置。

    获取客户端凭证

4. 查看已注册的 OAuth 应用

  • 创建完成后,您可以在 OAuth 应用列表中查看应用的详细信息。

    已注册的 OAuth 应用


二、INFINI Console 的 OAuth 集成配置

1. 修改配置文件

  • 编辑 INFINI Console 的配置文件,添加以下 OAuth 配置:

    security:enabled: trueoauth:enabled: trueclient_id: "xxxx"  # 替换为您的 Client IDclient_secret: "xxxx"  # 替换为您的 Client Secretdefault_roles: ["ReadonlyUI", "AllClusters"]  # 默认角色role_mapping:medcl: ["Administrator"]  # 特定用户的角色映射authorize_url: "https://github.com/login/oauth/authorize"token_url: "https://github.com/login/oauth/access_token"redirect_url: ""scopes: []
    

2. 配置角色权限

  • AllClusters 角色:用于管理集群的全局权限。

  • ReadonlyUI 角色:为只读用户分配受限权限。

    AllClusters 角色配置

    Readonly 角色配置


三、单点登录流程演示

1. 访问 INFINI Console

  • 打开浏览器,访问 http://localhost:9000

  • 点击 单点登录 按钮,进入登录流程。

    单点登录入口

2. 使用 GitHub 登录

  • 点击 GitHub 图标,跳转至 GitHub 登录页面。

    GitHub 登录界面

3. 授权应用访问

  • 在 GitHub 授权页面,确认授权 INFINI Console 访问您的 GitHub 账户。

    GitHub 授权页面

4. 登录成功

  • 授权成功后,系统将自动跳转回 INFINI Console,并显示您的 GitHub 用户名。

    登录成功页面

    显示 GitHub 用户名


四、总结

通过以上步骤,您已成功将 INFINI Console 与 GitHub 的单点登录功能集成。此方案不仅简化了用户的登录流程,还通过 GitHub 的 OAuth 2.0 协议确保了身份验证的安全性。未来,希望INFINI Console进一步扩展角色权限管理,或集成其他身份提供者(如 Google、Microsoft 等),打造更加灵活的身份验证体系。


http://www.ppmy.cn/ops/161496.html

相关文章

PyTorch-基础(CUDA、Dataset、transforms、卷积神经网络、VGG16)

PyTorch-基础 环境准备 CUDA Toolkit安装(核显跳过此步骤) CUDA Toolkit是NVIDIA的开发工具,里面提供了各种工具、如编译器、调试器和库 首先通过NVIDIA控制面板查看本机显卡驱动对应的CUDA版本,如何去下载对应版本的Toolkit工…

【LeetCode18】四数之和

题目描述 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复): …

Arcmap和ArcgisPro重装及配置迁移

近期要重装一下ArcgisPro,在此记录并作为大家的借鉴 1.备份配置文件:其中Desktop10.8为Arcmap的配置文件 2.通过控制面板卸载,arcpro卸载时间较长,先将语言包等卸载,最后再卸载5G主程序,有些文章会介绍清理…

Github 2025-02-25 Python开源项目日报 Top10

根据Github Trendings的统计,今日(2025-02-25统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10Vue项目1稳定扩散Web UI 创建周期:512 天开发语言:Python协议类型:GNU Affero General Public License v3.0Star数量:117672 个…

【Blender】二、建模篇--08,小狐狸角色建模

这堂课呢 我们来完成本套课程建模片的最后一个模型 小狐狸 这堂课呢 主要想让大家一起走一遍角色建模的一个基本流程 让你以后遇到类似的模型时候有一个基本的建模思路 那我们现在就开始吧 2 00:00:16,830 --> 00:00:24,390 我们还是在我们之前建模马拉松的那个文件里面继…

在Linux上创建一个Docker容器并在其中执行Python脚本

在Linux上创建一个Docker容器并在其中执行Python脚本的过程,涉及多个方面的内容,包括安装Docker、编写Dockerfile、构建镜像、运行容器等。 1. 安装Docker 在Linux上使用Docker之前,你需要确保系统已安装Docker。Docker支持的Linux发行版有…

常用计算机网络命令

命令&#xff1a;ping 用于检测网络连通性&#xff0c;判断目标地址是否可达。 常用参数 -t &#xff1a;持续发送数据包&#xff0c;直到手动停止。-n <count> &#xff1a;发送指定数量的数据包。-l <size> &#xff1a;指定发送的数据包大小。 ping www.exa…

本地部署deepseek大模型后使用c# winform调用(可离线)

介于最近deepseek的大火&#xff0c;我就在想能不能用winform也玩一玩本地部署&#xff0c;于是经过查阅资料&#xff0c;然后了解到ollama部署deepseek,最后用ollama sharp NUGet包来实现winform调用ollama 部署的deepseek。 本项目使用Vs2022和.net 8.0开发&#xff0c;ollam…