技术文章
SuccessFactors集成为初学者-连接与OAuth
作品简介:
最近SuccessFactors发布了Note #2970369声明API使用的基本认证(从2022年开始)即将结束。下面的博客将展示我们如何使用现有的OAuth2身份验证方法连接,使用SAP Integration Suite从SuccessFactors获取数据。
免责声明:
本博客只是从技术上解释如何在SAP CPI中实现基于OAuth的身份验证SuccessFactors基于集成。
请注意SAP云集成更新了现有的适配器来内部处理OAuth,本博客只是为了了解替代的技术方法。
有关在SAP Cloud Integration中使用SFSF适配器处理OAtuh的更简单和SAP建议的方法,请参阅博客文章。
SAP CPI现有的SuccessFactors - OData适配器有什么问题?
SuccessFactors OData V2适配器支持基于OAuth SAML的身份验证,但它不足以实现从SuccessFactors OData V2获取数据的身份验证过程的端到端场景(参见限制)kba - 2986720)使用SAP CPI。
我们将创建一个小演示,看看我们如何利用HTTP和OData适配器实现相同的功能。
当前进程使用OAuth(使用Postman)从SuccessFactors Employee Central获取数据。
设置:SuccessFactors一如其名
导航到管理中心->管理OAuth2客户端应用程序->注册
如下所示填写必需的详细信息。
点击生成X.509证书然后填写如下所示的详细信息,然后“生成”
一旦你点击生成屏幕自动回到前一个给选项下载私钥和证书。
下载.pem文件。包含私钥和证书。(可以在notepad++中看到)。获取一份私钥副本,以便在我们的集成中进一步使用。
SAP集成服务设置:
登录到您的SAP CPI租户,并使用下面的设计创建一个新的流。
如果您对SAP CPI非常陌生,那么请按照下面的教程进行熟悉。
块1:
它的主要我捕获过程按照下面的方式配置。
步骤一:
添加内容修改器并添加所有参数(就像您想要控制日志记录一样)。在上述设计中,您可以选择。
步骤b:
添加过程调用打电话给本地整合过程- GetSAMLAssertion(在第2部分涵盖)
步骤c:
添加过程调用打电话给本地整合过程- GetAuthToken(包含在Block - 3中)
步骤d:
添加过程调用打电话给本地整合过程- GetUserData(包含在第4部分)
第二块:
本地整合过程它用于从SuccessFactors获取SAML断言。
步骤一:
添加内容修改器详情见身体部分。所有详情请参阅上述OAuth申请表。
client_id = < client_id > user_id = < technicaluser > &token_url = https://apisalesdemo4.successfactors.com/outh/token&private_key= < private_key >
步骤b:
添加请求-应答与HTTP带有配置的接收器适配器(API服务器取决于您的SF实例)。
步骤c:
添加脚本记录断言代码(仅供参考)。
进口com.sap.gateway.ip.core.customdev.util.Message;进口java.util.HashMap;def Message processData(Message Message) {def body = Message . getbody (java.lang.String) as String;def messageLog = messageLogFactory.getMessageLog(message);messageLog。addAttachmentAsString("SAML_Assertion:", body, "text/xml");返回消息;}
块3:
本地整合过程从SuccessFactors获取不记名令牌。
步骤一:
添加C用修改器详情如下。
消息HeadeR应该是一个低于这个值的常数。
名字 | 价值 |
内容类型 | 应用程序/ x-www-form-urlencoded |
身体部分的内容修饰符应该有以下值(替换为SuccessFactors的详细信息,如公司id和客户id)。
company_id = < company_id > CLIENT_ID = < CLIENT_ID > &grant_type = urn: ietf:参数:oauth: grant-type: saml2-bearer&assertion = $ {in.body}
步骤b:
添加HTTP接收器适配器从SuccessFactors获取承载令牌。
步骤c:
添加脚本步骤解析承载令牌并将其设置为后续调用的标头。
进口groovy.json。*;进口com.sap.gateway.ip.core.customdev.util.Message;进口java.util.HashMap;def Message processData(Message Message) {//Body def Body = Message . getbody (String.class);def jsonSlurper = new jsonSlurper () def list = jsonSlurper. parsetext (body) def token="Bearer "+list.access_token. tostring ();//Headers def map = message.getHeaders();消息。setHeader(“授权”,令牌);返回消息;}
步骤d:
可选脚本记录有效负载的步骤。
第四块:
本地整合流程打电话索取用户数据从SuccessFactors.
步骤一:
步骤b:
记录有效负载以查看SuccessFactors的用户详细信息。
部署你的flow来查看端到端结果。
希望这有助于了解一步一步的细节,实现互联互通。
问候,
Sriprasad Shivaram Bhat
非常好的博客。我希望SAP能进一步简化互联互通。
很容易理解,感谢您在SuccessFactors中详细分享新的连接方法。
谢谢你!
Syam
谢谢Sriprasad Shivaram Bhat用于使用现有功能向Successfactor共享Oauth身份验证的逐步详细信息。
SAP是否有升级Successfactor Odata标准适配器以接受相同或增强oauth功能的路线图?
问候,
Souvik
你好Souvik,
随着时间的推移,它应该是可用的,但不确定发布的确切时间框架。
问候,
Sriprasad Shivaram Bhat
太棒了!!期待消息的公布。
问候,
Souvik
对于初学者来说非常重要和清晰。谢谢你!Bhat ! !
嗨Sriprasad,
我已经通过POSTMAN和CPI成功获得了断言。但是,在获得Token时,我得到了“401”错误(在CPI和POSTMAN中)。请指教。
谢谢你,
Vivek耆那教徒的
嗨Sriprasad,
PFA是来自CPI的误差。
谢谢你,
Vivek耆那教徒的
你好,Vivek,
请分享OAUTH详细信息屏幕的截图,以及您正在使用的用户是否拥有所有所需的访问权限(API用户)。
问候,
Sriprasad Shivaram Bhat
嗨Sriprasad,
谢谢你的博客。
我能够通过Postman成功地测试OAuth SAML承载断言。
我们在SAP CPI安全材料中有一个工件类型OAuth SAML承载断言。我尝试在CPI流中使用Artifact。但是流失败,出现以下错误。
com.sap.网关.core.ip.component.odata.exception. osciexception:当尝试调用从本地变量'principalToken'加载的空对象的方法com.sap.it.rt.scc.connectivity.security.IToken.getSAMLToken(java.lang.String)时,原因:java.lang.NullPointerException:当尝试调用从本地变量'principalToken'加载的空对象的方法com.sap.it.rt.scc.connectivity.security.IToken.getSAMLToken(java.lang.String)时
我想了解-博客中解释的过程与SAP CPI Artifact OAuth2 SAML承载断言(SuccessFactors)不同吗?
谢谢你!
问候,
Jaya
你好Jaya,
如果您浏览了完整的博客,将不胜感激,上面的问题的原因在几个KBAs中提到。
问候,
Sripraad Shivaram Bhat
感谢你的帮助,我们有一些人刚刚开始整合,这肯定会帮助他们起步。
你好Sriprasad Shivaram Bhat,
当我对OAuth2SAMLBearerAssertion流进行研究时,我已经将您的博客添加了书签LOB应用程序。
我非常欣赏您描述的利用SFSF OAuth客户机idp端点生成小承载断言的解决方案的清晰度。(顺便说一句,你的博客也很好地介绍了Integration Suite的CPI部分)。
长话短说。
作为我自己研究的结果,我提出了下面的博客文章,描述了使用SuccessFactors实现OAuth2SAMLBearerAssertion的其他方法(包括使用SAP BTP和不绑定BTP),即SAPSuccessFactors与OAuth2SAMLBearerAssertion流的集成。
亲切的问候
彼得亚雷
嘿,Sriprasad,
首先感谢你的博客,我试过了,效果很好。
SAP在实例刷新和创建低级开发和QA系统中创建的OAuth客户端备份方面的指导是什么?是否有办法下载备份,以便将相同的证书和密钥添加回来?
问候
Prasenjit
你好Sriprasad,
SAP PO和SAP CPI上SFSF发送器适配器的“OAuth”模式可用性有任何更新吗?
根据KBA note-3061465 -在SAP流程编排(PO)中SFSF适配器中支持OAUTH,这应该在2021年底之前可用
客户方面需要此信息来准备变更、测试和时间表等
问候,
Naresh
你好Naresh,
OAuth已经在SAP CPI发送方和接收方SFSF适配器中可用。
//www.bouseh.com/2021/03/26/sap-cloud-integration-oauth2-saml-bearer-x.509-certificate-authentication-support-in-successfactors-connector/
问候,
Sriprasad Shivaram Bhat