OAuth 2.0客户端的客户端凭据授予类型

2020-08-24 16:28发布

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

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


你好,

我正在尝试使用本指南配置OAuth 2.0客户端:

https://help.sap.com/查看器/3c4e8fc004cb4401a4fdd737f02ac2b9/7.5.6/zh-CN/9d11c44aabc74ea7b8e78e244d76e055.html

问题是不支持" 客户端凭据"授权类型。 在接口if_oa2c_specifics〜get_supported_grant_types中,只有以下四种:

  • 授权码授予
  • SAML 2.0声明授予
  • 刷新
  • 撤销

是否可以使用"客户端证书"授予类型?

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

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


你好,

我正在尝试使用本指南配置OAuth 2.0客户端:

https://help.sap.com/查看器/3c4e8fc004cb4401a4fdd737f02ac2b9/7.5.6/zh-CN/9d11c44aabc74ea7b8e78e244d76e055.html

问题是不支持" 客户端凭据"授权类型。 在接口if_oa2c_specifics〜get_supported_grant_types中,只有以下四种:

  • 授权码授予
  • SAML 2.0声明授予
  • 刷新
  • 撤销

是否可以使用"客户端证书"授予类型?

付费偷看设置
发送
8条回答
亦是此间程序员
1楼 · 2020-08-24 16:56.采纳回答

现在我只使用简单的自定义解决方案:

  1. cl_http_client调用#1-使用grant_type = client_credentials的令牌端点,接收令牌
  2. cl_http_client调用#2 -到API终结点,已收到令牌作为Authorization
Haoba3210
2楼-- · 2020-08-24 16:35

嗨,Tomas,
感谢您的快速答复。 不幸的是它没有用。 我仍然像在我的第一个问题中一样最终将密码移动到外部。 我试图避免从外部移动密码,而是想从我保存用户名和密码的RFC目标中使用密码。

谢谢,
Praveen

lukcy2020
3楼-- · 2020-08-24 16:33

感谢Tomas,我也必须这样做。

不确定为什么SAP支持云解决方案而不是内部ERP的客户端凭据。

您是否还构建了存储令牌的任何东西,例如加密和解密?

落灬小鱼
4楼-- · 2020-08-24 16:58

否,我在调用#2(直接到主API端点)中直接使用令牌。

< p>但是,如果您最终获得了定制的ABAP解决方案,那么使用检索到的令牌就没有边界了:-)例如,您可以将其存储在带有时间戳的表中,然后调用API并检查令牌是否仍然有效或 检索新的。

ZJXianG
5楼-- · 2020-08-24 16:40

Hello Tomas,

我很好奇您最终是如何实现您的certificate_grant解决方案的。 我遇到了类似的问题,如果可以的话,我想详细了解您的经验:)

您是否最终重新定义/创建了自己的cl_oauth2_s_token_endpoint? 我读到您没有将其保存在任何地方,因此您是否每次请求都得到一个新的? 您是否在cl_oauth2_s_prot_auth_code上使用了相同的逻辑,还是自己使用了?

您是否有机会共享代码的一部分以更清楚地了解?

非常感谢您。
Kr,

Vicente

My梦
6楼-- · 2020-08-24 16:41
Hello Vicente,
  1. 我们在谈论服务器还是客户端? 我最初的问题是关于客户端(使用OAuth 2.0从SAP致电第三方端点)。 但是您的类CL_OAUTH2_S_TOKEN_ENDPOINT看起来更像是"服务器"(SAP侧的OAuth 2.0端点)。
  2. 无论如何,我都创建了自己的解决方案,如我在标记答案中所写。 两个简单的cl_http_client调用。 是的,我最终开始保存" token_type"," access_token"和" expires_in"值。 在" get toke"调用之前,我正在检查所保存的令牌是否仍然有效(expires_in为秒值)。 顺便说一句,为了安全起见,我将"阈值"设置为30秒。 如果您有任何疑问可以询问。 但是最后,它只是HTTP调用。
骆驼绵羊
7楼-- · 2020-08-24 16:45

嗨,Tomas,谢谢您的答复!

是的,我正以相反的方式思考这一问题,其中SAP是oAuth服务器,而我正在尝试从第三方连接到SAP。 我可能需要动手使用SAP云解决方案,以了解它们如何支持那里的流程:)

谢谢!

Kr,

一周热门 更多>