知识库

Loading

0 评论 / 0 点赞 / 76 阅读  功能介绍 最后更新: 2022-10-31 作者: 飞致云 总字数: 2840

概述

本文重点介绍两种常见的单点登录协议,即 OIDC(OpenID Connect)协议和 SAML 2.0(Security Assertion Markup Language)协议,以及如何在 JumpServer 开源堡垒机上完成与 Okta 的集成对接。

概要

单点登录

单点登录(Single Sign On,简称为 SSO )是一种身份验证方案,允许用户使用单一的认证凭证访问到多个独立的软件系统中的任意一个,减少了用户重复认证的步骤,并且统一了不同软件间的用户认证管理。

常见的单点登录认证协议包括: OIDC、OAuth 2.0、SAML 2.0、CAS 等。

Okta

Okta 是一家美国高新技术公司,其软件的主要功能是将一家公司及其员工使用的大量软件应用整合在一起,能够让员工很方便地使用单一、安全的账号登录他们工作所需要使用的各种自有及第三方的网络服务,并且通过细粒度的多租户身份验证确保最终用户的访问体验。

OIDC

OIDC(OpenID Connect)在 OAuth 2.0上构建了一个身份层,是一个基于 OAuth 2.0协议的身份认证标准协议。OIDC 使用OAuth 2.0 的授权服务器来为第三方客户端提供用户的身份认证,并把对应的身份认证信息传递给客户端,且可以适用于各种类型的客户端(例如服务端应用、移动 APP、JavaScript 应用),且完全兼容 OAuth 2.0 协议。

SAML

SAML(Security Assertion Markup Language)是一种用于安全性断言的标记语言,目前的最新版本是2.0,是 Web 浏览器用来通过安全令牌启用单点登录(SSO)的标准协议。

OIDC 协议与 SAML 20 协议之间的相同点和不同点

图片-1666164179254

对接前的准备工作

  1. 如果 JumpServer 需要与 Okta 平台对接,需要在官网进行注册,Okta 平台的官网地址为:https://www.okta.com/;
  2. 注册成功后,Okta 会发送一封电子邮件,邮件内容包含独立的平台域名、用户名和临时密码信息。

SAML 2.0 协议对接

对接步骤:Okta 端

1、通过官网进入到 Okta 平台首页后,点击左边菜单栏中的 “Applications”→“Applications”;
图片-1666164328427
2、点击“Create App Integration”按钮;
图片-1666164346260
3、选择“SAML 2.0”选项后,点击“Next”按钮;
图片-1666164373307
4、根据提示,创建应用名、登录 Logo 等配置信息;
图片-1666164395429
5、配置相应 SAML 信息;
Single sign on URL(即Okta认证成功的回调地址):http://host:port/core/auth/saml2/callback/ 或者 https://host:port/core/auth/saml2/callback/;
Audience URI(应用堡垒机的标识):http://host:port/core/auth/saml2/login/ 或者 http://host:port/core/auth/saml2/login/;
6、如果需要配置 JumpServer 设置中的同步注销功能,还需要在这里单独进行配置,点击“Show Advanced Settings”按钮(无需此功能,可忽略此步骤,建议最后配置此项);
图片-1666164516070
需要配置证书,输入以下代码生成一个密钥证书,后续 JumpServer 堡垒机也会使用到这个密钥证书;

$ openssl genrsa -out server.key 2048  # 这个生成的是 私钥
$ openssl req -new -x509 -days 3650 -key server.key -out server.crt -subj "/C=CN/ST=mykey/L=mykey/O=mykey/OU=mykey/CN=domain1/CN=domain2/CN=domain3"  # 这个是证书

填写 Single Logout URL(即 Okta 注销地址),一般为:http://host:port/login/signout 或者 http://host:port/login/signout;
图片-1666164636592
若上述 URL 配置有误,可通过以下图片所示方式获取正确地址,并填入“Single Logout URL”处;
图片-1666164651152
7、设置“Attribute Statements(Optional)”选项卡,这里是用户属性映射,JumpServer 默认会把 SAML 2.0 协议传输过来的 uid 字段和 JumpServer 中的 username 字段相关联;
如果想修改这里的信息,将 JumpServer 设置为同步修改即可,然后拉到页面底部,点击“Next”按钮;
图片-1666164677587
8、按照下图设置完成后,点击“Finish”按钮;
图片-1666165243197
9、创建应用成功后,在应用界面找到“SAML Signing Certificates”选项卡,选择状态为“Active”的记录,在“Action”菜单中点击“View IdP metadata”选项;
图片-1666165260458
10、将弹出的浏览器框地址栏中的地址保存下来,以便后续配置 JumpServer;
图片-1666165281850
11、点击应用名称,进入应用设置中找到“Assignments”选项后,点击“Assign”菜单邀请用户进入当前应用。
图片-1666165353640

对接步骤:JumpServer 端

1、登录 JumpServer 后,选择“设置”→“认证设置”→“SAML2”;
图片-1666165401373
2、将对接 Okta 端操作中的第6步(若上述第6步跳过,则返回第6步生成密钥证书部分,执行命令获取证书)生成的密钥证书上传到 JumpServer 堡垒机,并把第10步生成的 URL 地址,填写在“IDP metadata URL”中,即可完成 JumpServer 端的配置。
图片-1666165419919

OIDC-OpenID 协议对接

对接步骤:Okta 端

1、通过官网进入到 Okta 平台首页后,点击左边菜单栏中的“Applications”→“Applications”;
图片-1666165563121
2、点击“Create App Integration”按钮;
图片-1666165585615
3、选择“OIDC-OpenID Connect”选项,然后选择“Web Application”选项,点击“Next”按钮;
图片-1666165623719
4、根据以下图示填写相应内容,其余部分保持默认设置;

App integration name(Okta端应用名称):不重复即可;
Sign-in redirect URIs(认证成功回调地址):域名更换成自己的即可;
Sign-out redirect URIs(注销用户会话后的重定向地址):选填;

图片-1666165659518
图片-1666165669636
5、跳转到应用信息详情页后,进入“Okta API Scopes”选项卡进行授权;
图片-1666165696549
6、在页面最底部找到 okta.users.read,点击右侧“Grant”按钮完成授权动作,即可完成Okta端的对接设置。
图片-1666165716254

对接步骤:JumpServer 端

1、 登录 JumpServer 后,选择“设置”→“认证设置”→“OIDC”,并根据下图填入相应参数,域名处更换为自己的 Okta 域名;
图片-1666165783405
2、在 Okta 端配置客户端ID(Client ID)及客户端密钥(Client Secret);
图片-1666165799036
3、按照下图设置相应信息,即可完成 JumpServer 端的对接设置。
图片-1666165814736
图片-1666165825400

文章目录
其他资源