如果在SAML响应中传递了正确的属性,为什么AS JAVA SAML2LoginModule会中止?

2020-08-31 17:58发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我已将我的AS JAVA应用程序配置为使用SAML2,目的是创建要传递到我的AS ABAP应用程序(浏览器中的CRM)的登录凭单。

我遇到的问题是(按顺序进行):

1)发送SAML身份验证,并从身份提供者接收到SAML响应。

2)收到SAML响应后,SAML2LoginModule被配置为采用两个属性(R3User和SAP Client),并将其放入登录凭单中以发送给ABAP应用程序。 此步骤失败。

3)在JAVA日志中,找到了两个与SAML2LoginModule相关的条目。

a)第一个日志条目显示LOGIN FAILED,详细信息=由于缺少凭据而导致的身份验证质询

b)第二个日志条目说:登录OK,详细信息-已使用的已声明的断言,以及属性和值等于正确的SAP客户端和正确的AS ABAP系统中存在的R3User ID。

因此,令人困惑的是两个SAML2日志条目说出了似乎相反的内容。 第一个失败,并显示"缺少凭据"消息,第二个条目正常,并传递了预期的SAML属性。

此外,当检查是否创建了登录票证时,我确实看到浏览器发送和接收了MYSAPSSO。

因此,不确定要对SAML配置进行哪些更改以使其成功通过浏览器将用户登录到AS ABAP系统?

任何帮助,我们都应感谢方向。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我已将我的AS JAVA应用程序配置为使用SAML2,目的是创建要传递到我的AS ABAP应用程序(浏览器中的CRM)的登录凭单。

我遇到的问题是(按顺序进行):

1)发送SAML身份验证,并从身份提供者接收到SAML响应。

2)收到SAML响应后,SAML2LoginModule被配置为采用两个属性(R3User和SAP Client),并将其放入登录凭单中以发送给ABAP应用程序。 此步骤失败。

3)在JAVA日志中,找到了两个与SAML2LoginModule相关的条目。

a)第一个日志条目显示LOGIN FAILED,详细信息=由于缺少凭据而导致的身份验证质询

b)第二个日志条目说:登录OK,详细信息-已使用的已声明的断言,以及属性和值等于正确的SAP客户端和正确的AS ABAP系统中存在的R3User ID。

因此,令人困惑的是两个SAML2日志条目说出了似乎相反的内容。 第一个失败,并显示"缺少凭据"消息,第二个条目正常,并传递了预期的SAML属性。

此外,当检查是否创建了登录票证时,我确实看到浏览器发送和接收了MYSAPSSO。

因此,不确定要对SAML配置进行哪些更改以使其成功通过浏览器将用户登录到AS ABAP系统?

任何帮助,我们都应感谢方向。

付费偷看设置
发送
3条回答
SC_Yao
1楼-- · 2020-08-31 18:34

嗨,保罗,我不太了解您的情况。

您必须注意三个步骤:

  • 验证您的AS JAVA
  • 为AS JAVA创建MYSAPSSO2票证(!),其中可能包含AS AS的附加用户ID
  • SSO,并利用AS JAVA的MYSAPSSO2 cookie(如 只要您未配置要用于AS ABAP的断言票证)

您的AS JAVA用户ID和用户存储库是什么?

您的AS是什么 ABAP用户ID? (是否需要映射?)

总是为原始系统(在本例中为AS JAVA)创建MYSAPSSO2票证,该票证包含原始系统SID(例如" J2E"),客户端(默认为" 000" AS JAVA),用户ID和后端的映射SSO用户ID。

致谢,Lutz

Alawn_Xu
2楼-- · 2020-08-31 18:34

嗨,Lutz,感谢您提供信息。 这是对我的方案的更好描述:*注意,我正在使用此SAP Wiki中提供的解决方案:
https://wiki.scn.sap.com/wiki/display/Security/ Single + Signing + with + SAML + 2.0 + and + ABAP + Systems + Supporting + SAP + Logon + Tickets

1)已将JAVA设置为服务提供者
2)已将外部组设置为身份提供者
3)已设置两个SAML IP和SP之间的信任关系
4) 由于UME不存储用户ID,因此已使用虚拟用户标识在SAML SP上已设置联盟。
*此外,来自身份提供者的用户的ID与目标ABAP系统中的ID相同。
5)已将目标ABAP系统设置为信任AS Java系统。
6 )SAP提供的Java应用程序用于将用户重定向到Identity Provider进行身份验证,身份验证后将其返回到Java应用程序,该Java应用程序将评估SAML响应,对用户进行身份验证,创建登录票证并将用户重定向回 最初访问的应用程序。
6)在ABAP系统上,已链接到Java应用程序以启动所有这些程序。 此时,已经遵循了Wiki中列出的所有步骤,并且在Java应用程序中创建了一个MYSAPSSO2 cookie,并将其发送到ABAP系统(该系统已设置为接受登录票)。

但是,用户仍未登录,并且在Java日志中,唯一的警告是此登录错误,SAML2LoginModule的LOGIN FAILED登录失败,指出"由于缺少凭据而导致的身份验证挑战"。

还有其他想法吗? 赞赏反馈。

Paul

haha101010
3楼-- · 2020-08-31 18:40

嗨Paul,

Uups,我根本不知道临时用户完全可以在AS JAVA上工作。

请放心:您的ABAP系统太旧,无法单独执行SAML2身份验证?

对于AS JAVA端的错误分析,您是否已经使用NWA->故障排除->日志和跟踪中提供的"安全故障排除向导"? 通常,这对于获取登录问题的更详细的错误信息很有帮助。

祝您好运! 卢茨

一周热门 更多>