1 Star 19 Fork 9

TJwoods/springboot-security-saml-demo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

springboot-security-saml-demo

Springboot + Spring Security SAML(独立扩展库) demo

登录流程(单点登录 / SSO)

  1. 启动项目后, 打开页面 http://localhost:8080,该页面不受 SP 保护,不需要登录
  2. 在页面中点击 Here 后,跳转到 localhost:8080/saml/login,demo 会向 IDP 发送认证请求,跳转到 OKTA(作为 IDP) 进行登录
  3. 在 OKTA 登录成功后,IDP 会发送断言到 SP,会跳转到系统的 localhost:8080/saml/SSO 消费断言
  4. SP 验证断言成功后,会触发 /home 接口,跳转到 localhost:8080/home 页面

登出流程

分为本地登出单点登出(SLO)

  1. localhost:8080/home 页面中:
  1. 登出后将会返回 http://localhost:8080/

本地登出:直接退出本地的 session,但是没有在 IDP 那边退出,所以当再次登录时,在 IDP 无需再次输入用户、密码,直接进行登录。

单点登出:在 IDP 那边退出,所以当再次登录时,在 IDP 那边需要输入用户、密码,才能进行登录。

OKTA IDP 设置流程

本 demo 不给予 IDP 的帐号、密码,请自行搭建,很简单

  1. OKTA 可以免费申请到开发者帐号,链接

  2. 通过 OKTA 的帮助文档 完成 SAML IDP 的搭建。(搭建好后,记得将应用分配给用户(可以是自己),这样才能进行使用)

  3. 最终配置好的样子

KEY 分别是什么意思?直接翻译一下就出来了,都是 OKTA 配置时 / 配置后的项,完成配置后,在 General 一页可以看到以下相关的 KEY

KEY VALUE
Single Sign On URL http://localhost:8080/saml/SSO
Recipient URL http://localhost:8080/saml/SSO
Destination URL http://localhost:8080/saml/SSO
Audience Restriction xxx(SP 的唯一标识,就是一个字符串,通常有几部分组成,使用 : 分隔)
Default Relay State http://localhost:8080/home
Name ID Format Unspecified
Response Signed
Assertion Signature Signed
Signature Algorithm RSA_SHA256
Digest Algorithm SHA256
Assertion Encryption Unencrypted
SAML Single Logout Enabled
Signature Certificate xxx(用于签名的证书,公钥)
authnContextClassRef PasswordProtectedTransport
Honor Force Authentication Yes
SAML Issuer ID (默认即可)
SP Issuer xxx(SP 的唯一标识,就是一个字符串,通常有几部分组成,使用 : 分隔)
  1. 完成配置后,在 Sign On 中可以找到 View Setup Instructions,点击它。打开的页面中就是刚刚新搭建的 IDP 的一些数据。其中:
    • Identity Provider Single Sign-On URL - 当你启动 SP(即本系统)后,直接在浏览器中打开该地址,可以用来测试单点登录的功能(也就是会触发单点登录的功能)。
    • Identity Provider Single Logout URL - 与上一点同理,但这是单点登出的功能。
    • Identity Provider Issuer - IDP 的标识,暂时不知道有啥用,只知道 IDP 元数据中包含它,可以用它来判断元数据是否属于对应的 IDP。
    • X.509 Certificate - 证书,好像是签名用的证书,不是你上传那张,是 OKTA 自己提供的
    • Provide the following IDP metadata to your SP provider - 这个就是 IDP 的元数据了,这个内容就是系统中 idp-okta.xml 中的内容,如果搭建了自己的 IDP ,则将该内容复制到 idp-okta.xml 中进行替换,系统就会知道往你搭建的 IDP 发送认证请求等内容了。

空文件

简介

Springboot + Spring Security SAML(独立扩展库) demo 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/tjwoods/springboot-security-saml-demo.git
git@gitee.com:tjwoods/springboot-security-saml-demo.git
tjwoods
springboot-security-saml-demo
springboot-security-saml-demo
master

搜索帮助

371d5123 14472233 46e8bd33 14472233