HANA XS和C4C之间的oAuth配置

2020-09-18 13:48发布

         点击此处--->   EasySAP.com群内免费提供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 ...)不起作用。 我们关注了这些帮助门户网站:

https://help .sap.com/viewer/b3d0daf2a98e49ada00bf31b7ca7a42e/1.0.12/zh-CN/6efe500d91ee462c85cce7609646e17a.html

https://help .sap.com/viewer/b3d0daf2a98e49ada00bf31b7ca7a42e/1.0.12/zh-CN/935805ae7f6641289a266b67e2a76704.html


当我们使用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代替

         点击此处--->   EasySAP.com群内免费提供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 ...)不起作用。 我们关注了这些帮助门户网站:

https://help .sap.com/viewer/b3d0daf2a98e49ada00bf31b7ca7a42e/1.0.12/zh-CN/6efe500d91ee462c85cce7609646e17a.html

https://help .sap.com/viewer/b3d0daf2a98e49ada00bf31b7ca7a42e/1.0.12/zh-CN/935805ae7f6641289a266b67e2a76704.html


当我们使用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代替

付费偷看设置
发送
2条回答
愤怒的猪头君
1楼-- · 2020-09-18 14:29

亲爱的指甲,

我看到samlIssuer当前设置为:" XXX.hana.ondemand.com "。 如前所述,您的身份提供者是Microsoft Azure。 我建议您将其用作samlIssuer,因为SAML令牌是从Azure IdP创建的。

最诚挚的问候
格雷戈尔

风早神人
2楼-- · 2020-09-18 14:07

亲爱的格雷戈尔,谢谢您的回答。 实际上,我们更改了两件事:

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(测试脚本)。

有什么想法吗?


最诚挚的问候
尼尔斯

一周热门 更多>