原文链接:http://www-01.ibm.com/support/knowledgecenter/SSELE6_8.0.0.3/com.ibm.ammob.doc_8.0.0.3/config/concept/con_oauth20_workflow.html%23con_oauth20_workflow?lang=zh
两种认证模式区别见:http://stackoverflow.com/questions/7522831/what-is-the-purpose-of-the-implicit-grant-authorization-type-in-oauth-2
OAuth 2.0 工作流程
IBM Security Access Manager 中的 OAuth 2.0 支持使 OAuth 客户机能够通过四种不同的方式获取对受保护资源的访问权。
OAuth 2.0 工作流程
Security Access Manager for Mobile 支持下列 OAuth 2.0 工作流程。
授权代码流程(适用于有服务器端的应用)
授权代码授予类型适用于那些向授权服务器进行认证时可以对其客户机凭证进行保密的 OAuth 客户机。例如,在安全服务器上实现的客户机。作为基于重定向的流程,OAuth 客户机必须能够与资源所有者的用户代理进行交互。它还必须能够通过重定向接收来自授权服务器的传入请求。
授权代码工作流程图包括下列步骤:
- OAuth 客户机会在将资源所有者的用户代理定向到授权端点时启动流程。OAuth 客户机包括其客户机标识、所请求的作用域、本地状态以及重定向 URI。在准予或拒绝访问之后,授权服务器会将用户代理发回到重定向 URI。
- 授权服务器通过用户代理对资源所有者进行认证,并确定资源所有者是准予还是拒绝访问请求。
- 如果资源所有者准予访问,那么 OAuth 客户机将使用先前提供的重定向 URI 将用户代理重定向回 OAuth 客户机。重定向 URI 包括授权代码以及 OAuth 客户机先前提供的所有本地状态。
- OAuth 客户机通过令牌端点从授权服务器请求访问令牌。OAuth 客户机使用其客户机凭证进行认证,并包括上一步中接收到的授权代码。OAuth 客户机还提供了用于获取授权代码以进行验证的重定向 URI。
- 授权服务器验证客户机凭证和授权代码。此服务器还将确保接收到的重定向 URI 与步骤 3 中用于重定向客户机的 URI 相匹配。如果有效,那么授权服务器将使用访问令牌进行回应。
授权服务器可以是资源服务器,也可以是另一实体。单个授权服务器可以发放多个资源服务器接受的访问令牌。
使用刷新令牌的授权代码流程
使用刷新令牌的授权代码工作流程图包括下列步骤:
- OAuth 客户机通过使用其客户机凭证向授权服务器进行认证并出示权限授予来请求访问令牌。
- 授权服务器验证客户机凭证和权限授予。如果有效,那么授权服务器将发放访问令牌和刷新令牌。
- OAuth 客户机通过出示访问令牌向资源服务器发出访问受保护资源的请求。
- 资源服务器验证访问令牌。如果访问令牌有效,那么资源所有者将为该请求提供服务。
- 重复步骤 3 和 4,直到访问令牌到期。如果 OAuth 客户机知道访问令牌已到期,请跳至步骤 7。否则,OAuth 客户机将发出访问另一个受保护资源的请求。
- 如果访问令牌无效,那么资源服务器将返回错误。
- OAuth 客户机通过使用其客户机凭证向授权服务器进行认证并出示刷新令牌来请求新的访问令牌。
- 授权服务器验证客户机凭证和刷新令牌,并且在这些凭证和令牌有效的情况下发放新的访问令牌和新的刷新令牌。
隐式授予流程
隐式授予类型适用于那些无法对其用于向授权服务器认证的客户机凭证进行保密的客户机。例如用户代理中的客户机应用程序,这些应用程序通常使用 JavaScript 之类的脚本语言在浏览器中进行实现。
作为基于重定向的流程,OAuth 客户机必须能够与资源所有者的用户代理(通常是 Web 浏览器)进行交互。OAuth 客户机还必须能够通过重定向接收来自授权服务器的传入请求。
隐式授予工作流程图包含下列步骤:
- OAuth 客户机通过将资源所有者的用户代理定向到授权端点来启动流程。OAuth 客户机包括其客户机标识、所请求的作用域、本地状态以及重定向 URI。在准予或拒绝访问之后,授权服务器会将用户代理发回到重定向 URI。
- 授权服务器通过用户代理对资源所有者进行认证,并确定资源所有者是准予还是拒绝访问请求。
- 如果资源所有者准予访问,那么授权服务器将使用先前提供的重定向 URI 将用户代理重定向回客户机。重定向 URI 将访问令牌包括在 URI 片段中。
- 用户代理通过向 Web 服务器发出不包含该片段的请求来按重定向指示信息进行操作。用户代理将在本地保留片段信息。
- Web 服务器返回一个 Web 页面,此页面通常是包含嵌入式脚本的 HTML 文档。此 Web 页面将访问完全重定向 URI,其中包括用户代理所保留的片段。它还可以抽取该片段中包含的访问令牌及其他参数。
- 用户代理在本地运行 Web 服务器提供的脚本,这将抽取访问令牌并将其传递到客户机。
资源所有者密码凭证流程
资源所有者密码凭证授予类型适用于资源所有者与客户机之间具有信任关系的情况。例如,资源所有者可以是 OAuth 客户机的计算机操作系统,也可以是具有高级别特权的应用程序。
只有当 OAuth 客户机已获取资源所有者的凭证时,您才能使用此授予类型。此授予类型还可以通过将存储的凭证转换为访问令牌,对使用直接认证方案的现有客户机进行迁移。
资源所有者密码凭证工作流程图包括下列步骤:
- 资源所有者为客户机提供其用户名和密码。
- OAuth 客户机通过令牌端点从授权服务器请求访问令牌。OAuth 客户机使用其客户机凭证进行认证,并包括从资源所有者接收到的凭证。
- 在验证资源所有者凭证和客户机凭证之后,授权服务器发放访问令牌和(可选)刷新令牌。
客户机凭证流程
当 OAuth 客户机仅使用其客户机凭证请求访问令牌时,将使用客户机凭证流程。此流程适用于下列其中一种情况:
- OAuth 客户机请求在其控制下访问受保护资源。
- OAuth 客户机请求访问其他受保护资源,而该资源的授权先前已通过授权服务器进行安排。
客户机凭证工作流程图包括下列步骤:
- OAuth 客户机通过使用其客户机凭证进行认证来从令牌端点请求访问令牌。
- 在验证客户机凭证之后,授权服务器发放访问令牌。
-
OAuth 2.0 令牌端点中的客户机认证注意事项
OAuth 2.0 令牌端点用于 OAuth 客户机与授权服务器之间的直接通信。令牌端点用于获取 OAuth 令牌。 -
使用 WebSEAL 作为联系点来配置认证令牌端点
使用 WebSEAL 作为联系点来配置认证令牌端点以将客户机认证委派给 WebSEAL。
用户代理在Authorization Code下为web server端服务,在Implicit_Grant下可以为浏览器
相关推荐
通过点击viewbutton获取用户openid,实现方式oauth2.0认证
Spring Security OAuth2.0学习笔记 什么是认证、授权、会话。 Java Servlet为支持http会话做了哪些事儿。 基于session认证机制的运作流程。 基于token认证机制的运作流程。 理解Spring Security的工作原理,Spring ...
OAuth2.0协议原理与实现
RFC 6749 OAuth 2.0 授权框架 (正式版中文翻译,PDF)
QQ登陆OAuth2.0API源码 QQ登陆OAuth2.0API使用流程: 我不忙-QQ登陆OAuth2.0API使用流程: 1、根据需要求修改配置文件(Wbm.QzoneV2.config)。 2、注册ApplicationKey。(参考UiPageBase.cs文件) 3、获取用户认证地址...
全网最新的Cloud 权限系统 基于Spring Boot 2.0.4.RELEASE 基于Spring Cloud Finchley.SR1 网关基于 Spring Cloud Gateway ...完整的OAuth 2.0 流程,资源服务器控制权限 去除了部分对于开发不友好的中间件,快速上手
oauth2.0入门介绍,让你对oauth2.0的授权流程清楚易懂
使用idea开发工具,基于springboot2.x、jwt鉴权、nginx集群,前后端分离的微信Oauth2.0一键登录和微信网页扫码支付测试开发demo
该资源参考博客:http://blog.csdn.net/eastmount/article/details/26872793主要介绍豆瓣API开发过程中如何通过OAuth2.0认证授权访问用户自己信息的.豆瓣API的资源较少,有的基本是php和java的,所以想通过该资源讲述C#...
spring cloud + vue + oAuth2.0全家桶实战,前后端分离模拟商城,完整的购物流程、后端运营平台,可以实现快速搭建企业级微服务项目。支持微信登录等三方登录。
利用 OAuth 2 通訊協定,可以實作出 API 的存取管制,讓 API 得知要操作的對象 user 是誰,並且讓你做出像 Facebook 登入那樣子的登入流程。然而 OAuth 2.0 的 spec 根本就是個 [tl;dr] 的東西,但沒讀過 spec 也沒...
此资源对于希望深入学习 OAuth 2.0 授权流程的初学者和开发者来说是一份极具价值的实践参考资料。 《OAuth 2.0 入门指南:掌握授权码模式》文章链接:...
这是具有的初学者应用程序生成。NET Core 3.1 MVC演示Xero OAuth 2.0客户端身份验证和OAuth 2.0API.zip
对oauth1.0和2.0的协议流程和相关技术要求进行了简单介绍
该流程采用国际通用的OAuth2.0标准协议作为用户身份验证与授权协议。 前期准备 开放授权系统是基于OAuth2.0协议标准构建的京东开放平台授权系统.支持宙斯网关接口授权调用, 京东账号联合登录等功能 1.在进行京东...
下载 ngrok ...4、修改程序中 appID值 org.liufeng.course.servlet.OAuthServlet AdvancedUtil.getOauth2AccessToken() org.liufeng.course.util.SignUtil.token 值 5、使用微信客户端软件,打开连接 ...
本项目是基于Spring Cloud和Vue开发的OAuth2.0全家桶实战模拟商城设计源码,主要使用Java进行开发。项目共包含883个文件,其中Java源代码文件719个,XML配置文件95个,YAML配置文件20个,Properties配置文件18个,...