点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我正在尝试在HANA XS Classic应用程序和C4C租户之间建立oAuth通信以使用SSO方案。 不幸的是,我们遇到了一个错误(见下文)。
环境:
-SAP Cloud中的C4C租户
-HANA XS Classic(1.0 SPS 12)应用程序正在SAP Cloud Platform(NEO)上运行
-HTML5应用程序正在SAP Cloud Platform(NEO)上运行,称为HANA XS Classic Backend
-身份提供者是连接到C4C和SAP Cloud Platform(座舱)的Microsoft Azure平台(使用SAML2)
我们能够使用身份验证类型" AppToAppSSO"和"目标"中的相关数据在SAP Cloud Platform Cockpit(HTML5 App)和C4C之间建立有效的oAuth连接。 因此,通过Azure进行身份验证的用户可以使用SAP Cloud上的HTML5应用程序,并且可以通过SSO从该HTML5应用程序访问C4C。 此外,HTML5 App和HANA XS Classic后端之间的AppToAppSSO也可以使用。 很好。
但是,HANA XS还需要为使用HTML5应用程序的用户以相同的天蓝色身份验证访问C4C。 对于这种情况,我们对C4C oAuth的配置(XSHTTPDEST,XSOAUTH ...)不起作用。 我们关注了这些帮助门户网站:
当我们使用XSJS脚本向C4C发送请求时,会在XSJS跟踪中收到此错误:
2018-06-13 08:30:19.686140 e XSOAuthClient OAuthHTTPRequest.cpp(00412):响应正文:{"错误":" invalid_grant"," error_description":""提供的授权授予无效。例外是: 实体与客户端242中的 XXX.hana.ondemand.com 之间没有信任。对于 有关更多信息,请查阅内核跟踪或OAuth 2.0故障排除SAP注释1688545。" }
请参阅注释 https://launchpad.support.sap.com/#/notes/1688545 ,则C4C上的oAuth配置可能无效。 我们认为,在将证书导入C4C端的oAuth配置中时,我们做错了(我们只是通过Chrome中的"安全性"按钮从浏览器网址中导出了HANA XS证书)。 我们需要从HANA XS实例导出的"适当的"签名证书吗?
感谢您的帮助!
xsoauthclientconfig:
{
" clientFlavor":" XXX.XXX.oAuthTest:C4C",
" clientID":" XXX",
" clientAuthType":"基本",
" authorizationEndpointURL": "/img/sap/bc/sec/oauth2/authorize"," tokenEndpointURL":"/img/sap/bc/sec/oauth2/token"," revocationEndpointURL":"/img/sap/bc/sec/oauth2/revoke",
" flow":" saml2Bearer",
"描述":" C4C的OAuth客户端",
" samlIssuer":" XXX.hana.ondemand.com "," redirectURL":" XXX.hana.ondemand.com :443/sap/hana/xs/oAuth/lib/runtime/tokenRequest.xsjs",
" scopeReq":" maxScopes",
" shared":" true",
" modify":""
}
请注意:某些信息以XXX代替
亲爱的指甲,
我看到samlIssuer当前设置为:" XXX.hana.ondemand.com "。 如前所述,您的身份提供者是Microsoft Azure。 我建议您将其用作samlIssuer,因为SAML令牌是从Azure IdP创建的。
最诚挚的问候
格雷戈尔
亲爱的格雷戈尔,谢谢您的回答。 实际上,我们更改了两件事:
1)将samlIssuer设置为Azure IDP
2)从HANA XS Admin导出"自己的证书",并将其导入C4C oAuth Client。
现在,我们已更改了行为-调用测试脚本并使用Azure凭据登录时,我们将重定向到
https://xxx.hana.ondemand.com/sap/hana/xs/saml/login.xscfunc
并获取响应正文
ResponseMessage中的StatusCode!= OK; 请参考数据库跟踪以获取更多信息
HANA XS Engine跟踪说:
2018-06-19 08:15:11.896766 e XSSession XSSessionLifecycle.cpp(00339):用户xxx.yyy@domain.tld的断言身份验证失败,原因是:内部处理错误(StatusCode:,StatusMessage:)
在跟踪中正确说明了用户邮件地址,因此应该可以成功通过Azure进行身份验证,但是我们无法转发到最初请求的URL(测试脚本)。
有什么想法吗?
最诚挚的问候
尼尔斯
一周热门 更多>