论文部分内容阅读
传统的Web服务都是以自身应用为中心,通过对本地已注册用户的身份进行认证,用户可以自由访问应用上的资源。随着网络的发展,不同应用之间通过共享身份和共享用户信息资源的方式,来简化用户的操作,提高用户体验。在这种形式下,出现了大量的身份提供商。身份提供商的核心功能之一就是身份认证和用户信息资源授权,能够提供健全的机制来保护用户的身份信息。本文针对身份信息共享实现的认证授权系统可以为其他应用提供身份认证,该认证机制基于OpenID2.0标准协议,OpenID2.0协议是一个标准的身份认证协议,与其他身份认证协议相比,该协议参与方较少,认证流程清晰简单,让用户使用一个身份登录不同的支持OpenID的应用,这样就可以引导用户在OpenID提供商的认证页面输入口令,通过用户和OpenID提供商的双重认证,来与OpenID依赖方共享身份信息。OpenID2.0协议中没有定义资源授权的概念,本设计的资源授权采用当下非常流行的开放授权协议OAuth2.0。论文分析了 OAuth2.0开放授权协议,通过对OAuth2.0的深入研究,本论文设计了一套完整授权流程,该授权流程以OpenID认证为前提,授权必须经过用户身份的认证,通过OpenID认证之后,才有资格请求用户的受保护资源,即个人身份信息,由于认证时用户可以自定义提供的个人信息,这样就可以避免现在第三方登录普遍出现的一个问题,即授权时强迫用户提供性别、头像等信息。OAuth2.0的授权包含四种模式,本文授权流程的实现基于OAuth2.0的授权码模式,通过用户认证、访问许可、访问令牌、受保护资源的顺序来实现完整的授权流程。在本论文中,除了认证和授权两个核心功能,还增加了角色的概念,支持站点查看和请求管理。在认证授权系统中一个角色可以对应多个身份依赖方,每个用户可以创建多个角色,在对身份依赖方认证时选择相应的角色。通过站点查看功能,用户可以查看与自己身份关联的依赖方信息。认证授权系统中,用户可以推迟处理认证请求和授权请求,请求管理模块支持对这些请求的集中处理。本论文在实现的层面上,对系统的架构采用了纵向分层和横向分模块的设计理念,降低各层和各模块之间的耦合度,使系统结构比较清晰,易于设计和实现。