ADFS 概念与基本开发介绍 (1)

  • 时间:
  • 浏览:0
  • 来源:uu快3下载网站_uu快3开户二维码

原文链接地址:http://nap7.com/me/adfs-introduce-and-develop/

以上给出的相关概念层层递进,类似的概念在不同领域层次有着不同的称谓,为了方便理解,下面对哪几种概念的关系进行简单的总结。

以我的站点与某第三方联合身份验证系统的验证流程为例,其过程也都时需用如下的时序图阐明。



如前所述,AD FS 联合服务代理是运行用户通过Internet进行 AD FS 的客户端身份验证凭据挂接的接口,它会将获取到的凭据传递给联合身份验证服务器进行验证解决。

联合身份验证的主要优势是:

(1)互联网现有的服务提供商不计其数,将会用户时需在每个服务提供商处都申请账户,那对于用户自身来讲无疑是另另有一六个巨大的负担,用户将会有几六个时需维护的身份验证信息,为了访问不同的服务提供商,用户就时需记住每另另有一六个ID和对应口令。将会用户在不同的服务提供商处使用相同的身份验证信息,没有一旦另另有一六个站点处在安全信息的泄露,则将会直接意味用户在所有服务提供商处的信息收到严重威胁;

(2)将会用户以企业员工的身份访问服务提供商,则会涉及到诸如批量用户导入、身份授权、删除授权及用户信息等难题。类似,当另另有一六个属于组织O的用户A以组织员工身份在服务提供商S处注册了另另有一六个账户后,该员工A失去了之前 的组织O,这时,五种用户A就不应该继续在服务S处代表该组织O。此时时需在服务提供商S处将该用户的访问权限清除,而五种操作本应由组织O来完成,对于未使用联合身份验证的系统来说,这是不能自己实现的;

(3)都时需实现单点登录(SSO)。

基于传统的开发法子,创建另另有一六个程序运行(即服务提供商)并保证多种身份验证机制都时需协调工作并完会一件简单的工作。首先,你你你这一人儿时需决定对于特定的程序运行,哪五种身份验证技术最为大约。将会程序运行允许用户通过不同的法子进行访问,类似,允许同属另另有一六个组织下的域用户群体,将会跨越不同组织的多个域下的域用户群体,再将会同去允许哪几种域用户及传统的注册用户通过公网对程序运行进行访问,没有使用传统的单一的身份验证机制是完整篇 没有满足哪几种需求的。在哪几种需求下,程序运行应该以直接经由用户所属的组织或系统处获取对应用户验证的结果。同去,也时需从另另有一六个AD目录服务或其它某处查询到用户相关的信息,但会 保证哪几种信息都时需在公网上,并能以统一的法子进行传递。

基于Claims的身份验证(Claims-based identity)为你你你这一人儿提供了五种统一的身份验证法子,让不同的服务提供商都时需通过公网,获得所时需的保处在用户所属组织內部的关于用户的验证信息。其基本流程如下图所示。

联合身份验证(Federated Identity)是五种用户身份的验证法子,五种验证法子通过把用户身份的验证过程与被该用户访问的服务提供商(SP,Service Provider,如你你你这一人儿此人 的站点)进行逻辑分离,在保证用户身份信息被隔离在用户所属系统的內部的同去,为受信任的服务提供商提供所时需的用户信息。

当服务提供商时需对用户的身份进行验证时,会将相关的验证过程转交给身份验证提供方(IdP,Identity Provider,如AvePoint域的 AD FS 验证服务),当用户经由身份验证提供方成功登录后,身份验证提供方会将用户的身份验证凭据和用户相关的信息返还给服务提供商,从而实现服务提供商对于用户身份的验证,以及对于用户信息获取。

常见的联合身份验证的实现有SAML、OAuth、OpenID等法子,本文主要介绍的是基于Claims和SAML 2.0的 AD FS 联合身份验证。在基于Claims的联合身份验证的过程中,当身份验证提供方完成对于用户身份的验证,返还用户的相关信息时,其数据信息实体被称之为令牌(Token),其中的相关信息字段被称为声明(Claims)。令牌保证了用户身份的真实性,并中有 了实用信息,其型态如下图所示。

如前所述,你你你这一人儿涉及到另另有一六个新的概念,依赖方与安全令牌服务。

信赖方(RP,Relying Party)就大约服务提供商,也太满太满由你你你这一人儿构建的依赖声明的程序运行(如我的网站)。信赖方有时也被称为“声明感知程序运行”或“基于声明的程序运行”。信赖方作为程序运行时需使用由安全令牌服务(STS)所颁发的令牌,并从令牌中提取声明,从而进行用户身份的验证和用户信息的获取。

安全令牌服务(STS,Security Token Service),信赖方所使用的令牌的创建者太满太满安全令牌服务。它作为另另有一六个Web服务处在。STS都时需由你你你这一人儿自行构建,也都时需应用已有的实现,AD联合身份验证服务(AD FS)太满太满另另有一六个STS的实现。

为了充分利用基于Claims的身份验证机制,你你你这一人儿将会使用由微软提供的用于支撑程序运行实现联合认证功能的可供依赖的基础架构。哪几种技术包括:AD联合身份验证服务(AD FS,Active Directory Federation Services),与Windows身份验证基础类库(WIF,Windows Identity Foundation)。

下图对相关的领域型态进行了划分。

Active Directory联合身份验证服务(AD FS,Active Directory Federation Services)是由微软自Windows Server 60 3 R2起,在各个Server版本操作系统中提供的另另有一六个软件组件,其最新版本是集成在Windows Server 2012 R2的AD FS 3.0。

AD FS 使用基于Claims的访问控制验证模型来实现联合认证。它提供 Web 单一登录技术,另另另有一六个就是在会话的有效期内,就可对一次性的对用户所访问的多个Web程序运行进行验证。

你你你这一人儿都时需将 AD FS 理解为组织域内与公网之外用户桥梁。你你你这一人儿编写的程序运行作为Internet服务在公网部署,当程序运行时需对域内的用户进行验证时,就都时需委托 AD FS 服务器进行验证。 AD FS 服务提供了另另有一六个 AD FS 联合服务器代理,类似似于另另有一六个只提供了登录界面的程序运行,你你你这一人儿将相关域用户的验证过程委托给该程序运行进行解决,该程序运行将提示用户输入验证凭据(这都时需是在浏览器中弹出登录提示框或跳转到另另有一六个登录页面的形式),但是其将所获取的凭据传递给AD FS联合身份验证服务。 AD FS 作为AD的一累积有权限(其拥有AD域管理员的权限)使用AD DS的标准法子认证另另有一六个域内的用户,将会认证成功,AD FS 将会法子程序运行预先设定的信息需求,以Claims的形式将安全令牌信息返还给你你你这一人儿的程序运行。

基于注册用户的账户管理法子无须能很好地适用于商业系统的使用场景。类似,当系统相关管理人员失去组织后,仍需你你你这一的管理者对系统内相关联的账户信息进行进一步的维护。对于组织账户的信息应该交由组织的域服务器进行统一的管理及验证。但会 ,你你你这一人儿时需为系统上加独立的基于AD FS的联合身份验证。从而使系统既支持传统的注册用户,又支持域用户的使用。当用户登录时,系统会检查用户账户的后缀名,将会账户名称以someone@nap7.com形式输入,将会采用nap7someone的形式,则认定为域用户,系统将会自动跳转到AD FS联合身份验证服务器,进行用户身份的验证,将会验证通过,其使用法子与正常的注册用户完整篇 一致。

Windows身份验证基础类库(WIF,Windows Identity Foundation)是一组.NET Framework类,它为你你你这一人儿提供了实现基于声明标识的程序运行的基础框架。在具体的实现过程中,主要利用了其中的WSFederation Authentication Module(WS-FAM)HTTP模块。

本文会首先介绍与联合身份验证有关的概念及相关的系统设计意图,随完会对 ADFS 联合身份验证的配置过程、型态及解决流程进行阐述。但会 会基于已有的系统提出另另有一六个支持多 ADFS 联合身份验证的改进实例,并对其型态及解决流程进行阐述。最完会对开发过程中所遭遇的你你你这一难题进行介绍。真诚希望本文并能帮助读者较快地了解联合身份验证的相关知识。

(如您转载本文,时需标明本文作者及出处。如有任何难题请与我联系 me@nap7.com)

将会你你你这一人儿的项目太满太满针对公司內部的成员使用,继承单个ADFS是足够的,但会 ,当项目作为云端服务,针对的用户群体将会是太满太满个企业级的用户。但会 ,就产生了对于多AD FS域独立验证的需求。基于已有的单AD FS的实现,本文稍完会提供另另有一六个支持多个AD域AD FS的联合身份验证服务的实现示例。

将会时需实现多个域的域用户登录,首先时需将相关域的AD FS配置信息保处在系统的数据库中,并提供相应法子,都时需解蒸发用户所对应的域。这都时需通过在用户信息表中保存用户对应的域配置,也都时需通过用户的名称来获取对应配置。在获取相应的AD FS配置后,你你你这一人儿时需通过WIF所提供的API及相关事件,对当前用户的AD FS配置信息及完成验证后所时需的证书指纹信息进行设置。设置完成后,系统将会跳转到对应的AD FS登录页面,从而对用户的身份进行验证。验证成功后,跳转回系统,完成Security Token的验证。完成哪几种操作后,系统将生成用户的Cookie,完成登陆流程。

首先,用户通过客户端(如浏览器),访问服务提供商(如图中①过程,相对于身份验证提供方也都时需称其为信赖方RP)。信赖方向身份验证提供方提出验证请求(如图中②所示),身份验证提供方会要求用户输入登陆凭据(如用户名及验证码)。在通过其验证确认后,身份验证提供方会将验证成功的消息及该用户相关的数据信息以令牌的法子交还给信赖方(如图中③所示)。

本文转自   流原炫   51CTO博客,原文链接:http://blog.51cto.com/xiaoyuanzheng/1963744