GB-T 30275-2013 信息安全技术 鉴别与授权 认证中间件框架与接口规范.pdf
I C S3 5.0 4 0L8 0中 华 人 民 共 和 国 国 家 标 准G B/T3 0 2 7 52 0 1 3信息安全技术 鉴别与授权认证中间件框架与接口规范I n f o r m a t i o ns e c u r i t y t e c h n o l o g yA u t h e n t i c a t i o na n da u t h o r i z a t i o nA u t h e n t i c a t i o nm i d d l e w a r e f r a m e w o r ka n d i n t e r f a c e s p e c i f i c a t i o n2 0 1 3-1 2-3 1发布2 0 1 4-0 7-1 5实施中华人民共和国国家质量监督检验检疫总局中 国 国 家 标 准 化 管 理 委 员 会发 布目 次前言引言1 范围12 规范性引用文件13 术语和定义14 缩略语25 认证中间件目标3 5.1 功能性目标3 5.2 非功能性目标3 5.3 安全目标36 认证中间件框架3 6.1 概述3 6.2 认证中间件的工作模式5 6.3 组件描述6 6.4 鉴别断言7 6.5 认证中间件与应用系统的关系7 6.6 认证中间件与面向服务架构77 组件规范8 7.1 认证中间件管理组件8 7.2 身份鉴别组件1 0 7.3 单点登录组件1 2 7.4 隐私保护组件1 5 7.5 属性查询组件1 6附录A(资料性附录)认证中间件工作流程1 8参考文献2 2G B/T3 0 2 7 52 0 1 3前 言 本标准按照G B/T1.12 0 0 9给出的规则起草。本标准由全国信息安全标准化技术委员会(S A C/T C2 6 0)提出并归口。本文件某些内容可能涉及专利,本文件的发布机构不承担识别这些专利的责任。本标准主要起草单位:中国科学院软件研究所、中国科学院数据与通信保护研究教育中心、北京数字证书认证中心有限公司。本标准主要起草人:徐静、冯登国、荆继武、张立武、张严、李强、杨婧、张振峰、詹榜华、阎实。G B/T3 0 2 7 52 0 1 3引 言 身份鉴别是保障系统安全的最基本功能之一,是绝大多数信息系统的首要安全需求。然而长期以来,安全功能与具体业务的紧密结合使得应用系统开发人员往往在考虑业务功能的同时还需要考虑安全功能的实现。因为不是所有的开发人员都具备全面的安全知识,这样做不仅费时费力,还不能保证安全功能的完整实施。因此,将安全功能,特别是身份鉴别功能与业务功能剥离,以中间件的方式为应用系统提供专门的安全保护,是安全领域的发展趋势。此外,由于各个系统在建设过程中缺乏规范的鉴别接口和参考模型,不同系统之间互不兼容,无法互通互联,造成大量重复开发建设,浪费严重。同时更给进一步的系统集成工作带来困难。因此,我国迫切需要制定认证中间件的框架及接口规范,对信息系统的鉴别过程进行标准化。从而提升信息系统的互操作能力,促进认证中间件的研发和推广,从宏观角度看来也将有助于推进我国信息安全保障体系建设。本标准的主要目标是提供一套认证中间件的框架规范及其组件描述,并对鉴别实施过程予以规范,但为使本标准具有更好的可实现性与可操作性,本标准中同时对通用接口进行了若干定义,以便作为实现时的参考,这些定义不影响本标准中认证中间件框架的通用性。在实际应用中,可根据需求对这些接口进行进一步规范。G B/T3 0 2 7 52 0 1 3信息安全技术 鉴别与授权认证中间件框架与接口规范1 范围本标准规定了认证中间件体系框架、组件、功能及通用接口,并给出了认证中间件的工作流程。本标准适用于认证中间件及其组件的设计、开发,并可指导对该类系统的检测及相关应用的开发。2 规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。G B/T9 3 8 7.21 9 9 5 信息处理系统 开放系统互连 基本参考模型 第2部分:安全体系结构G B/T1 5 8 4 3.12 0 0 8 信息技术 安全技术 实体鉴别 第1部分:概述G B/T1 8 7 9 4.22 0 0 2 信息技术 开放系统互连 开放系统安全框架 第2部分:鉴别框架G B/T2 5 0 6 92 0 1 0 信息安全技术 术语3 术语和定义G B/T9 3 8 7.21 9 9 5、G B/T1 5 8 4 3.12 0 0 8、G B/T1 8 7 9 4.22 0 0 2和G B/T2 5 0 6 92 0 1 0界定的以及下列术语和定义适用于本文件。3.1依赖方 r e l y i n gp a r t y根据从另一方实体处获得的信息来决定如何进行动作的系统实体。注:例如应用系统依赖于认证中间件对用户进行身份鉴别。3.2断言 a s s e r t i o n给依赖方的包含了用户身份信息的可信声明,也可以包含验证过的属性。注:断言可能是经过数字签名的,或者是通过一个安全协议从可信源获取的。3.3属性 a t t r i b u t e对象的性质及对象之间的关系的统称。3.4鉴别 a u t h e n t i c a t i o n在用户身份间建立信任的过程。3.5鉴别密钥协商 a u t h e n t i c a t e dk e ya g r e e m e n t两方或者两方以上的实体通过交互建立起彼此间身份的信任关系,并形成一个共同的秘密密钥,用于保护后续的通信安全。1G B/T3 0 2 7 52 0 1 33.6认证中间件 a u t h e n t i c a t i o nm i d d l e w a r e可提供消息鉴别、身份鉴别以及单点登录等功能的中间件系统。3.7鉴别协议 a u t h e n t i c a t i o np r o t o c o l两方或者两方以上的实体为了实现对某一实体或某些实体的身份鉴别,经过协商后达成的一致意见。3.8鉴别服务提供方 a u t h e n t i c a t i o ns e r v i c ep r o v i d e r对用户身份进行鉴别的实体。3.9鉴别服务适配点 a u t h e n t i c a t i o ns e r v i c ea d a p t e r对鉴别请求进行过滤,并维持用户鉴别状态的实体。3.1 0上下文 c o n t e x t保证系统中不同的组件能够一致运行所需要保存的一些信息,比如用户的连接信息、鉴别状态等。3.1 1实体 e n t i t y任何可以发送或接收信息的硬件或软件进程。注:实体就是一个特定的软件模块。3.1 2身份 i d e n t i t y个体唯一确定的名字。注:当个人法律上的名字不唯一时,可以通过地址、雇员或账户号码等附加信息来保证身份的唯一性。3.1 3遗留系统 l e g a c ys y s t e m那些基本上不能进行修改和进化以满足新变化了的业务需求的信息系统。注:通常是大型的软件系统,已经融入企业的业务运行和决策管理机制之中,维护工作困难。3.1 4中间件 m i d d l e w a r e一种独立的系统软件,它处于操作系统软件与应用软件的中间,属于可复用软件的范畴。3.1 5单点登录 s i n g l e s i g no n在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。3.1 6状态码 s t a t u s c o d e用于表示某一组件功能是否成功实现以及可能的错误原因的值。4 缩略语下列缩略语适用于本文件。AKA:鉴别密钥协商(A u t h e n t i c a t e dK e yA g r e e m e n t)A S P:鉴别服务提供方(A u t h e n t i c a t i o nS e r v i c eP r o v i d e r)2G B/T3 0 2 7 52 0 1 3A S A:鉴别服务适配点(A u t h e n t i c a t i o nS e r v i c eA d a p t e r)C/S:客户端服务器应用(C l i e n t/S e r v e rA p p l i c a t i o n)S S L:安全套接字层协议(S e c u r i t yS o c k e tL a y e r)S S O:单点登录(S i n g l eS i g nO n)T T P:可信第三方(T r u s t e dT h i r dP a r t y)5 认证中间件目标5.1 功能性目标认证中间件应实现以下功能性目标:a)认证中间件应提供一套与应用系统无关的鉴别框架,帮助应用系统与用户实体之间建立信任关系,为进一步判断用户是否可以访问资源提供先决条件;b)认证中间件定义的接口应与所处理的鉴别信息无关,可以支持所有可能的交互流程;c)认证中间件应支持应用系统调用相关接口建立用户安全上下文;d)一旦会话终止,或用户登出后,认证中间件应启动清理会话服务,清除用户上下文。5.2 非功能性目标认证中间件应实现以下非功能性目标:a)认证中间件不指定具体的鉴别机制;b)认证中间件框架与具体的操作系统或平台是无关的,但认证中间件的具体实现系统可能是相关的;c)认证中间件应能够与遗留系统进行集成。5.3 安全目标认证中间件应实现以下安全目标:a)认证中间件不能对应用系统引入错误;b)认证中间件不能恶意的影响系统的其他服务;c)认证中间件应确保不能被绕过;d)认证中间件应能够支持应用系统中的授权机制;e)认证中间件应保证认证中间件环境中出现的安全相关的事件都是可审计的;f)认证中间件的具体实现应保护其获得或生成的安全相关信息的安全性,使得其他服务能足够信任该中间件提供的信息;g)认证中间件的具体实现应能够保护在其组件之间传递及组件与其他服务之间传递的安全相关信息的安全性。6 认证中间件框架6.1 概述认证中间件所采用的鉴别模型如图1所示。声称方与验证方交互完成身份的鉴别,然后由验证方将鉴别结果以断言的形式发布给依赖方。声称方与验证方之间的身份鉴别过程可能是有可信第三方的参与。验证方与依赖方可以是同一实体,也可以是分开的不同实体。3G B/T3 0 2 7 52 0 1 3图1 鉴别模型根据图1中的鉴别模型,认证中间件的整体框架结构如图2所示。认证中间件采用分布式架构,可以同时为多个应用系统服务。认证中间件由鉴别服务提供方与鉴别服务适配点组件两部分共同组成。图2 认证中间件框架结构鉴别服务提供方的主要功能是通过一定的身份鉴别机制,完成对用户身份的鉴别,并将鉴别结果以断言形式发布给各应用系统。鉴别服务提供方并不限定具体的身份鉴别机制,只是提供统一的接口,具体与用户的鉴别交互过程由各鉴别机制的实现自己完成。同时,作为附加功能,它还可以提供用户单点登录、隐私保护以及属性查询功能。鉴别服务提供方对应于鉴别模型中的验证方。鉴别服务适配点作用于应用系统内,与鉴别服务提供方交互,辅助完成用户身份鉴别过程。鉴别适配点与应用系统一起对应于鉴别模型中的依赖方。鉴别服务适配点与鉴别服务提供方之间的通信默认是通过可信信道保护的。如果应用系统与鉴别服务提供方集成在一起,即验证方与依赖方为统一实体,则这种可信信道为系统内部数据传输。如果应用系统与鉴别服务提供方分布在不同的系统中,彼此之间需要远程通信,则这种可信信道为二者之间的加密信道。用户通过客户端完成与认证中间件及应用系统的交互,从而完成对用户身份的鉴别。客户端根据不同的应用场景表现为不同的形式。例如:在普通的C/S应用中,本标准中的客户端即为普通意义上的用户端应用程序;在基于W e b的应用中,本标准中的客户端为用户浏览器;在移动应用中,本标准中的客户端为便携设备。客户端对应于鉴别抽象模型中的声称方。4G B/T3 0 2 7 52 0 1 3用户信息存储点存放用户身份信息。一个用户的身份信息中需包含一个可区分标识符,用以唯一标识该用户。在本标准中以用户名指代该可区分标识符。认证中间件的内部组成框架如图3所示。在鉴别服务提供方内部,身份鉴别组件是必需组件,单点登录组件、隐私保护组件以及属性查询组件是可选组件。这些组件独立完成各自的功能,并通过认证中间件管理组件完成统一灵活的组装与调用,以满足不同应用场景的需求。图3 认证中间件组成框架6.2 认证中间件的工作模式6.2.1 直接鉴别模式直接鉴别模式指的是鉴别服务提供方直接与用户交互完成身份鉴别。在直接鉴别模式下,认证中间件中的鉴别服务提供方与鉴别服务适配点不共享同一个用户上下文,而是分别与用户建立上下文,鉴别服务提供方和鉴别服务适配点与同一个用户的会话是异步的。在用户鉴别过程中,鉴别服务适配点不直接向鉴别服务提供方发出鉴别请求,而是告知未鉴别的用户需要进行身份鉴别。用户通过一定的机制,找到自己的鉴别服务提供方,并与之直接交互完成身份鉴别。之后,用户携带鉴别断言再次访问应用系统,鉴别适配点检验断言确实是由认可的鉴别服务提供方发布,即完成用户身份鉴别过程。该过程中,鉴别断言中必须加入完整性保护机制,以保证身份鉴别结果不被篡改。直接鉴别模式的典型使用场景是基于W e b的应用服务。直接鉴别模式下典型的工作流程见附录A,但并不限定只能按照这些流程执行。同时,在具体实现时,应采用相应的通信组件对流程中的消息内容进行封装。6.2.2 代理鉴别模式代理鉴别模式指的是鉴别服务提供方不直接与用户交互完成身份鉴别,而是通过作用于应用系统中的鉴别适配点代理完成交互的通信过程。在代理鉴别模式下,只有鉴别适配点与用户交互,建立用户上下文,鉴别服务提供方和鉴别服务适5G B/T3 0 2 7 52 0 1 3配点与同一个用户的会话是同步的。在用户鉴别过程中,由鉴别服务适配点直接向鉴别服务提供方发起身份鉴别请求,并转发用户与鉴别服务提供方之间的通信交互消息。鉴别过程完成后,鉴别服务提供方直接将鉴别断言返回给鉴别服务适配点。该过程中,鉴别服务适配点与鉴别服务提供方之间应建立可信信道。代理鉴别模式的典型使用场景是使用R A D I U S或D I AME T E R协议的应用服务,或者应用系统直接与鉴别服务提供方集成在一起的情况。代理鉴别模式下典型的工作流程见附录A,但并不限定只能按照这些流程执行。同时,在具体实现时,应采用相应的通信组件对流程中的消息内容进行封装。6.3 组件描述6.3.1 认证中间件管理组件认证中间件管理组件是认证中间件框架的必需部分,是保证整个中间件正常运转的关键功能模块。它根据中间件的配置完成组件的组装,以及同鉴别适配点之间可信信道的建立。然后根据不同应用情景下的工作流程,通过一定的通信组件与用户以及鉴别适配点交互,并且调用相应的组件完成既定的功能目标。认证中间件管理组件应支持安全相关的事件审计。6.3.2 身份鉴别组件身份鉴别组件是认证中间件框架中必需的部分,是完成用户身份鉴别的核心。对外,该组件屏蔽了内部的具体鉴别机制,只提供一般的身份鉴别接口。对内,它可以支持各种不同身份鉴别机制的实现。鉴别机制按照其实现结果的不同分为简单身份鉴别机制与带密钥协商的身份鉴别机制。身份鉴别组件中至少应包含一种简单身份鉴别机制的实现。对于带密钥协商的身份鉴别机制,在某些应用场景下可以不实现。采用简单身份鉴别机制,则认证中间件与用户交互后,实现对用户身份的识别与验证。在简单身份鉴别机制下,身份鉴别组件输出的鉴别结果中只包含用户的身份信息。同时,在鉴别过程中以及之后,需要通过其他的通信加密机制,如S S L等,来保护用户与认证中间件以及应用系统之间的通信。简单身份鉴别适用于认证中间件的直接鉴别工作模式以及代理鉴别工作模式。采用带密钥协商的身份鉴别,则认证中间件与用户交互后,不仅完成对用户身份的识别,同时与用户协商建立会话密钥。在带密钥协商的身份鉴别机制下,身份鉴别组件输出的鉴别结果中包含用户的身份信息以及协商生成的会话密钥。同时,在鉴别完成后,用户与应用系统之间的通信通过该会话密钥来保护。带密钥协商的身份鉴别主要适用于认证中间件的代理鉴别工作模式。本标准不对具体的身份鉴别机制及其安全性进行规定,但它们的实现应符合一定的标准规范,达到相应标准规范中的安全要求。6.3.3 鉴别适配点组件鉴别服务适配点组件是认证中间件框架中必需的部分,它主要负责对用户鉴别状态的过滤,以及对于鉴别断言的解析。同时,当鉴别服务提供方不与用户直接交互的情况下,该组件将负责二者通信信息的传递。在简单身份鉴别方式下,该组件负责将鉴别服务提供方发布的鉴别断言解析为本地应用系统需要的鉴别结果形式,供应用系统获取用户身份信息。在带密钥协商的身份鉴别方式下,该组件负责解析鉴别服务提供方发布的鉴别断言,向应用系统输出用户身份信息,并储存会话密钥,负责对用户与应用系统之间通信内容的加解密工作。如果鉴别服务提供方需要与鉴别服务适配点之间建立加密信道,则鉴别服务适配点组件需要与鉴别服务提供方中的认证中间件管理组件通过预享机制,完成加密信道的建立。6G B/T3 0 2 7 52 0 1 36.3.4 单点登录组件单点登录组件是认证中间件框架中可选的部分,主要负责实现用户访问与一个认证中间件相连的多个应用系统时,可以获得“一次登录,多次访问”的体验过程。只考虑认证中间件工作于直接鉴别模式,且身份鉴别组件提供简单身份鉴别情况下的单点登录。对于其他情况,不考虑其单点登录过程。6.3.5 隐私保护组件隐私保护组件是认证中间件框架中可选的部分,主要负责提供保护用户隐私信息的机制。根据用户需求的不同以及应用场景的不同,隐私信息包含的范围和隐私保护所涉及的实体范围都是不同的,本标准只考虑通过假名映射的方式保护用户身份的隐私性。即,鉴别服务提供方向应用系统提供用户的假名,从而避免应用系统获得用户的真实身份。对于其他的隐私保护实现方式,本标准不予以规范。6.3.6 属性查询组件属性查询组件是认证中间件框架中可选的部分,主要负责用户身份鉴别之后,对用户属性信息的查询。属性查询同时涉及数字身份管理以及授权访问控制领域,因此本标准只规定通用的属性查询接口,具体的实现方式不予以规范。6.4 鉴别断言在鉴别过程结束后,鉴别服务提供方应为鉴别后的用户生成鉴别断言以使得鉴别依赖方能够验证用户的身份合法性。此处所述鉴别断言是指由鉴别服务提供方生成,包含了用户身份等信息的可信消息。本标准中使用的鉴别断言可能包含用户身份信息和密钥协商信息等信息。其中身份信息至少包含用户身份标识、鉴别方式和鉴别时间这三个部分,根据实际需求的不同还可以包含其他的一些信息,比如用户I P地址等。密钥协商信息至少包含会话密钥值、密钥类型这两个部分,根据实际需求的不同还可以包含其他的一些信息,比如密钥有效期等。在实际应用中,可根据需要自行设计断言格式。此时鉴别断言必须采用相应的安全机制(例如,鉴别服务提供方的数字签名)来保证用户身份信息,鉴别服务提供方标识等信息的完整性,防止被篡改。此外,在实际应用中,鉴别断言中还可以同时包含如用户属性等在内的其他信息,本标准不对这些信息的内容进行限定,但这些信息不应影响断言中用户身份信息与密钥协商信息的安全。6.5 认证中间件与应用系统的关系鉴别适配点组件作用于应用系统内部,应用系统对它的输出结果是完全信任的。在简单身份鉴别方式下,鉴别适配点组件解析鉴别断言后,向应用系统输出用户身份信息。应用系统无条件信任该信息。在带密钥协商的身份鉴别方式下,鉴别服务适配点组件解析鉴别断言,向应用系统输出用户身份信息,并储存会话密钥。应用系统无条件信任鉴别服务适配点组件输出的用户身份信息,并且相信与用户的通信过程是在加密信道保护下完成的。6.6 认证中间件与面向服务架构本标准仅对认证中间件各组件实现的功能及其应满足的安全需求进行了限定,而并未对认证中间件各组件的具体实现及配置方式进行要求,故本标准规定的认证中间件对面向服务架构兼容。特别的,7G B/T3 0 2 7 52 0 1 3本标准中规定的认证中间件所应满足的与具体应用形态无关特性与面向服务架构相关需求吻合,因此本标准所规定的认证中间件可以通过扩展以鉴别服务的形式实现,以便于其在现有面向服务相关业务流程中的实施。对具体扩展模式不予规范,该扩展应在不破坏本标准规定的相关功能需求、非功能需求及安全功能的前提下,满足面向服务架构相关标准的要求。7 组件规范7.1 认证中间件管理组件7.1.1 概述认证中间件管理组件结构如图4所示。图4 认证中间件管理组件结构认证中间件管理组件负责整个认证中间件的初始化以及系统中各组件的运作管理。对外,它通过与具体应用相关的通信组件,实现和用户以及鉴别服务适配点之间的交互。对内,它根据认证中间件的配置情况以及所完成的功能,与鉴别服务提供方中的各个组件进行交互。认证中间件管理组件提供了一个接口处理来自用户或者鉴别适配点组件的鉴别请求。用户和鉴别适配组件通过这个接口来通知认证中间件管理组件进行鉴别处理,并获取此次鉴别处理的鉴别断言。认证中间件可以提供不同的鉴别方式。当认证中间件支持用户对鉴别方式进行选择时,认证中间件管理组件提供了一个与用户交互的接口,用以协商确定具体的鉴别方式。认证中间件管理组件应能够对用户选择的鉴别方式进行检查,以确定是否支持该方式,以及其实现组件能否正常启动。认证中间件管理组件还提供一个用于审计的接口,它会输出当前鉴别用户的信息,至少包括用户名、鉴别方式、鉴别状态、鉴别时间等,从而保证认证中间件中的用户鉴别事件是可审计的。在认证中间件内部,认证中间件管理组件并不实现具体的鉴别功能。因此,在认证中间件管理组件与其他的各个组件之间都存在着交互的接口。这些接口的具体描述参见第7章其他条中各组件的接口规范。8G B/T3 0 2 7 52 0 1 37.1.2 接口描述7.1.2.1 鉴别接口AM F_A U T HAMF_AUTH接口用于启动整个用户身份鉴别流程,它需要提供以下输入和输出:输入:a)用户上下文用户上下文包括用户的相关信息,可以用于区分不同的用户。从用户上下文中可以获取用户的连接信息等内容。此接口可以由用户或者鉴别适配组件来调用,分别对应于直接鉴别模式和代理鉴别模式。若是由用户调用,则此参数为空,认证中间件管理组件会在后面与用户的交互中来生成用户上下文;如果是鉴别适配组件来调用,则需要由鉴别适配点来给出用户上下文。b)适配点会话标识用户在鉴别前与适配点建立连接的会话标识,此信息会被加入到最后输出的鉴别断言中,用以防止鉴别断言被其他人截获冒用或重放。输出:a)鉴别断言鉴别处理的结果将以鉴别断言的形式输出。鉴别处理结果可能包括两个部分:用户身份信息和密钥协商信息。身份信息至少包含用户身份标识、鉴别方式和鉴别时间这三个部分,根据实际需求的不同还可以包含其他的一些信息,比如用户I P地址等。密钥协商信息至少包含会话密钥值、密钥类型这两个部分,根据实际需求的不同还可以包含其他的一些信息,比如密钥有效期等。b)状态码根据情况的不同,可能返回以下几种状态码:AMMC_E R R 认证中间件管理组件错误I A_E R R 身份鉴别组件错误I A_AM_E R R 鉴别机制模块错误AMF_S Y S_E R R 系统错误AMF_C ON_E R R 连接错误AMF_AUTH_E R R 鉴别错误AMF_AUTH_F A I L UR E 鉴别失败AMF_AUTH_S U C C 鉴别成功AMF_KA_E R R 密钥协商错误AMF_KA_F A I L UR E 密钥协商失败AMF_AKA_S U C C 鉴别密钥协商成功7.1.2.2 鉴别方式协商接口AM F_A G R E E用户和认证中间件管理组件通过AMF_AG R E E接口来进行协商并确定此次鉴别所采用的鉴别方式,此接口需要提供以下的输入和输出。输入:a)鉴别方式鉴别方式用于指定身份鉴别组件所采用的鉴别机制,如口令鉴别、证书鉴别以及其他鉴别协议等。这个参数会传递给身份鉴别组件来判断是否支持相应的鉴别方式,如果支持,则返回协商成功;否则会返回错误信息。9G B/T3 0 2 7 52 0 1 3输出:a)状态码根据认证中间件管理组件处理结果的不同,可能返回以下几种状态码:UNKOWN_AUTHME THO D 身份鉴别组件不支持用户选择的鉴别方式AMMC_E R R 认证中间件管理组件错误AMF_AG R E E_S U C C 鉴别方式协商成功AMF_S Y S_E R R 系统错误7.1.2.3 审计信息接口AM F_A U D I T审计系统可以通过此接口获取用户鉴别事件的相关信息,此接口需要提供以下的输入和输出。输入:a)审计信息审计信息是一些与用户此次鉴别相关的一些信息,可以用来识别和追踪一些非法的用户操作,从而保证系统的正常工作。审计信息一般包括以下几个部分:用户名、鉴别状态、鉴别方式、鉴别时间等。输出:a)状态码根据认证中间件管理组件处理结果的不同,可能返回以下几种状态码:AMF_AUD I T_S U C C 审计信息输出成功AMF_AUD I T_E R R 审计信息输出错误AMF_AUD I T_F A I L UR E 审计信息输出失败AMF_UNKOWN_U S E R 未知用户AMF_S Y S_E R R 系统错误7.2 身份鉴别组件7.2.1 概述身份鉴别组件是认证中间件中必需实现的组件之一,它的主要功能是完成对用户身份进行鉴别以及与用户之间的密钥协商,身份鉴别组件结构如图5所示。图5 身份鉴别组件结构01G B/T3 0 2 7 52 0 1 3 身份鉴别组件由身份鉴别管理组件和不同的鉴别机制实现组件组成。身份鉴别管理组件负责整个身份鉴别组件的管理运作,向上与认证中间件管理组件交互,向下与鉴别机制实现组件进行交互。身份鉴别组件实现了具体的鉴别过程。认证中间件管理组件从客户端获取了对鉴别方式的选择之后,需要通过身份鉴别组件来确定是否支持该鉴别方式,以及该鉴别方式能否正常实现。另外,在身份鉴别完成之后,身份鉴别组件返回身份鉴别结果给上层认证中间件管理组件。身份鉴别管理组件提供了与各种鉴别机制交互的接口,用于启动鉴别机制以及获取鉴别结果。鉴别机制实现组件完成具体的鉴别以及密钥协商过程,并提供相应的接口由身份鉴别管理组件调用。7.2.2 接口描述7.2.2.1 鉴别执行接口I A_A E身份鉴别组件通过I A_A E接口与上层认证中间件管理组件进行交互,用于获取鉴别方式并返回鉴别结果,它需要提供以下的输入和输出:输入:a)鉴别方式鉴别方式指定认证中间件所使用的身份鉴别方式,身份鉴别管理组件首先检查系统配置中是否存在对应的身份鉴别方式。如果存在,那么身份鉴别管理组件就会启动相应的鉴别机制,并完成初始化。b)用户上下文用户上下文包括了用户的相关信息,此信息会传递给下层的鉴别机制在实现鉴别功能的时候使用。如果此参数为空,则身份鉴别组件只进行鉴别方式的检查,然后返回鉴别机制初始化状态。输出:a)鉴别结果鉴别结果由身份鉴别结果和密钥协商结果两部分组成:身份鉴别管理组件根据鉴别机制与用户交互后返回的身份鉴别结果和认证中间件管理组件的格式需求来生成相应的鉴别结果,它至少应包括用户身份标识,鉴别方式以及鉴别时间三部分内容;身份鉴别管理组件根据鉴别机制与用户交互后返回的密钥协商结果和认证中间件管理组件的格式需求来生成相应的密钥协商结果,它至少应包含协商密钥值以及密钥类型两部分内容。b)状态码根据身份鉴别组件处理结果的不同,有以下几种状态码:UNKOWN_AUTHME THO D 身份鉴别组件不支持此鉴别方式I A_AM I N I T_E R R 鉴别机制初始化错误I A_E R R 身份鉴别管理组件错误I A_AUTH_S U C C 鉴别成功I A_AUTH_F A I L UR E 鉴别失败I A_AUTH_E R R 鉴别错误I A_C ON_E R R 与用户连接错误I A_AM I N I T_S U C C 鉴别机制初始化成功I A_UNKOWN_U S E R 未知用户I A_KA_E R R 密钥协商错误I A_KA_F A I L UR E 密钥协商失败I A_AKA_S U C C 鉴别密钥协商成功11G B/T3 0 2 7 52 0 1 37.2.2.2 鉴别机制接口I A_AM身份鉴别组件通过I A_AM接口与具体的鉴别机制进行交互,用于启动相应的鉴别机制并获取鉴别结果,它需要提供以下的输入和输出:输入:a)用户上下文由身份鉴别组件从认证中间件管理组件处获取,根据用户上下文,鉴别机制实现组件可以获取与用户交互完成鉴别需要的信息。输出:a)鉴别结果鉴别结果由身份鉴别结果和密钥协商结果两部分组成:身份鉴别结果是鉴别结果中必须包含的内容,根据鉴别机制的不同,返回的身份鉴别结果形式是不同的,但是它输出的主要信息就是鉴别过的用户身份标识;根据鉴别机制的不同,除了身份鉴别结果,可能还包含有密钥协商结果,密钥协商结果至少应包含协商密钥值以及密钥类型这两部分信息。b)状态码根据鉴别机制处理结果的不同,有以下几种状态码:AM_I N I T_E R R 鉴别机制初始化错误AM_I N I T_S U C C 鉴别机制初始化成功AM_AUTH_S U C C 鉴别成功AM_AUTH_F A I L UR E 鉴别失败AM_AUTH_E R R 鉴别错误AM_C ON_E R R 与用户连接错误AM_UNKOWN_U S E R 未知用户AM_KA_E R R 密钥协商错误AM_KA_F A I L UR E 密钥协商失败AM_AKA_S U C C 鉴别密钥协商成功7.3 单点登录组件7.3.1 概述单点登录组件主要负责实现用户访问与一个鉴别服务提供方相连的多个应用资源系统时,可以“一次登录,多次访问”的体验过程。本标准只讨论通过记录用户鉴别信息的方式实现的单点登录,不排除具体系统通过实现其他方式的单点登录及进行进一步的扩展。单点登录组件的接口组成如图6所示。图6 单点登录组件接口21G B/T3 0 2 7 52 0 1 3 单点登录组件应实现的功能包括鉴别状态信息添加、维护、查询以及删除。当用户首次完成鉴别后,如果需要实现单点登录,认证中间件管理组件调用单点登录组件的鉴别状态信息添加接口。单点登录组件创建并维护相应的用户鉴别状态记录,该记录中应包含用户的身份标识符,鉴别状态及鉴别状态的有效期。此外,单点登录组件还应在用户访问过程中根据认证中间件管理组件的请求对鉴别状态信息进行更新、删除等。单点登录组件应可对认证中间件管理组件发起的查询请求进行正确响应,对于收到的鉴别状态查询请求,单点登录组件应在其维护的用户鉴别状态记录查找相应的用户记录,并返回一个关于当前用户鉴别状态的查询结果。7.3.2 接口描述7.3.2.1 鉴别状态信息添加接口S S O_A D D单点登录组件通过S S O_A D D接口与上层认证中间件管理组件进行交互,用于添加需要维护的用户鉴别状态信息,并返回一个唯一标识符供查询及维护。它需要提供以下的输入和输出:输入:a)用户上下文认证中间件管理组件根据与用户的交互信息而生成的用户上下文。该上下文为唯一标识了用户与认证中间件的一次会话。b)鉴别结果认证中间件管理组件从身份鉴别组件处获取的鉴别结果,鉴别结果由身份鉴别结果和密钥协商结果两部分组成:身份鉴别结果是鉴别结果中必须包含的内容,根据鉴别机制的不同,返回的身份鉴别结果形式可以是不同的,但是至少应包括用户身份标识,鉴别方式以及鉴别时间这三部分信息;密钥协商结果是鉴别结果中的可选内容,但如果密钥协商结果存在,则至少应包含协商密钥值以及密钥类型这两部分信息。输出:a)唯一标识符S I D由单点登录组件创建的唯一标识符,单点登录组件应创建并维护该唯一标识符与用户鉴别信息相关联的列表,供认证中间件管理组件查询时使用。b)状态码根据单点登录组件处理结果的不同,有以下几种状态码:S S O_E R R 单点登录组件错误S S O_A D D_S U C C 用户鉴别状态维护成功S S O_A D D_F A I L UR E 用户鉴别状态维护失败S S O_A D D_E R R 用户鉴别状态维护错误S S O_UNKOWN_U S E R 未知用户7.3.2.2 鉴别状态信息维护接口S S O_MA I N T单点登录组件通过S S O_MA I NT接口与上层认证中间件管理组件进行交互,用于获取要维护的用户信息并返回一个唯一标识符供查询使用,它需要提供以下的输入和输出:输入:a)唯一标识符S I D在单点登录组件内部维护的用户鉴别信息列表中与用户鉴别信息相关联的唯一标识符。31G B/T3 0 2 7 52 0 1 3b)更新信息用户鉴别状态中需要更新的信息,如用户属性信息等。输出:a)状态码根据单点登录组件处理结果的不同,有以下几种状态码:S S O_E R R 单点登录组件错误S S O_MA I NT_S U C C 用户鉴别状态维护成功S S O_MA I NT_F A I L UR E 用户鉴别状态维护失败S S O_MA I NT_E R R 用户鉴别状态维护错误S S O_UNKOWN_U S E R 未知用户7.3.2.3 鉴别状态信息查询接口S S O_Q U E R Y上层认证中间件管理组件通过S S O_QU E R Y接口与单点登录组件进行交互,通过S I D获取包含用户鉴别状态信息。它需要提供以下的输入和输出:输入:a)唯一标识符S I D在单点登录组件内部维护的用户鉴别信息列表中与用户鉴别信息相关联的唯一标识符,该标识符通过调用鉴别状态维护接口获得。输出:a)查询结果在获取S I D后,单点登录组件查询其维护的列表中是否存在该S I D及与之对应的信息,如果不存在,则返回空值及状态码S S O_QU E R Y_S I DUNKNOWN。否则单点登录组件获取与该S I D相关联的用户鉴别状态信息并返回。b)状态码根据处理结果的不同,有以下几种状态码:S S O_QU E R Y_S U C C 查询成功S S O_QU E R Y_S I DUNKNOWN 无法识别的S I DS S O_QU E R Y_E R R 查询错误7.3.2.4 鉴别状态信息删除接口S S O_D E L E T E上层认证中间件管理组件通过S S O_D E L E T E接口与单点登录组件进行交互,通过S I D删除对应用户的鉴别状态记录。它需要提供以下的输入和输出:输入:a)唯一标识符S I D在单点登录组件内部维护的用户鉴别信息列表中与用户鉴别信息相关联的唯一标识符,该标识符通过调用鉴别状态维护接口获得。输出:a)状态码根据处理结果的不同,有以下几种状态码:S S O_D E L E T E_S U C C 删除成功S S O_D E L E T E_S I DUNKNOWN 无法识别的S I DS S O_D E L E T E_E R R 删除错误41G B/T3 0 2 7 52 0 1 37.4 隐私保护组件7.4.1 概述本标准只对提供假名映射机制的隐私保护组件进行规范,不排除具体实现中,提供其他的隐私保护机制。假名映射机制的实现需要提供的功能包括:首先,能够生成一个用户假名,其他实体无法从用户假名中获取用户名的相关信息,也无法将同一用户的不同假名关联起来;其次,能够识别用户假名对应的真实用户;最后,能够撤销用户假名。如果认证中间件中配置了隐私保护组件,那么在用户鉴别完成后,在认证中间件管理组件返回的鉴别断言中的用户名信息应是用户假名,在之后的一些操作中也都应使用用户假名来作为用户标识。而在用户登出或者会话过期之后,需要调用假名撤销功能来撤销用户假名。同时,在对用户属性进行查询时,也需要由认证中间件管理组件首先查询隐私保护组件获得用户真实身份,进而再调用属性查询组件获得相应属性。隐私保护组件的接口组成如图7所示。图7 隐私保护组件接口7.4.2 接口描述7.4.2.1 假名生成接口P P_A G