2020-09-04 05:06发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
使用sapgui的用户在sapgui屏幕之一上按下一个按钮,从而触发本地开发的Web dynpro应用程序。 我们希望用户无需用户名或密码即可登录该应用程序。 我找不到有关如何实现此目标的任何文档。
为SSO配置了系统。
谢谢
Boaz
不同SAP服务器与第三方服务器之间的SSO,而不是客户端与服务器之间的SSO。
您正在从客户端运行WDA应用程序,它肯定会询问用户ID和密码。
如果您不需要登录页面,则可以在SICF中设置WDA应用程序的登录凭据。
Abhi
>
>不同SAP服务器与第三方服务器之间的SSO,而不是客户端与服务器之间的SSO。 >您正在从客户端运行WDA应用程序,它肯定会询问用户ID和密码。 > Abhi
>不同SAP服务器与第三方服务器之间的SSO,而不是客户端与服务器之间的SSO。
>您正在从客户端运行WDA应用程序,它肯定会询问用户ID和密码。
> Abhi
那是完全不正确的。 今天是您第二次肯定地提供了错误的信息。 您是论坛的常客,但这只会使您的错误信息更加危险。 请保持警惕。
现在回答:
SSO通常是为客户端和服务器以及服务器到服务器而设计的。 SAPGUI还有一个特殊的SSO模式。 这样就可以从SE80启动Web Dynrpo或BSP应用程序而不会提示您进行身份验证。
所有这些都通过类cl_gui_html_viewer完成。有一个名为ENABLE_SAPSSO的方法。 这是一个特殊票证,仅在SAPGUI HTML容器的上下文中有用。 但是,还有一种gui html查看器也可以在新窗口中打开的方法。
DATA:URL TYPE字符串,urlc(2048)TYPE c。 *构建URL-但是您想这样做 urlc =网址。 "将类型STRING转换为C 数据:查看器类型参考cl_gui_html_viewer。 数据:empty_container类型参考cl_gui_container。 创建对象查看器EXPORTING parent = empty_container。 调用方法查看器-> enable_sapsso 启用导出='X' 其他除外= 1。 呼叫方法查看器-> DETACH_URL_IN_BROWSER 导出网址=网址c。 cl_gui_cfw => flush()。
你好 Thomas Jung ,
我知道这个线程已经很老了,但是我在为从ABAP执行SICF服务而又不丢失连接会话的要求中苦苦挣扎。
我已经在尝试您提出的解决方案:
创建对象lo_gui_html_viewer 出口 父母= lo_gui_container 例外情况 其他= 0。 调用方法lo_gui_html_viewer-> enable_sapsso 出口 已启用='X' 例外情况 其他= 0。 呼叫方法lo_gui_html_viewer-> detach_url_in_browser 出口 网址= lv_url 例外情况 其他= 0。 cl_gui_cfw => flush()。
但是最后,浏览器打开,尝试访问这种URL:
http://<服务器>:<端口>/sap/public/myssocntl?sap-client = <客户端>
我收到500个内部服务器错误
关于我的代码/系统中可能存在什么错误的任何想法?
我要执行的URL是为配置文件(/sap/bc/sec/oauth2/client/grant/authorization/?profile = )请求OAuth 2.0令牌。
谢谢!
最诚挚的问候,
Marco Silva
好吧,我想确保代码示例在其十多年的历史中仍能正常工作。 我在S/4 1809系统(7.53)上重新创建了测试程序:
REPORT zbrowser_launch_test。 数据:empty_container类型参考cl_gui_container。 DATA(查看器)=新cl_gui_html_viewer(父= empty_container)。 viewer-> enable_sapsso(enabled = abap_true)。 查看器-> detach_url_in_browser(url =`http://hanapm.local.com:8000/sap/bc/webdynpro/sap/demo_value_help?sap-client = 000`)。 cl_gui_cfw => flush()。
它运行良好:
因此,代码和概念仍然有效,因此我不得不猜测您的系统的系统配置中存在某些问题。 但是,我无法对您的系统一无所知。 我们上面的系统是非常漂亮的S/4,几乎没有后期安装配置。 我什至没有配置HTTPS。
在一个类似的主题中,SAP的Thomas Jung在这个论坛上写道。 我引用:
使用独立的ABAP SSO最好的办法是提示用户进行一次身份验证,然后从中生成票证。
唯一的例外是从SAPGUI独立启动WDA。 SAPGUI可以从SAP登录(SY-UNAME)生成SSO票证,仅可用于本地系统。 这样可以从SE80运行WD应用程序,而不会提示您进行身份验证。
有人可以向我解释如何使用此异常吗?
谢谢。
您始终可以使用URL参数-依次将它们转换为窗口启动插件的输入参数。 但是,通过URL参数可以传递多少数据是有限制的。 因此,如果我要传递的密钥不止一两个,我想将数据序列化为XML,然后将其写入服务器Cookie(基本上只是将其存储在临时数据库表中-但是如果您不熟悉这些类, -因为它们是为BSP创建的-这样做会让我知道,我可以发布一个示例),然后只需通过URL参数将密钥传递给服务器cookie。 然后,启动插件可以从URL参数中提取密钥并反序列化服务器cookie-添加到其自己的上下文中。
Thomas,
非常感谢您提供解决方案。
致谢
最多设置5个标签!
不同SAP服务器与第三方服务器之间的SSO,而不是客户端与服务器之间的SSO。
您正在从客户端运行WDA应用程序,它肯定会询问用户ID和密码。
如果您不需要登录页面,则可以在SICF中设置WDA应用程序的登录凭据。
Abhi
>
那是完全不正确的。 今天是您第二次肯定地提供了错误的信息。 您是论坛的常客,但这只会使您的错误信息更加危险。 请保持警惕。
现在回答:
SSO通常是为客户端和服务器以及服务器到服务器而设计的。 SAPGUI还有一个特殊的SSO模式。 这样就可以从SE80启动Web Dynrpo或BSP应用程序而不会提示您进行身份验证。
所有这些都通过类cl_gui_html_viewer完成。有一个名为ENABLE_SAPSSO的方法。 这是一个特殊票证,仅在SAPGUI HTML容器的上下文中有用。 但是,还有一种gui html查看器也可以在新窗口中打开的方法。
你好 Thomas Jung ,
我知道这个线程已经很老了,但是我在为从ABAP执行SICF服务而又不丢失连接会话的要求中苦苦挣扎。
我已经在尝试您提出的解决方案:
但是最后,浏览器打开,尝试访问这种URL:
http://<服务器>:<端口>/sap/public/myssocntl?sap-client = <客户端>
我收到500个内部服务器错误
关于我的代码/系统中可能存在什么错误的任何想法?
我要执行的URL是为配置文件(/sap/bc/sec/oauth2/client/grant/authorization/?profile =)请求OAuth 2.0令牌。
谢谢!
最诚挚的问候,
Marco Silva
好吧,我想确保代码示例在其十多年的历史中仍能正常工作。 我在S/4 1809系统(7.53)上重新创建了测试程序:
它运行良好:
因此,代码和概念仍然有效,因此我不得不猜测您的系统的系统配置中存在某些问题。 但是,我无法对您的系统一无所知。 我们上面的系统是非常漂亮的S/4,几乎没有后期安装配置。 我什至没有配置HTTPS。
在一个类似的主题中,SAP的Thomas Jung在这个论坛上写道。 我引用:
使用独立的ABAP SSO最好的办法是提示用户进行一次身份验证,然后从中生成票证。
唯一的例外是从SAPGUI独立启动WDA。 SAPGUI可以从SAP登录(SY-UNAME)生成SSO票证,仅可用于本地系统。 这样可以从SE80运行WD应用程序,而不会提示您进行身份验证。
有人可以向我解释如何使用此异常吗?
谢谢。
您始终可以使用URL参数-依次将它们转换为窗口启动插件的输入参数。 但是,通过URL参数可以传递多少数据是有限制的。 因此,如果我要传递的密钥不止一两个,我想将数据序列化为XML,然后将其写入服务器Cookie(基本上只是将其存储在临时数据库表中-但是如果您不熟悉这些类, -因为它们是为BSP创建的-这样做会让我知道,我可以发布一个示例),然后只需通过URL参数将密钥传递给服务器cookie。 然后,启动插件可以从URL参数中提取密钥并反序列化服务器cookie-添加到其自己的上下文中。
Thomas,
非常感谢您提供解决方案。
致谢
Boaz
一周热门 更多>