概述

OAuth2.0协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAuth2.0的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权。

竹云IDaaS身份云平台支持国际标准的OAuth 2.0 (opens new window) 协议,第三方应用系统可根据Oauth协议快速完成与身份云平台的对接,安全保证用户的登录认证全过程。

# 接口规范

第三方应用通过Oauth接入竹云IDaaS,调用API需要遵守如下规则:

规则项 说明
传输方式 为保证通信协议安全性,采用HTTPS单向握手传输协议
数据格式 竹云IDaaS返回给第三方应用数据为JSON格式
证书要求 采用HTTPS单向握手,第三方应用只需信任竹云IDaas

# 支持多种授权模式

竹云IDaaS支持Oauth2.0协议规范中多种授权模式,第三方应用系统的开发人员可根据自身系统的实际情况进行灵活选择。

授权模式 使用场景说明
标准授权码模式 这种模式最安全,最为常用Web应用集成。用户授权后获得code,应用根据code换取token。
PKCE模式 如桌面软件、手机App,这些客户端没有能力保存密钥,不能使用标准授权码模式。
针对不能使用secret的场景,采用PKCE模式可减少公共客户端授权码被拦截攻击的风险。
简化授权码模式 这种模式比标准授权码模式少了获取 code 环节,使用于场景是基于浏览器的应用。
密码模式 这种模式不推荐,因为 client 可能存了用户密码。使用于高度信任的应用。
M2M模式 OAuth协议中的M2M(Machine-to-Machine)模式是一种用于实现机器之间的身份验证和授权的模式。在M2M模式中,一个机器代表另一个机器进行身份验证和授权,而不需要用户的直接参与。

# 术语说明

  • Resource Owner:即资源所有者,简单来说就是资源的所有者。
  • Client:即第三方应用,用户需要登录的目标应用系统。
  • Authorization Server:即授权服务器,用来分发access token的服务器,分发给第三方应用。
  • Resource Server:即资源服务器,存放着受保护资源的服务器。
  • Authorization Code:即授权码
  • Access Token:即授权令牌
  • ClientId:应用的唯一标识,IDaaS平台统一颁发的ID。
  • ClientSecret:ClientId对应的密钥,访问用户资源时用来验证应用的合法性。
  • 竹云IDaaS统一认证中心:即授权服务器,下文简称竹云IDaaS
  • 用户中心:竹云IDaaS为企业用户提供集中访问第三方应用的门户系统。