三方系统集成SF(SuccessFactors),实现单点登录要点

news2024/11/18 8:42:30

在笔者先前的文章——《基于saml2.0的平台(适用多种平台)单点登录配置,以okta为例》中,详细介绍了如何把一个自开发的三方系统,集成到okta或者IAS平台。

经过笔者的实际工作经验,发现SF自己本身其实也可以作为一个单点登录平台来使用。

具体场景:

自开发的三方系统(JAVA)需要和SF系统进行单点登录集成,在前面的文章中,我们为了和SF系统集成,是通过外部的单点登录平台IAS来实现的,在这里其实是可以一步到位直接和SF进行集成的。

因为SF自身也是一个产品,它也提供了类似于单点登录平台的作用,所以可以不需要IAS平台,直接在SF自身的平台配置单点登录。

解决方法:

下面介绍下具体的方法。

SF的单点登录配置特别简单,首先登录SF专用的配置网址。

再进入特定的配置界面:

第一步:这里的重点就是截图中文字描述的,首先下载idp认证服务器的xml,其实就是认证服务器的公钥证书,下载到自开发服务器后,以后的单点登录认证就通过这个idp来完成。

第二步:配置SSO参数,可以参考上一篇文章,基本保持一致,这里不需要把自开发服务生成的metadata.xml文件上传到这里单点配置。

SF单点登录与IAS平台级配置区别:

上面介绍的都是很简单的配置,只要详细的看完了上一篇文章,这个配置就没问题。

这里重点说一下SF单点登录和IAS单点登录配置的不同之处。

最大的不同在于,当在自开发项目中,当调用单点登录接口/saml/login成功后会通过浏览器自动跳转到/saml/SSO。问题的关键在于请求的域名和http方式,如果是IAS平台集成,会跳转到IAS平台自己配置好了前缀的/saml/SSO接口,比如https://ias.idp.com/saml/SSO。

但是如果是SF的单点登录配置,它不会自动的按照SF平台配置的/saml/SSO链接调用,它只会根据当前自开发服务器的ip地址来自动跳转比如:http://10.10.10.10:80/saml/SSO。

在平时的开发中,其实都好说,主要是当需要生产上线的情况,需要通过域名和证书访问。

这时候SF却不能够像IAS一样,只要在SSO配置的地方配置好就行,只能通过代码的形式来实现把本机ip替换成指定的域名和端口。

这里的解决方法是通过Nginx请求头配置和Tomcat的流程引擎——RemoteIpValve来控制,在tomcat执行请求的过程中,把本地ip替换成指定的域名。

关于tomcat的RemoteIpValve流程引擎原理,也有一篇专门的文章讲解,有兴趣可以去看看。

 下面说下具体的解决办法:

Nginx配置:

 

location / {
           #请求使用https
           proxy_set_header X-Forwarded-Proto https;
           #本机ip替换为指定域名
           proxy_set_header X-Forwarded-Host test.baidu.com;
           #使用指定的端口
           proxy_set_header X-Forwarded-Port 8082;
           proxy_pass http://10.10.10.10:8090;
        }

Tomcat配置:

server:
  tomcat:
    remoteip:
      protocol-header: X-Forwarded-Proto
      protocol-header-https-value: https

就这样,通过Nginx在请求头配置一系列指定的参数,可以把tomcat接收到的请求http://10.10.10.10:80/saml/SSO,直接动态转换为https://test.baidu.com:8082/saml/SSO。

这样就直接解决了在SF单点登录之初,从saml/login无法转向我们需要的saml/SSO请求的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MCU-51:初识单片机,从点亮一个灯开始

题目一、什么是单片机二、点亮一个LED灯2.1 LED原理和知识2.2 方法一2.3 方法二一、什么是单片机 单片机又称单片微控制器,把一整个计算机系统集成到一个芯片上,当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。一块芯…

文字语义纠错技术探索与实践-张健

背景 文本语义纠错的使用场景非常广泛,基本上只要涉及到写作就有文本纠错的需求。书籍面市前就有独立的校对的环节来保障出版之后不出现明显的问题。在新闻中我们也时不时看到因为文字审核没到位造成大乌龙的情况,包括上市公司在公开文书上把“临时…

并行计算(MPI + OpenMP)

文章目录并行计算MPI(进程级并行)基本结构数据类型点对点通信阻塞非阻塞非连续数据打包聚合通信Communicator & Cartisen GridOpenMP(线程级并行)简介基本制导语句worksharing constructSectionsSingleFor临界区 & 原子操…

React 学习笔记总结(三)

文章目录1. React( v16.8 版本) 生命周期2. React( v16.8 版本) 生命周期 更新流程2.1 三个更新流程2.2 setState()的生命周期流程(对应上图2号线)2.3 forceUpdate()的生命周期流程(对应上图3号线)2.4 父组件render()渲染的生命周期流程(对应上图1号线)2.5 React( v16.8 版本)生…

“学了一个我不感兴趣的专业,要不要转行IT?”

“这个专业太无聊了,我想转行……” “你想转去干什么?” “我对金融感兴趣,听说金融很赚钱,我想学金融……” “你感兴趣为什么课后不去钻研,而要选择打游戏?” “以后再慢慢来嘛……” “可是你已经…

报表工具-FineReport JS实现参数面板显示对应数据

1. 概述 1.1 版本 报表服务器版本 功能变更 11.0 -- 1.2 预期效果 1.3 实现思路 对照填报界面的章节,在参数界面也用 SQL 语句实现对应数据的展示 ,当第一次打开模板时,标签不显示可以通过JS 控制实现。 2. 示例 2.1 新建模板 新建普通…

设计模式-牛刀小试01

前言 本文为datawhale2022年12月组队学习《大话设计模式》task4打卡学习,本次完成homework1。 【教程地址】https://github.com/datawhalechina/sweetalk-design-pattern 一、任务描述 1.1 背景 小李已经是一个工作一年的初级工程师了,他所在的公司是…

靶机练习——vulnstack1

下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ 注意事项 密码一定要设置为不同的 部署环境 根据红日安全出具的wp,我们只需要设置两个C段即可,分别是外网的72和内网的52,这里直接添加新的网络以及子网地址即可&…

十三、DockerFile构建增强版本centos7

1、概述 在Docker 常用命令篇中,我们已经知道了2中构建镜像的方式 export\import 和 commit方式。这两种方式都需要先运行并创建容器,然后在容器中安装vim、ifconfig等命令,然后再重新构建加强版的镜像,比较麻烦。Dockerfile通过…

2022CTF培训(九)MIPS PWN环境搭建MIPS PWN入门

附件下载链接 环境搭建 在 ARM PWN 环境搭建 的基础上,首先安装具备MIPS交叉编译gcc与MIPS程序动态链接库: sudo apt-get install gcc-mips-linux-gnu sudo apt-get install gcc-mipsel-linux-gnu sudo apt-get install gcc-mips64-linux-gnuabi64 su…

【CANN训练营第三季】Ascend平台体验Pytorch笔记

模型迁移 手册地址:https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/600alpha002/ptmoddevg/ptmigr/ptmigr_000009.html 主要修改: 导入相关库 import torch import torch_npu #1.8.1及以上需要指定NPU设备 通过device()指定 …

JDBC编程步骤、JDBC API详解和数据库连接池

前言: JDBC 就是使用Java语言操作关系型数据库的一套API ,全称:( Java DataBase Connectivity ) Java 数据库连接。官方(sun公司)定义的一套操作所有关系型数据库的规则,即 接口各个数据库厂商去实现这套…

工具及方法 - Process Explorer以及类似工具,用来获取系统运行的进程信息

下载Process explorer: Process Explorer - Sysinternals | Microsoft Learn Process explorer简介 有没有想过哪个程序打开了一个特定的文件或目录?现在你可以找到了。Process Explorer向你显示关于进程打开或加载的句柄和DLL的信息。 Process Explore…

[Python图像处理] 使用 HSV 色彩空间检测病毒对象

使用 HSV 色彩空间检测病毒对象前言检测病毒对象相关链接前言 在本节中,我们将学习如何使用 OpenCV 在 HSV 色彩空间中使用特定颜色检测感兴趣对象。我们需要通过指定颜色值范围识别和提取感兴趣的对象,使用具有病毒的血细胞图像,我们的目标…

Python 自动化测试(五): Pytest 结合 Allure 生成测试报告

本文节选自霍格沃玆测试学院测试开发内部教材,进阶学习文末加群! 测试报告在项目中是至关重要的角色,一个好的测试报告: 可以体现测试人员的工作量; 开发人员可以从测试报告中了解缺陷的情况; 测试经理可…

7.Linux实用操作(2)

文章目录零、学习目标一、进程管理1、概念2、查看进程3、查看指定进程4、关闭进程二、主机状态1、查看系统资源占用2、top命令内容详解3、top命令选项4、top交互式选项5、磁盘信息监控三、上传、下载1、上传、下载2、rz、sz命令四、压缩、解压1、压缩格式3、tar命令4、tar 命令…

后端开发浅学react

博客笔记来自于学习 柴柴老师在b站分享的react学习视频,仅供学习参考,学习视频是来自于b站的:柴柴_前端教书匠,视频链接:React入门到实战(2022全网最新)_哔哩哔哩_bilibili 和 react官网 开始 – React …

谁会嫌钱多啊,最适合学生党的Python兼职攻略以及接私活经验

大家好,我是小八 这次我想谈谈一个非常热门的话题,就是如何在学习python的同时去赚钱。在这篇文章中,你会学习到如何通过学习python来赚取副业收入。 相信大家都对钱感兴趣吧,如果你和马云爸爸对钱不敢兴趣的话,那这…

Lambda表达式从用到底层原理

文章目录前言一、lambda函数基本使用参数列表返回类型函数体捕获列表值捕获引用捕获隐式捕获混合方式捕获修改值捕获变量的值异常说明二、lambda表达式使用的注意事项避免默认捕获模式三、lambda表达式底层实现原理采用值捕获采用引用捕获前言 lambda式作为一种创建函数对象的…

Python tkinter -- 第18章 画布控件之多边形

18.2.19 create_polygon(coords, **options) 根据 coords 给定的坐标,在画布上绘制一个多边形。 (1)coords:给定多边形的坐标 (2)options:选项的具体含义: 选项含义activedash当鼠标…