路径: 主页 > MISC > 第118页 > GM/T 0069-2019
| 标准编号 | GM/T 0069-2019 (GM/T0069-2019) | | 中文名称 | 开放的身份鉴别框架 | | 英文名称 | Open identity authentication framework | | 行业 | Chinese Industry Standard (推荐) | | 中标分类 | L80 | | 国际标准分类 | 35.040 | | 字数估计 | 46,498 | | 发布日期 | 2019 | | 实施日期 | 2019-07-12 | | 发布机构 | 国家密码管理局 |
GM/T 0069-2019: 开放的身份鉴别框架
GM/T 0069-2019 英文名称: Open identity authentication framework
中华人民共和国密码行业标准
开放的身份鉴别框架
国家密码管理局 发 布
1 范围
本标准规定了依赖方(网络应用或服务)使用身份服务提供方提供的鉴别功能、对终端用户进行身
份鉴别的协议框架,定义了协议参与实体的要求、鉴别协议流程、用户信息的访问要求,以及协议消息的
加密和签名要求等。
本标准适用于终端用户访问网络应用的场景中,用户身份鉴别服务的开发、测试、评估和采购。
2 规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文
件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
5 概述
本标准规范的身份鉴别协议框架,使得依赖方可以利用身份服务提供方的鉴别服务对终端用户进
行鉴别。终端用户成功通过鉴别之后,依赖方可以从身份服务提供方获得经过授权的用户身份信
息。
本标准规范的身份鉴别协议框架主要涉及三类参与实体:依赖方、身份服务提供方和终端用户。本
标准主要对依赖方和身份服务提供方的功能进行规定:
---依赖方:依赖方被终端用户访问时,依赖方应对终端用户进行身份鉴别。对于尚未鉴别的终端
用户,依赖方选择某身份服务提供方对终端用户进行身份鉴别;
---身份服务提供方:对终端用户进行鉴别,并向鉴别成功的终端用户,询问关于依赖方访问用户
身份信息的授权,得到终端用户授权后,最终将授权后的用户身份信息发送给依赖方,完成身
份鉴别。其中,身份服务提供方的授权服务器实现对终端用户身份的鉴别,授权服务器包含两
个功能接口:授权端点和令牌端点;身份服务提供方通过提供用户信息端点,实现依赖方对用
户信息的访问功能。
端点使用 URI进行标识。URI的典型格式是:[方案(scheme):][//主机名(authority)][路径
(path)][? 查询组件(query)][#片段组件(fragment)],查询组件和片段组件的编码格式应为“appli-
cation/x-www-form-urlencoded”(见RFC1867)编码格式。
依赖方、身份服务提供方和终端用户等三者之间的交互均应采用密码技术来保障安全,且依赖方和
身份服务提供方均应进行相关的配置来支持协议,本标准规范了依赖方和身份服务提供方的实体要求
(见第6章)。
当终端用户访问依赖方提供的服务时,如果依赖方要求对终端用户进行鉴别且支持本标准定义的
协议,依赖方可将终端用户重定向到该依赖方信任的身份服务提供方,执行以下协议流程(见图1):
a) 鉴别请求:依赖方向身份服务提供方发送关于终端用户的鉴别请求;
b) 鉴别与授权:身份服务提供方的授权端点鉴别终端用户,并向终端用户获取关于依赖方访问其
数据的授权;
c) 鉴别响应:身份服务提供方的令牌端点(或授权端点)返回ID令牌,通常还会返回访问令牌,从
而响应第a)步的请求;
d) 用户信息请求:依赖方发送带有访问令牌的请求到身份服务提供方的用户信息端点;
e) 用户信息响应:用户信息端点返回关于终端用户的身份信息。
图1 身份鉴别协议框架
依赖方的类型不同,具备的对机密信息的保密能力不同,所使用的身份鉴别协议流程也会产生差
异。本标准定义并规定了三种身份鉴别流程,分别是授权码鉴别流程、隐式鉴别流程和混合鉴别流程。
本标准规范的身份鉴别协议,使用安全令牌来保护用户敏感信息的传输和访问安全。通过使用安
全令牌,可避免将终端用户的身份凭证共享给依赖方,并能将终端用户的身份信息安全地呈递给依赖
方。为了确保令牌的安全及其使用安全,本标准定义并给出了令牌的安全要求。
在依赖方呈递访问令牌给身份服务提供方以及获取用户信息的过程中,本标准给出了具体的使用
令牌访问用户身份信息的定义和要求,主要涉及协议中传输的关于实体的声明以及用户信息端点要
求等。
最后,本标准给出了保障协议安全的签名和加密要求。
此外,本标准也支持一些不常用的身份鉴别发起方式。通常情况下,身份鉴别服务由依赖方向身份
服务提供方发起。但在某些情况下,身份鉴别可能由身份服务提供方或其他实体发起。例如,正在使用
身份服务提供方A的用户通过A的页面的链接访问应用B(依赖方)的购物页面,A直接向未经过鉴别
的用户发起身份鉴别流程,这种情况下,身份鉴别不由依赖方B直接发起。另外,一般情况下,用户信
息的访问需要终端用户的实时授权,在获得用户授权后,依赖方才可以获得被授权的用户信息。本标准
也支持终端用户离线时的用户信息访问,不需要用户在线实时授权。例如,终端用户可以在身份服务提
供方进行预先授权,配置依赖方的访问权限,从而使得依赖方在向身份服务提供方请求用户信息时,不
需要用户在线进行实时授权。但是,对于用户离线的用户信息访问,由于存在安全风险,应慎重使用。
6 实体要求
6.1 身份服务提供方要求
6.1.1 概述
身份服务提供方是为访问依赖方的终端用户提供身份鉴别服务的实体,应提供以下功能:
a) 安全管理用户信息:管理和安全存储用户身份属性,使用内部唯一的主体标识符标识终端
用户;
b) 安全配置协议接口、参数:配置协议执行需要的接口、URL地址、加解密参数、响应参数等,以
能被依赖方发现,并能安全执行协议;
c) 安全传输和处理协议消息:安全接收和处理来自依赖方或者其他实体发起的实体身份鉴别
请求;
d) 鉴别和授权:鉴别终端用户,获取终端用户授权,并能够根据终端用户的授权,提供授权范围内
的终端用户身份信息给依赖方。
6.1.2 安全管理用户信息要求
身份服务提供方应安全地管理和存储用户的身份信息,包括标识用户的主体标识符、名称、头像、性
别、出生年月、邮箱地址、手机号、住址等各类身份属性,这些属性信息的类型由身份服务提供方根据服
务需要进行定义和要求(见附录A)。
身份服务提供方应为终端用户分配唯一且永不被重新分配的主体标识符,以标识终端用户。本标
准支持两类主体标识符:公共标识符类型和成对标识符类型:
---< public >参数,公共标识符使用该参数描述,若使用该类型,则同一终端用户在所有的依赖方
都使用相同的主体标识符;
---< pairwise >参数,成对标识符使用该参数描述,若使用该类型,则同一终端用户在不同的依赖
另外,身份服务提供方应给其终端用户提供用户信息的访问日志,以便终端用户可以对用户信息的
访问情况进行监控。
6.1.3 安全配置协议要求
身份服务提供方应提供必要的基础配置(参见附录B)以实现协议流程。首先,身份服务提供方应
提供发布方标识符(通常是URI),以便依赖方在执行身份服务发现协议时,找到身份服务提供方。其
次,应配置和提供授权端点的URI、令牌端点的URI、加密和签名令牌的密钥的URI、响应类型、响应参
数等信息,并提供依赖方应了解的配置信息的方法。本标准假定依赖方已经获得了身份服务提供方的
配置信息,依赖方可以通过自动发现过程或者其他方式获得这些信息,本标准不对具体的自动发现过程
或其他发现身份服务的方式进行规定。
其中,发布方标识符是用于标识身份服务提供方的标识符。本标准支持多个发布方,每个主机和端
口的组合为一个发布方,多个主机和端口的组合可实现多个发布方。一般情况下,本标准要求每台主机
仅支持一个发布方。但是,如果该主机支持多个租户,可能需要支持多个发布方。
通过发现过程返回的发布方标识符应与ID令牌(见8.1.2)的< iss >参数值完全匹配。发布方标识符
应与用户的主体标识符完全对应,即使两个终端用户的主体名相同,但发布方标识符不同,则应视为两
个不同的用户。
6.1.4 安全传输和处理协议消息要求
身份服务提供方应提供安全的身份鉴别方法使得:依赖方可对身份服务提供方进行身份鉴别,从而
防止恶意的服务器伪装成合法的服务器;对于具有保密能力的依赖方,身份服务提供方应提供鉴别依赖
方的方法,从而防止恶意的依赖方假冒合法的依赖方获取用户信息。
身份服务提供方应与依赖方建立安全的会话,应使用SSLVPN技术规范GM/T 0024-2014中定
义的安全通信协议进行通信。
在与依赖方建立安全连接的过程中,身份服务提供方应将其完整域名与其公钥进行绑定,以便依赖
方可以验证。本标准还提供了一种利用国产密码算法实现的签名JSON令牌或加密JSON令牌的方式
来实现身份鉴别(见8.2)。
一般情况下,身份服务提供方应使用非自签名的证书来实现ID令牌、访问令牌等安全凭据的签名。
本标准也支持自颁发证书的身份服务提供方,使用自颁发证书的身份服务提供方,应进行特殊的参数配
置,本标准不作具体规定。
6.1.5 鉴别与授权要求
身份服务提供方应提供安全的鉴别方法对终端用户的身份进行鉴别。例如,用户名/口令方式,数
字证书,用户名/智能密码钥匙(USBKey)方式,多因素鉴别方式或其他鉴别方式。本标准不对具体的
鉴别方法进行规定。
身份服务提供方在将终端用户的身份信息发送给依赖方之前,应获得终端用户的授权,仅能将用户
授权范围内的用户信息发送给依赖方,并能采用安全的访问控制机制,防止非授权的访问。
6.2 依赖方要求
6.2.1 概述
依赖方是使用身份服务提供方对访问它的终端用户进行鉴别的实体。依赖方的类型不同,本标准
对依赖方的要求也不同,其所适合的鉴别流程也不相同。本标准定义了两类依赖方。同时本标准还规
定依赖方应具备以下功能:
a) 注册和协议配置:向身份服务提供方进行注册,提供协议正常执行需要的参数信息,以便身份
服务提供方能够与依赖方建立安全会话,执行协议流程;
b) 依赖方身份鉴别:向身份服务提供方进行身份鉴别,提供支持的身份鉴别方法,以防止恶意的
依赖方假冒合法的依赖方。
6.2.2 依赖方的类型
根据依赖方是否对其身份凭据具有保密能力,本标准定义了两种依赖方类型:
a) 有保密能力型
依赖方有能力维持其凭据的机密性(例如,依赖方应用程序运行在严格执行访问控制的安全服务器
上),从而可通过提供安全的身份凭据来证明自己身份的真实性,或者依赖方有能力通过其他的方式(超
出本标准的范围)证明自己身份的真实性。
b) 无保密能力型
依赖方没有能力维持其凭据的机密性(例如,依赖方程序运行在资源拥有者使用的设备上,本地应
用或是基于浏览器的应用等),无法提供安全的身份凭据来证明自己身份的真实性,并且没有能力通过
其他方式证明自己身份的真实性。
依赖方类型的认定取决于身份服务提供方的鉴别安全要求和对依赖方凭据暴露级别的接受程度
(通常由身份服务提供方的服务文档提供)。授权服务器不应对依赖方的类型进行假定。
6.2.3 依赖方注册和协议配置要求
依赖方在使用身份服务提供方的身份鉴别服务时,应向身份服务提供方注册必要的协议参数,例
如,提供用于接收消息的重定向URL地址、主页URL地址、联系方式、依赖方类型、支持的鉴别依赖方
身份的方法等信息(参见附录C所描述的注册信息)。
6.2.4 依赖方身份鉴别要求
当身份服务提供方使用令牌端点与依赖方进行交互时,依赖方应使用某种鉴别方法向身份服务提
供方进行身份鉴别。在依赖方注册时,依赖方应通过下述参数值注册一种依赖方身份鉴别的方法:
a) client_secret_basic
表示已经从身份服务提供方收到了< client_secret >值的依赖方,使用 HTTP基本身份验证方案向
身份服务提供方进行身份鉴别。如果依赖方没有注册任何方法,则默认方法是client_secret_basic表示
的方法;
b)client_secret_post
表示已经从身份服务提供方收到了< client_secret >的依赖方,通过在请求主体中包含依赖方凭据的
方式向身份服务提供方进行身份鉴别;
c) client_secret_jwt
表示已经从授权服务器收到了< client_secret >的依赖方,使用 HMACSM3算法创建JSON令牌,
其中HMACSM3表示基于杂凑算法SM3(见 GB/T 32905-2016)实现消息鉴别码。HMAC使用
client_secret的UTF-8编码表示的八位位组作为共享密钥进行计算。
不在令牌端点执行鉴别的依赖方,可能因为它仅使用隐式鉴别流程(所以不使用令牌端点,见7.3),
或者因为它是无保密能力型依赖方,没有保护密钥的能力或不支持其他身份鉴别机制。
7 鉴别流程
7.1 鉴别流程类型
本标准根据依赖方类型的不同及需求的不同,定义了三种身份鉴别流程。鉴别流程由身份服务提
供方的服务器执行,该服务器以安全的通信方式返回鉴别结果给依赖方,从而使得依赖方能够根据该结
果进行后续的用户信息访问流程。其中,鉴别结果由ID令牌(见8.1.2)返回,包含以下声明的信息:发
布方标识符、主体标识符、鉴别有效期等。
三种身份鉴别类型:
---授权码鉴别流程。适用于有能力维持其凭据机密性的依赖方,例如,具有后台 Web服务器的
依赖方,此类依赖方可使用该流程进行终端用户身份的鉴别。在与令牌端点交互时,身份服务
提供方可对依赖方进行身份鉴别。所有令牌从身份服务提供方的令牌端点返回,令牌不透漏
给用户代理。依赖方获得访问令牌和刷新令牌后,可以进行后续的访问令牌刷新流程。
---隐式鉴别流程。适用于无能力维持其凭据机密性的依赖方,例如运行在浏览器上的JS代码或
本地应用程序,此类依赖方可使用该流程进行终端用户身份的鉴别。依赖方不与令牌端点进
行交互,也不进行依赖方身份鉴别,不可进行后续的令牌刷新流程。所有的令牌从身份服务提
供方的授权端点返回。
---混合鉴别流程。结合了前两种鉴别流程。该流程适用于此类依赖方:依赖方应用程序能够通
过立即使用ID令牌获得终端用户的身份,并且(如其后台服务程序)能够通过使用授权码,请
求刷新令牌以获得更长期的访问权限。在与令牌端点交互时,身份服务提供方可对依赖方进
行身份鉴别。使用该流程时,部分令牌从身份服务提供方的授权端点返回,部分令牌从令牌端
点返回。依赖方获得......
|