okta/sf平台实现saml2.0单点登录集成实战(详细步骤+完整代码)

news/2024/11/29 9:45:57/

目录

第一步:注册okta账号

第二步:配置okta应用信息

第三步:下载Idp.xml文件

第四步:okta特定配置

第五步:集成测试

基于SuccessFactors的单点登录实现

Github工程代码链接

小结


笔者以前写过一篇关于saml2.0单点登录的文章,但是大多偏于理论和概念性的描述,有很多同学对具体如何实现okta的单点登录问题仍然不是很明了,遂有了这篇完全步骤详细的完全实战文章,希望对大家有所帮助。

具体步骤如下:

第一步:注册okta账号

注册一个okta账号——注册链接。详细内容就不赘述了,跟着文档一步步走就行。

第二步:配置okta应用信息

创建账号成功后,进入okta平台。

创建集成应用——点击Create App Integration

选择saml2.0

App命名

 

配置App基础信息:

 

其中entityId从项目的yml配置文件取,RelayState为成功登录后默认的重定向地址。

点击Show Advanced Settings配置高级信息,主要是上传项目的公钥文件:

 

公钥文件位于项目resource文件夹下的localhost.cert文件,选择上传后如上图所示。

注意公私密钥是可以自己生成的,不一定需要使用项目提供的。

配置完成后,点击最下面的Next,进入下一页。

 

选择I'm a software vendor. I'd like to integrate my app with Okta选项,点击Finish结束配置。

第三步:下载Idp.xml文件

结束配置后,点击Applications,选择我们刚才创建的应用sso-saml2.0-test

 

进入后选择Sign On 的Tab页

 

鼠标下滑到最下面,选择Active状态的Idp配置文件

 

点击View IdP metadata

 

复制网页的所有信息,粘贴到项目resource目录下的idp-okta.xml配置中。

格式化后显示大致如下:

第四步:okta特定配置

最后,还需要给应用程序分配用户,不然会出现报错

 

选择App配置的Assignments页面,选择Assign to People 或者 Assign to Groups:

 

可以自定义用户名

 

配置成功后如下所示:

 

第五步:集成测试

配置完成以后启动项目,访问localhost:8080,或者通过http://localhost:8080/saml/login?RelayState=/home,来访问,成功后跳转如下

 

基于SuccessFactors的单点登录实现

SAP的SF系列产品登录和okta平台的单点登录几乎没有区别,工程代码可以不需要改,仅仅是需要稍微的调整一下配置文件就可以无缝的完成替换,由于涉及到工作信息,仅展示大概的示例:

 

这里额外说一下idp.xml和localhost.cert,idp.xml可以去sf的provisioning网站下载(Download SuccessFactors IdP metadata with SHA-256 Certificate),下载后直接是一个xml文件,内容全部粘贴到idp.xml即可,在对应的页面,可以配置对应的entityId和回调App的url。

localhost.cert则可以自己用RSA工具生成配套的公私钥。

可以看到,okta和sf唯一的区别的就是两个红框的配置不同,代码不用调整。

其登陆后实际效果如下:

 

Github工程代码链接

小结

工程代码和实际步骤都已经给出,其中以okta平台的配置最为详细,笔者已经实现过SAP的IAS平台和SF平台的saml2.0单点登录。工程代码主要来自Gitee,但是笔者对其进行了代码简化和进一步的优化,主要通过url后置参数,实现了登录成功后,可以跳转到自定义页面的功能。

其难点在于单点登录实现过程中,由于前端浏览器的url的多次跳转,导致登录成功后可能只能进入指定的/home页面,笔者利用saml2.0的RelayState参数,通过url后置参数——?RelayState=/home的形式,实现了单点登录成功后可以跳转到任意页面的功能。

希望对大家有所帮助。


http://www.ppmy.cn/news/243768.html

相关文章

【无标题】-自用

rad表示弧度radian,deg表示角度degree; 1. 用基于轮廓的模版匹配,匹配到之后,会有一个参数输出目标与原模版相比旋转的角度。 2. 原图的左上角点和右下角点连线,再把旋转之后图的上角与下角连线,测量两条线…

使用mongo遇到一些需要查询的符合要求的数据,写sql

1.修改符合条件的数据 如果一个值在A数组中存在,那么修改该数据中B数组,只保留B数组中xxx db.user.find({account:"csbj"}).pretty() {"_id" : ObjectId("6139680bde8bcd0001beb194"),"id" : 813,"account" : "csb…

ubuntu

#关于win10下linux的启动记录; 惠普(暗影精灵)BIOS里BOOT Option 里选择OS BOOT manager ,Enter键选择windows或者ubuntu的启动顺序,将ubuntu设为第一,F10保存即可在启动后,提供windows或者ubuntu的系统选项…

硬盘坏了

1.今天打开电脑(联想E49),系统无法启动,一直显示的是如下图界面,我以为系统坏了,然后打算重装系统, 用的是老毛桃装机软件 2.用老毛桃U盘引导后,然而在磁盘树上却找不到硬盘,只显示了我的 U 盘&#xff0c…

ESXI6.7下直通硬盘给群晖步骤,RDM直通方式

1.进入ESXI6.7 web管理后台。开启SSH 2.点击存储,选择默认存储(ESXI安装硬盘)。复制位置地址备用 3.打开SSH工具,登录SSH。登录以后执行以下命令。 执行命令1: cd /vmfs/volumes/5fb14c74-5da1723a-c6a0-00e15a680bd8 /vmfs/volumes/5fb14…

intel安装mac os

一、变色龙: 1.http://bbs.pcbeta.com/forum.php?modviewthread&tid1518901&extrapage%3D1%26orderby%3Dheats&page1 如何安装kext&如何修改org.chameleon.boot.plist和smbios.plist:http://bbs.pcbeta.com/viewthread-936953-1-1.html…

加内存条还是固 态硬盘好

 不玩游戏,平时就运行vs2015和sql数据库,两个软件首次打开时均卡,要50s,vs运行程序时也会有点卡顿,以下是我的电脑配置,请问加内存条好还是加固态硬盘? ------鲁大师 B…

关于开机时候的一些问题

【小工具&小技巧】——致力于让工作生活更加便捷高效! 每次开机出现对话框failed to create conexant audio factory,the smartaudio will now exit怎么解决 是声卡驱动的问题,下载驱动精灵等可以软件,卸载并重装驱动即可。ps.驱动精灵真…