Oauth2

oauth2 core extension 已经取代了 webservicescommons/oauthauthorizationserver 扩展。 它将 HTTP 端点公开为 Authorization 服务器。 它没有引入任何新的重要功能。

To enable the authorization server, add the oauth2 extension entry into the localextensions.xml file:

<extension name="oauth2" />

支持的配置:

  • oauth2.refreshTokenValiditySeconds:Refresh token time-to-live,默认30天
  • oauth2.accessTokenValiditySeconds: Access token time-to-live,默认12小时

Authorization Server

The authorization server exposes two endpoints:

  • /oauth/authorize
  • /oauth/token

在 Chrome 开发者工具 local storage 里把 auth token 删除之后,随便在 UI 上再操作一下,会重新触发 token 请求:https://20.51.210.49:9002/authorizationserver/oauth/token

下图是新的 token 请求的 form data 字段,输入字段:

下图是服务器返回的新的 Access Token 和 Refresh token:

OAuth2 里的几个角色

  • 资源所有者:可以授予对受保护资源的访问权限的实体。 当资源所有者是个人时,则称为:最终用户。

  • 资源服务器:托管受保护资源的服务器,能够使用访问令牌接受和响应受保护资源请求。

  • 客户端:代表资源所有者并经其授权发出受保护资源请求的应用程序。术语客户端并不意味着任何特定的实现特征(例如,应用程序是否在服务器、桌面或任何其他特定设备上运行)。

  • 授权服务器:服务器在成功验证资源所有者并获得授权后向客户端颁发访问令牌。

  • 授权服务器在 Oauth2 中定义,示例资源服务器在 ycommercewebservices Extension 和 ywebservices Extension 中配置。

OAuth 2.0 带有四个流程。 SAP Commerce 支持所有这些:

  • 由于 Resource Owner Password Flow 持有用户的 username 和 password,因此安全性较低,不适用于第三方应用程序。

如果 Web 应用程序可以保留 client_secret,则最好使用授权代码流 Authorization Code Flow。

隐式流 Implicit Flow 不需要任何授权令牌。 因此,它更容易但不太安全。 在浏览器中运行的 JavaScript 不太受信任,并且不会发出刷新令牌。 这适用于需要临时访问的客户端 Web 应用程序。

客户端凭据流 Client Credentials Flow 使客户端可以访问其拥有的资源。

根据您的客户端应用程序,您需要选择合适的流程。您还需要禁用您不使用的其他流。

Resource Owner Password Flow

此流程有点类似于基本身份验证 basic authentication 流程,但它有一些好处。 它通常用于受信任的移动应用程序,例如移动 Android 或 iOS 应用程序。 该流程包括将用户的 username 和 password 发送到令牌端点以换取 <access_token>。 服务器端使用刷新令牌回复是可选的。 移动 client 否则必须保留用户名和密码以便长期访问。

流需要 username 和 password 来获得 access_token。 但是,请记住,API 提供程序提供结合了 refresh_token 的访问令牌。 因此客户端不需要保存用户名和密码,而只需要传递这些信息。 access_token 和 refresh_token 需要在本地持久化,这比存储用户凭证要好。 下图描述了此流程。

所呈现流程的详细说明:

步骤 (A):client 接收 username 和 password。在此步骤中,用户将此信息直接输入到客户端应用程序中。请注意,用户必须有办法将应用程序识别为他们可以信任的官方应用程序。

步骤 (B):接下来,客户端应用程序向授权服务器发出请求,例如 /oauth/token 端点。 client_id 和 client_secret 可以通过两种方式发送:在常规的基本身份验证请求标头中,或作为在请求有效负载(即请求正文)中传递的参数的一部分。查看要传递的参数列表:

client_id 和 client_secret:作为参数或作为基本身份验证标头传递。基本身份验证意味着 client_id 和 client_secret 被视为用户名和密码,使用冒号 (

SAP Commerce Cloud OAuth 实现介绍相关推荐

  1. SAP Commerce Cloud UI 的用户会话管理

    这是 Jerry 2021 年的第 51 篇文章,也是汪子熙公众号总共第 328 篇原创文章. 如无特殊说明,本公众号介绍的 SAP Commerce Cloud UI,均指新一代基于 Spartac ...

  2. 如何使用API的方式消费SAP Commerce Cloud的订单服务

    最近Jerry在做一个微信和SAP Commerce Cloud集成的项目,需要在微信里调用后者的Restful API进行订单创建和读取.以前Jerry对SAP Commerce Cloud知之甚少 ...

  3. SAP Commerce Cloud UI(Spartacus Storefront) 的用户会话管理

    这是 Jerry 2021 年的第 51 篇文章,也是汪子熙公众号总共第 328 篇原创文章. 如无特殊说明,本公众号介绍的 SAP Commerce Cloud UI,均指新一代基于 Spartac ...

  4. SAP Commerce Cloud SmartEdit 学习笔记

    官方文档 SmartEdit 是一个可插拔的 JavaScript 框架,附带一个 UI,使开发人员能够管理现有的网页. SmartEdit 生态系统由共同提供 SmartEdit 产品的 modul ...

  5. SAP Commerce Cloud 架构概述

    SAP Commerce Cloud Architecture 尽管我们在"SAP Commerce Cloud 入门"一文中介绍了 SAP Commerce Cloud 的一些高 ...

  6. SAP Commerce Cloud Storefront 框架选型:Accelerator 还是 Spartacus?

    Choosing Which Storefront to Use for Your SAP Commerce Cloud Solution 有许多使用 SAP Commerce Cloud 创建店面的 ...

  7. 将您的基于 Accelerator 的 SAP Commerce Cloud Storefront 迁移到 Spartacus Storefront

    原文:Migrate Your Accelerator-based Storefront to Project Spartacus 如果您已阅读过"迁移到 Spartacus javascr ...

  8. 如何构建和部署 SAP Commerce Cloud 项目

    原文链接 SAP Commerce Cloud 提供了许多自助服务功能来配置.构建和部署商务解决方案. 当您第一次开始使用时,似乎需要了解很多.在本文中,我们将带您逐步了解如何使用自助服务功能来配置您 ...

  9. SAP Commerce Cloud 新一代 UI Spartacus 和 Customer Data cloud 的集成

    SAP Customer Data Cloud Integration Spartacus 3.2 版可用. SAP Customer Data Cloud 允许您启用自定义注册和登录,还可以管理用户 ...

最新文章

  1. HEU 4048 Picking Balls
  2. javascript高级程序设计之面向对象的程序设计
  3. 计算机网络安装建设厂家,互联网工厂设备与安装总结报告(26页)-原创力文档...
  4. 关于 SAP Spartacus 服务器端渲染 SSR 无法使用窗口宽度以进行自适应设计的问题
  5. python3.7安装包百度云_Python-3.7.0软件安装包以及安装教程
  6. 成都电子计算机实验中学 孙蕾,痴迷物理 成都男孩保送清华最牛的计算机专业实验班...
  7. conda如何升级pytorch_第一节 PyTorch简介及环境配置
  8. strassen算法java_使用java写的矩阵乘法实例(Strassen算法)_Java_软件编程
  9. MySQL中创建用户
  10. IPFS打破传统经济流通特性
  11. 2016.09.03【初中部 NOIP提高组 】模拟赛A总结
  12. firefox改html内容,可以firefox扩展修改HTML文档的DOM然后保存为HTML吗?
  13. [存档]使用CxServer的7个战略原因
  14. 2022前端面试系列——Vue面试题
  15. 基于python的音乐数据分析_基于Python的亚马逊音乐产品评论分析
  16. 2018年中国房地产行业现状及行业发展趋势分析【转】
  17. 根除 ff新鲜事 互联网毒瘤
  18. 电大大学英语B 计算机应用基础,电大大学英语B统考 网考计算机应用基础统考.doc...
  19. [Python]基本语法
  20. 小狼毫自定义短语-Rime-双拼

热门文章

  1. android studio——替换全局的某个字符串
  2. Java+Windows+ffmpeg实现视频转换
  3. RHEL6基础之八查找、文件内容查看类命令
  4. PowerShell 2.0 实践(四)管理Windows进程
  5. 2012年第一篇博文——致谢:2011年中国IT十大杰出博客获奖感言
  6. sql 无法删除当前数据库,因为当前数据库正在使用
  7. 一个学习的好去处!!
  8. mybatis-plus中 queryWrapper查询对象常见方法
  9. UML模型中的图-静态图【类图、对象图】
  10. 4 交换机-fanout(订阅发布模式)