现代身份认证协议(By Gemini)
现代身份认证协议(By Gemini)
第一部分:数字身份技术概览
在当今高度互联的数字世界中,安全地验证用户身份(认证)并确定其访问权限(授权)已成为所有数字系统的核心挑战 1。随着应用程序架构从传统的单体式、本地部署系统演变为分布式的、基于Web、移动和API驱动的服务,身份验证技术也经历了深刻的演进。这种演进的根本驱动力在于,不同时代的应用架构对身份验证协议提出了截然不同的要求。
本报告旨在深入剖析除SAML 2.0和OAuth 2.0之外的其他关键身份验证技术,并详细阐述它们的核心技术要点。为了构建一个完整的知识体系,我们首先简要回顾这两个基础性协议,它们是理解后续技术演进的基石。
SAML 2.0:企业级联合身份认证的基石
安全断言标记语言(Security Assertion Markup Language, SAML)2.0版于2005年被OASIS组织批准为标准,是专为实现跨安全域的Web单点登录(Single Sign-On, SSO)而设计的开放标准 3。其核心目标是让用户在认证到一个系统(身份提供商, Identity Provider, IdP)后,能够无缝访问其他多个独立的系统(服务提供商, Service Provider, SP),而无需在每个系统中重复登录 1。
SAML的运作基于XML(可扩展标记语言)格式的“断言”(Assertions)。这些断言是由IdP签发的、包含用户身份、属性和授权信息的数字签名XML文档,如同数字世界中的护照或工作证明 3。当用户尝试访问SP时,SP会将其重定向至IdP进行认证。认证成功后,IdP生成一个SAML断言,并通过用户的浏览器(作为中介)传递给SP。SP验证该断言的数字签名和内容,从而信任用户的身份并授予其访问权限 5。
SAML的出现极大地解决了企业环境中跨多个Web应用进行身份联合的难题。然而,其基于XML的冗长格式和依赖浏览器重定向的工作流,使其在轻量级的单页面应用(SPA)和原生移动应用场景中显得较为笨重和复杂 7。
OAuth 2.0:授权框架的行业标准
与专注于认证的SAML不同,OAuth 2.0是一个授权框架(RFC 6749),其核心目标是实现“委托授权”(Delegated Authorization)2。它允许一个第三方应用(客户端)在获得资源所有者(通常是最终用户)的授权后,有限度地访问其在某个服务(资源服务器)上托管的受保护资源,而无需获取用户的密码等长期凭证 2。
例如,当一个照片编辑应用请求访问您存储在Google Photos中的照片时,它使用的就是OAuth 2.0。您会被引导至Google的授权页面进行登录和授权,但您并未将Google密码直接提供给照片编辑应用。Google(作为授权服务器)会向该应用颁发一个有时效性、有范围限制的“访问令牌”(Access Token)。应用凭借此令牌,即可访问您授权的照片资源 10。
OAuth 2.0定义了四个核心角色:资源所有者(Resource Owner)、客户端(Client)、授权服务器(Authorization Server)和资源服务器(Resource Server)12。它还定义了多种授权流程(称为“授权许可类型”,Grant Types),如授权码流程、隐式流程等,以适应不同类型的客户端(如Web服务器应用、移动应用、SPA)2。
一个至关重要的区别是,OAuth 2.0本身只关注授权,即“允许做什么”,而没有标准化认证,即“确认是谁”的过程 14。这个架构上的“空白”为后续协议的诞生埋下了伏笔,也揭示了技术演进的内在逻辑:随着API和移动应用的爆炸式增长,市场急需一个既能利用OAuth 2.0强大授权能力,又能提供轻量级、标准化认证的解决方案。
第二部分:OpenID Connect (OIDC):现代Web的身份层
OpenID Connect (OIDC) 并非OAuth 2.0的竞争者或替代品,而是构建在其之上的一个至关重要的身份认证层 16。它巧妙地填补了OAuth 2.0在认证领域的空白,通过标准化的方式解决了“用户是谁”的问题,从而成为现代Web应用、移动应用和单页面应用(SPA)事实上的标准认证协议 18。
OIDC的核心原则与架构
OIDC的核心设计理念是“在授权之上构建认证”。它继承了OAuth 2.0的完整框架,包括其角色定义和授权流程,并在此基础上增加了一个轻量级的身份层 15。这种设计避免了重新发明轮子,使得已经熟悉OAuth 2.0的开发者能够快速上手。
在OIDC的语境中,OAuth 2.0的角色被重新命名以突出其身份认证的职责 15:
- 客户端(Client) 成为 信赖方(Relying Party, RP):即需要对用户进行身份认证的应用程序。
- 授权服务器(Authorization Server) 成为 OpenID提供商(OpenID Provider, OP):负责认证用户并向RP提供身份信息的实体,例如Google、Microsoft Entra ID或Auth0 16。
关键技术点:ID令牌(ID Token)
OIDC引入的最核心构件是ID令牌(ID Token)。这是一个符合JSON Web Token (JWT)格式的安全令牌,由OP在用户成功认证后颁发给RP 2。ID令牌本身就包含了关于认证事件和用户的关键信息(称为“声明”,Claims),使RP能够直接在本地验证用户身份,而无需额外的网络请求。
ID令牌的标准声明
OIDC规范定义了一套标准声明,以确保不同OP和RP之间的互操作性。这些声明是键值对,包含在JWT的载荷(Payload)中 18。
声明 (Claim) | 全称 | 描述 | 关键作用 |
---|---|---|---|
iss | Issuer | 发行者。颁发ID令牌的OP的唯一标识符(通常是一个URL)。 | RP必须验证此值是否与其信任的OP匹配20。 |
sub | Subject | 主题。OP中用户的唯一标识符。这是用户的“主键”。 | 稳定且唯一的标识用户,用于关联RP中的账户20。 |
aud | Audience | 受众。ID令牌的预期接收者,即RP的客户端ID。 | RP必须验证此值是否包含自己的客户端ID,防止令牌被误用于其他应用20。 |
exp | Expiration Time | 过期时间。一个Unix时间戳,表示此ID令牌在此时间之后失效。 | RP必须验证当前时间是否在过期时间之前,防止重放攻击20。 |
iat | Issued At | 颁发时间。一个Unix时间戳,表示ID令牌的颁发时间。 | 可用于确定令牌的“年龄”20。 |
nonce | Nonce | 随机数。一个由RP在认证请求中生成并发送的字符串。 | OP必须在ID令牌中原样返回此值。RP验证返回的nonce与初始发送的是否一致,以缓解重放攻击和关联客户端会话与ID令牌,这是防止CSRF攻击的关键机制15。 |
除了这些核心声明,ID令牌还可以包含其他用户信息,如name、email、picture等 18。
ID令牌的验证
RP收到ID令牌后,必须执行严格的验证流程才能信任它 20:
- 签名验证:使用从OP获取的公钥验证JWT的签名,确保令牌未被篡改。
- 声明验证:验证iss、aud、exp、nonce等声明是否符合预期。
关键技术点:架构组件与动态发现
OIDC不仅定义了ID令牌,还标准化了一系列架构组件,极大地简化了集成过程。
- UserInfo端点:这是一个受OAuth 2.0访问令牌保护的API端点。RP可以使用从OP获取的访问令牌(与ID令牌一同返回)来调用此端点,以获取更多关于用户的详细信息(如地址、电话号码等)17。这种设计将核心认证信息(在ID令牌中)与丰富的用户资料(在UserInfo端点)分离,保持了ID令牌的轻量性。
- OIDC提供商配置文档(Discovery Document):这是OIDC相比于SAML的一大优势。每个OP都会在一个标准化的URL(通常是.well-known/openid-configuration)发布一个JSON格式的元数据文档 17。该文档包含了OP的所有关键信息,例如:
- 授权端点(authorization_endpoint)和令牌端点(token_endpoint)的URL。
- UserInfo端点的URL(userinfo_endpoint)。
- 用于签名验证的公钥集(JWKS)的URL(jwks_uri)。
- 支持的范围(scopes_supported)、响应类型(response_types_supported)、声明(claims_supported)等。
通过这个“发现文档”,RP可以动态地配置自身,而无需像SAML那样手动交换和解析复杂的XML元数据文件,这大大降低了集成的复杂性和出错率 8。
关键技术点:认证流程
OIDC主要利用OAuth 2.0的授权流程来获取ID令牌和访问令牌。
- 授权码流程(Authorization Code Flow):这是最常用且最安全的流程,适用于Web服务器应用 17。用户被重定向到OP进行认证,认证成功后,OP返回一个一次性的
授权码给RP。然后,RP在后端使用此授权码、客户端ID和客户端密钥向OP的令牌端点交换ID令牌和访问令牌。 - 带有PKCE的授权码流程(Authorization Code Flow with PKCE):对于无法安全存储客户端密钥的公共客户端(如原生移动应用和SPA),必须使用带有代码交换证明密钥(Proof Key for Code Exchange, PKCE) 的授权码流程 16。
-
在发起认证请求前,RP生成一个随机的code_verifier。
-
RP对code_verifier进行哈希和Base64URL编码,生成code_challenge,并将其随认证请求发送给OP。
-
OP在返回授权码时,会存储code_challenge。
-
当RP用授权码交换令牌时,必须同时提供原始的code_verifier。
-
OP会验证收到的code_verifier是否与之前存储的code_challenge匹配。只有匹配成功,才会颁发令牌 23。
PKCE有效地防止了授权码被恶意应用截获和冒用,是当前所有客户端类型的最佳实践。
- 隐式流程(Implicit Flow):此流程曾用于SPA,它直接在URL片段中返回ID令牌和/或访问令牌。由于令牌直接暴露在浏览器中,存在严重的安全风险,因此在现代实践中已被弃用,并被带有PKCE的授权码流程所取代 17。
OIDC的成功源于其务实的设计哲学。它没有试图推翻已有的标准,而是在广泛采纳的OAuth 2.0授权框架之上,叠加了一个最小化且标准化的认证层。正是这种对开发者友好、基于JSON/REST的轻量级设计,使其完美契合了现代应用对性能、简洁性和API友好性的需求,从而在移动和Web认证领域占据了主导地位。
第三部分:Kerberos:企业网络认证的基石
Kerberos是一种历史悠久且极为强大的网络认证协议,专为在不安全的网络(如企业局域网)中,在受信任的主机之间提供安全认证而设计 25。它由麻省理工学院(MIT)的雅典娜计划(Project Athena)于1980年代开发,其名称源于希腊神话中守卫地狱的三头犬“刻耳柏洛斯”,象征其由三个核心部分组成的架构 25。Kerberos是Windows Active Directory(AD)域环境中默认的认证协议,是企业内部实现单点登录(SSO)的基石 26。
Kerberos的核心原则与架构
Kerberos的核心思想是基于对称密钥加密和一个受信任的第三方来避免在网络中直接传输密码 25。它不仅提供单向认证,更重要的是实现了
双向认证(Mutual Authentication),即客户端需要向服务器证明自己的身份,同时服务器也需要向客户端证明自己的身份,这有效抵御了中间人攻击 25。
Kerberos架构主要包含以下组件:
- 主体(Principal):网络中任何可以进行认证的实体,可以是一个用户(User Principal)或一个服务(Service Principal)26。
- 领域(Realm):一个由单一Kerberos数据库管理的逻辑管理域,所有在该领域内的主体都信任该领域的KDC 26。
- 密钥分发中心(Key Distribution Center, KDC):这是Kerberos体系中最核心的受信任第三方。KDC通常运行在域控制器上,并使用AD数据库作为其安全账户数据库 27。KDC由两个逻辑服务组成 25:
- 认证服务器(Authentication Server, AS):负责处理客户端的初始认证请求,验证用户身份,并颁发一个“票据授予票据”(TGT)。
- 票据授予服务器(Ticket-Granting Server, TGS):负责根据客户端提供的有效TGT,为其颁发访问特定服务的“服务票据”(Service Ticket)。
关键技术点:基于票据的系统
Kerberos的整个认证过程围绕着“票据”(Tickets)的交换展开,这些票据是经过加密的数据结构,用作身份证明 25。
- 对称密钥加密:Kerberos的基础是共享密钥。每个主体(用户或服务)都与KDC共享一个唯一的长期密钥。对于用户而言,这个密钥通常是从其密码通过单向哈希函数派生而来的 25。
- 票据授予票据(Ticket-Granting Ticket, TGT):这是用户通过初始认证后从AS获得的“黄金票据”。TGT本身使用TGS的密钥进行加密,因此客户端无法读取其内容。TGT中包含了客户端的身份信息、票据有效期以及一个非常重要的客户端/TGS会话密钥(Client/TGS Session Key)。AS会将此会话密钥连同TGT一起发送给客户端,但会话密钥本身是用客户端的密钥(即用户密码的哈希)加密的 30。
- 服务票据(Service Ticket, ST):当客户端需要访问某个特定服务时,它会向TGS出示TGT,请求该服务的票据。TGS验证TGT后,会颁发一个服务票据。服务票据使用目标服务的密钥进行加密,客户端同样无法读取其内容。ST中包含客户端身份信息以及一个新的客户端/服务会话密钥(Client/Service Session Key)。TGS会将此会话密钥连同ST一起发送给客户端,而这个会话密钥是用之前建立的客户端/TGS会话密钥加密的 29。
- 认证器(Authenticator):为了防止票据被截获后重放,客户端在每次向TGS或服务服务器发送请求时,都会附带一个“认证器”。认证器是一个包含客户端信息和当前时间戳的数据结构,并使用相应的会话密钥(Client/TGS或Client/Service)进行加密。由于认证器是加密的且包含时间戳,它只能被使用一次,且有效期极短(通常为几分钟),从而确保了请求的新鲜性 30。
关键技术点:认证工作流程
Kerberos的认证流程虽然在后台很复杂,但对用户来说是无缝的 28。整个过程可以类比为在游乐园中先用现金买入场券(TGT),再用入场券去换取各个游乐项目的票(ST),最后凭项目票去玩项目 29。
- AS认证请求(AS-REQ):用户登录时,客户端向KDC的AS服务发送请求,请求中包含用户的Principal Name。
- AS认证回复(AS-REP):AS在AD中查找用户,用用户的密码哈希生成密钥。验证成功后,AS生成一个Client/TGS会话密钥。然后,AS将两部分信息返回给客户端:
- TGT(使用TGS的密钥加密)。
- Client/TGS会话密钥(使用用户的密钥加密)30。
- TGS票据请求(TGS-REQ):客户端收到回复后,提示用户输入密码,并用密码哈希解密得到Client/TGS会话密钥。当用户需要访问某个服务(如文件服务器)时,客户端使用该会话密钥创建一个认证器,然后将TGT、认证器以及目标服务的服务主体名称(SPN)一同发送给KDC的TGS服务。
- TGS票据回复(TGS-REP):TGS收到请求后,用自己的密钥解密TGT,从中获取Client/TGS会话密钥,再用此会话密钥解密认证器以验证客户端。验证通过后,TGS生成一个新的Client/Service会话密钥,并返回两部分信息给客户端:
- 服务票据(ST)(使用目标服务的密钥加密)。
- Client/Service会话密钥(使用Client/TGS会话密钥加密)30。
- 应用服务器请求(AP-REQ):客户端收到回复后,用Client/TGS会话密钥解密得到Client/Service会话密钥。然后,客户端使用这个新的会话密钥创建另一个认证器,并将服务票据(ST)和这个新的认证器一同发送给目标服务服务器。
- 双向认证:服务服务器用自己的密钥解密服务票据,得到Client/Service会话密钥,再用此密钥解密认证器,从而验证了客户端的身份。作为双向认证的一部分,服务器可以向客户端发送一个回复(AP-REP),用会话密钥加密,以证明自己的身份 30。
完成此流程后,客户端和服务之间就建立了一个安全的通信会话,而用户的密码从未在网络上传输。
关键技术点:服务主体名称(Service Principal Name, SPN)
SPN是服务实例的唯一标识符,格式通常为service_class/host:port/service_name(例如 HTTP/webserver.example.com)26。当客户端想要访问一个服务时,它必须知道该服务的SPN。KDC使用SPN来查找并使用相应服务的密钥来加密服务票据。SPN的正确配置对于Kerberos认证至关重要。
Kerberos的设计哲学深刻地反映了其诞生于一个受信任、高控制的局域网环境(LAN)的背景 25。它对集中的KDC、严格的时间同步(通常要求客户端与KDC时钟偏差不超过5分钟)以及领域内预先建立的信任关系的依赖,使其在企业内部网络中表现出无与伦比的安全性 34。然而,也正是这些特性,使其天然不适用于开放、无信任、无状态的互联网环境 35。这种环境的制约是根本性的,它解释了为何需要为不同的网络领域(企业内网 vs. 互联网)发明不同的协议(Kerberos vs. SAML/OIDC),并催生了连接这两个世界的架构挑战,例如通过ADFS或Azure AD Kerberos等技术来桥接内网与云服务。
第四部分:轻量级目录访问协议 (LDAP):基础目录服务
轻量级目录访问协议(Lightweight Directory Access Protocol, LDAP)在身份验证领域扮演着一个基础性但常被误解的角色。与SAML、OIDC或Kerberos这些专注于定义认证交换流程的协议不同,LDAP本身不是一个完整的认证协议,而是一个用于访问和维护分布式目录信息服务的开放、跨平台的应用协议 37。它的核心价值在于提供了一种标准化的语言,让应用程序能够与目录服务器进行通信,查询和管理存储在其中的身份数据 37。
关键技术点:协议而非产品
理解LDAP的关键在于区分协议与实现该协议的产品。LDAP是一套规则,而诸如Microsoft Active Directory (AD)、OpenLDAP、Red Hat Directory Service等是实现了这些规则的目录服务器产品 37。因此,当一个组织说“我们使用LDAP进行认证”时,其准确含义通常是“我们的应用程序通过LDAP协议,向一个目录服务器(如AD或OpenLDAP)验证用户凭据” 37。这种区别至关重要,因为它揭示了现代身份架构的一个核心模式:
身份数据存储与认证协议的分离。
关键技术点:数据模型与结构
LDAP目录以一种层级化的树状结构组织数据,称为目录信息树(Directory Information Tree, DIT) 42。这种结构使得信息能够被高效地组织和检索。
- 条目(Entry):DIT中的每个节点都是一个条目,代表一个对象,如一个用户、一个计算机或一个组织单元。
- 专有名称(Distinguished Name, DN):每个条目都有一个唯一的DN,它相当于该条目在DIT中的完整路径,从条目自身一直追溯到树的根。例如,一个用户的DN可能是 cn=John Doe,ou=Users,dc=example,dc=com 38。
- 相对专有名称(Relative Distinguished Name, RDN):RDN是DN的一部分,它在DIT的同一层级内是唯一的。在上述例子中,cn=John Doe 就是RDN 38。
- 属性(Attributes)和对象类(Object Classes):每个条目由一组属性构成,每个属性都有一个类型和一个或多个值(例如,cn表示通用名称,mail表示电子邮件地址)44。条目可以拥有的属性由其
对象类(如inetOrgPerson、groupOfNames)定义,这些对象类和属性的定义集合构成了目录的模式(Schema) 38。
关键技术点:用于认证的LDAP操作
尽管LDAP的主要功能是查询和修改,但它也提供了用于认证的机制,核心是绑定(Bind) 操作。
- 绑定操作:这是客户端向服务器证明其身份的过程。客户端向服务器发送一个bind请求,其中包含一个DN和相应的凭据 44。
- 简单绑定(Simple Bind):这是最基础的绑定方式,客户端直接发送用户的DN和明文密码。由于密码以明文形式传输,这种方式本身是不安全的,必须在加密的通道上进行,例如使用LDAPS(LDAP over SSL/TLS,默认端口636)或通过StartTLS在标准端口389上建立TLS连接 37。
- SASL绑定(Simple Authentication and Security Layer):这是一种更高级、更安全的绑定机制。SASL将LDAP协议与具体的认证方法解耦,允许LDAP委托认证给其他更强大的系统 37。最常见的SASL机制是GSSAPI,它通常用于集成Kerberos认证。通过SASL/GSSAPI,客户端可以使用其Kerberos票据向LDAP服务器进行认证,而无需在网络上传输密码,从而实现了高强度的安全认证 37。
关键技术点:与Active Directory和Kerberos的关系
在企业环境中,LDAP、Active Directory和Kerberos三者紧密协作,形成了一个完整的身份管理生态系统。
- Active Directory作为目录服务:AD是微软推出的目录服务产品,它在内部使用一个数据库来存储用户、组、计算机等对象的信息。LDAP是访问和查询这些信息的主要协议之一 37。例如,一个应用需要获取用户的组成员信息以进行授权决策时,它会向AD发送一个LDAP查询请求。
- Kerberos作为AD的认证协议:虽然可以通过LDAP简单绑定向AD验证密码,但AD域内首选和默认的认证协议是Kerberos 27。Kerberos提供了更强的安全性(如双向认证)和无缝的SSO体验。
- 协同工作模式:在一个典型的AD环境中,一个应用程序的认证和授权流程可能是这样的:
- 认证:应用程序利用Kerberos(通过集成Windows认证)实现SSO,安全地验证用户的身份,而无需用户再次输入密码。
- 授权:认证成功后,应用程序可能需要知道该用户所属的部门或角色。此时,它会使用一个服务账户,通过LDAP协议向AD发起查询,获取该用户的组成员等属性信息。
- 决策:基于从LDAP查询到的信息,应用程序做出授权决策,决定用户可以访问哪些功能或数据 34。
这种架构清晰地体现了关注点分离的原则:Kerberos负责“你是谁”,LDAP负责“关于你的一切信息”。这种解耦能力是现代身份与访问管理(IAM)的关键,它允许组织利用一个中央目录(如AD)作为“单一事实来源”(Single Source of Truth),同时支持多种认证协议(Kerberos用于内网,SAML/OIDC用于Web和云应用)来满足不同应用场景的需求。这种能够跨异构环境提供一致身份服务的能力,正是“身份经纬(Identity Fabric)”这一新兴架构理念的核心思想 48。
第五部分:FIDO2与WebAuthn:无密码、抗钓鱼认证新标准
FIDO2及其核心组件WebAuthn代表了身份认证领域的一次范式转变,其目标是从根本上解决传统密码认证的固有缺陷。它并非对现有认证方式的简单改良,而是通过采用公钥密码学,旨在彻底消除“共享秘密”(即密码),从而实现真正意义上的无密码(Passwordless)和抗网络钓鱼(Phishing-Resistant) 的认证 49。
FIDO2的核心原则与架构
FIDO2是由FIDO联盟(Fast Identity Online Alliance)和W3C(万维网联盟)共同推出的开放认证标准。它是一个框架,旨在通过用户拥有的设备(如手机、电脑或安全密钥)来完成安全认证,提供比密码更安全、更便捷的登录体验 49。
关键技术点:FIDO2框架 (FIDO2 = WebAuthn + CTAP)
FIDO2标准由两个核心规范组成,它们协同工作,构成了完整的无密码认证生态 49:
- WebAuthn (Web Authentication):由W3C制定的一个JavaScript API标准。它被集成到现代浏览器中,为Web应用程序提供了一个标准化的接口,使其能够调用认证器来创建和使用基于公钥的凭证,而无需处理底层复杂的密码学操作 49。
- CTAP (Client to Authenticator Protocol):由FIDO联盟制定的协议。它定义了客户端(如浏览器或操作系统)与认证器(Authenticator) 之间的通信方式,特别是与外部的“漫游认证器”(如通过USB、NFC或蓝牙连接的安全密钥)进行交互 49。CTAP1(原名U2F)专注于第二因素认证,而CTAP2则支持完整的无密码体验。
关键技术点:公钥密码学的实际应用
FIDO2的核心安全保障来源于公钥密码学。它为用户在每一个服务上都创建一对独一无二的密钥对(公钥和私钥),彻底取代了在多个服务间可能重复使用的密码 50。
- 私钥(Private Key):在注册过程中生成,并安全地存储在用户的设备上,例如存储在硬件的安全模块(如TPM芯片)或安全区(Secure Enclave)中。最关键的一点是,私钥永远不会离开用户的设备 50。
- 公钥(Public Key):与私钥配对的公钥则被发送到在线服务(在WebAuthn中称为信赖方,Relying Party, RP)进行注册并与用户账户关联 54。
- 认证过程:认证不再是发送密码,而是一个“挑战-响应”过程。服务方向用户设备发送一个随机的挑战(challenge),设备上的认证器使用私钥对这个挑战进行数字签名,然后将签名结果(称为“断言”,assertion)返回给服务方。服务方使用之前注册的公钥来验证签名的有效性,从而确认用户拥有对应的私钥,即证明了用户的身份 50。
关键技术点:密码学仪式(Cryptographic Ceremonies)
WebAuthn API定义了两个核心的密码学流程:
- 注册(Registration):通过调用navigator.credentials.create() API启动。
- RP(Web应用)向浏览器请求创建一个新凭证,并提供用户信息和服务器生成的随机挑战。
- 浏览器调用认证器,认证器提示用户进行验证(如触摸指纹、输入PIN)。
- 验证通过后,认证器生成一对新的公钥/私钥,将私钥安全存储,并将公钥和一份证明(Attestation)(证明该密钥对确实由可信的认证器生成)返回给浏览器,最终由浏览器提交给RP。
- RP存储公钥和凭证ID,用于未来的认证 54。
- 认证(Authentication):通过调用navigator.credentials.get() API启动。
- 用户尝试登录,RP向浏览器发送一个包含凭证ID和新挑战的请求。
- 浏览器调用认证器,认证器找到与该RP和凭证ID对应的私钥,并提示用户进行验证。
- 验证通过后,认证器使用私钥对挑战和一些客户端数据进行签名,生成一个认证断言。
- 浏览器将此断言发送给RP,RP使用存储的公钥进行验证。验证成功,用户即登录 54。
关键技术点:认证器与通行密钥(Passkeys)
FIDO2生态系统中的认证器多种多样,为用户提供了灵活的选择:
- 平台认证器(Platform Authenticators):直接内置于用户设备中的认证器,如笔记本电脑上的Windows Hello或苹果设备上的Touch ID/Face ID 55。
- 漫游认证器(Roaming Authenticators):可独立于特定设备的外部认证器,通常通过USB、NFC或蓝牙(BLE)连接,例如YubiKey等硬件安全密钥 55。
- 通行密钥(Passkeys):这是对FIDO凭证的用户友好型品牌化术语,代表了FIDO2的最新发展方向。Passkeys是“可发现的凭证”(Discoverable Credentials),它们不仅存储在单个设备上,还可以通过主流平台提供商(如苹果、谷歌、微软)的云服务在用户的多个设备之间安全同步 49。这极大地解决了FIDO凭证早期版本中“凭证与设备绑定”所带来的用户体验和账户恢复难题。如果用户更换手机,其Passkeys可以自动同步到新设备上,无需重新注册 58。
关键技术点:抗网络钓鱼的内在机制
FIDO2/WebAuthn的抗钓鱼能力是其设计的核心优势,而非附加功能。
- 来源绑定(Origin-Bound):在注册时,FIDO凭证与创建它的网站的来源(Origin)(即域名)进行了加密绑定 52。
- 浏览器强制验证:当用户尝试在某个网站上进行认证时,浏览器会验证该网站的来源是否与凭证中记录的来源匹配。如果不匹配,浏览器根本不会允许认证器使用相应的私钥进行签名。
- 消除人为错误:这意味着,即使用户被诱骗访问了一个外观一模一样的钓鱼网站(例如 mybank.fake.com),该网站也无法请求使用为真实网站(mybank.com)创建的凭证。浏览器级别的强制检查从根本上杜绝了钓鱼攻击的可能性,因为认证的成败不再依赖于用户辨别网站真伪的能力 60。
FIDO2的出现标志着身份认证从基于知识的认证(用户知道什么,如密码)向基于持有的认证(用户拥有什么,如设备上的私钥)的根本性转变。而Passkeys的演进,则是对这一技术革命在用户体验层面的关键优化。它通过云同步解决了设备丢失或更换带来的账户锁定风险,尽管这也引入了对平台生态系统的依赖。这一趋势表明,未来的消费者认证市场将在Passkeys带来的便捷与安全,以及去中心化身份模型所倡导的隐私与控制之间展开竞争。对于企业架构师而言,这意味着必须开始规划和支持这种架构上截然不同但极为强大的新型认证方式。
第六部分:安全分析:漏洞、威胁与缓解措施
任何身份验证协议的安全性不仅取决于其理论设计的严谨性,更在于实际部署中的实现质量。协议的复杂性、配置的灵活性以及开发者的疏忽都可能引入严重的安全漏洞。本部分将深入剖析前述几种关键技术在实践中面临的主要威胁,并提供经过验证的缓解策略。
SAML安全分析
SAML作为一种基于XML的成熟协议,其安全性高度依赖于对复杂XML文档的正确解析和验证。
- XML签名包装(XML Signature Wrapping, XSW):这是SAML实现中最严重和最常见的漏洞之一。攻击者通过精心构造一个SAML响应,将一个合法的、已签名的
元素“包装”在其他XML结构中,同时插入一个未经签名的、恶意的 元素 62。如果服务提供商(SP)的验证逻辑存在缺陷——例如,它先验证了整个文档中存在的那个合法签名,然后却简单地提取并使用了文档中出现的第一个
元素——那么它实际上处理的就是攻击者伪造的断言,这可能导致权限提升或账户冒用 62。 - 缓解措施:防御XSW攻击的核心原则是:验证与使用必须强绑定。SP的实现绝不能使用通用的XML查询方法(如getElementsByTagName)来查找断言。正确的流程是:首先,验证签名;其次,通过签名的
元素定位到被签名的具体XML元素(通过其ID);最后,只处理这个被签名验证过的元素及其子元素 62。此外,在进行任何安全处理之前,应使用本地缓存的、受信任的Schema对收到的XML文档进行严格的结构验证 64。 - XML外部实体注入(XML External Entity, XXE)与规范化(Canonicalization, C14N)攻击:这些攻击利用了XML解析器本身的漏洞。
- XXE:如果XML解析器配置不当,允许处理外部实体定义(DTD),攻击者可以构造恶意的XML,迫使服务器读取本地文件、发起网络请求,从而导致信息泄露或服务端请求伪造(SSRF)64。
- C14N攻击:XML的灵活性意味着同一个逻辑文档可以有多种文本表示(例如,不同的空格、属性顺序)。规范化(C14N)是将XML转换为标准字节流以便进行签名的过程。如果SP和IdP对C14N算法的实现或理解不一致,攻击者可能构造一个在签名验证时和在业务逻辑处理时被解析为不同内容的XML文档,从而绕过验证 66。
- 缓解措施:在XML解析器中禁用DTD和外部实体的处理是防御XXE的根本方法 69。对于C14N攻击,应确保IdP和SP使用一致且标准的规范化算法,并在验证签名后,只信任经过规范化和验证的数据 65。始终使用最新的、经过安全修复的XML解析库。
OAuth 2.0 / OIDC安全分析
OAuth 2.0和OIDC的安全性高度依赖于重定向流程的正确实现和状态管理。
- 授权码拦截攻击:这是对公共客户端(无法安全存储密钥的移动/SPA应用)的主要威胁。攻击者如果在不安全的网络环境中(例如,在移动设备上通过恶意应用)截获了授权码,他们就可以用这个授权码去交换访问令牌 23。
- 缓解措施:强制使用PKCE。如前所述,PKCE(RFC 7636)通过要求客户端在交换授权码时提供一个初始请求时生成的秘密(code_verifier),使得被拦截的授权码变得毫无用处,从而有效缓解了此攻击 22。
- 跨站请求伪造(CSRF)与开放重定向:
- CSRF:攻击者可以诱骗一个已经登录到某个应用(RP)的用户点击一个恶意链接。这个链接会启动一个到OP的认证流程,但使用的是攻击者的账户。当认证成功后,OP会带着一个合法的授权码重定向回RP,如果RP没有做适当的防护,它可能会将这个授权码与受害者的会话关联起来,导致受害者的账户被绑定到攻击者的身份上 71。
- 开放重定向:如果客户端在注册redirect_uri时使用了过于宽松的模式(例如通配符),或者授权服务器没有严格校验redirect_uri,攻击者就可以构造一个认证请求,将授权码或令牌重定向到他们控制的服务器,从而窃取这些凭证 73。
- 缓解措施:state参数与精确的redirect_uri匹配。客户端在发起认证请求时,必须生成一个不可预测的、一次性的state参数,并将其与当前用户会话绑定。当授权服务器重定向回来时,客户端必须验证返回的state参数是否与之前发送的匹配。这可以有效防止CSRF攻击 72。同时,授权服务器
必须对客户端注册的redirect_uri进行精确的字符串匹配,而不是模糊的模式匹配,以杜绝开放重定向漏洞 70。 - OAuth 2.1的演进:即将发布的OAuth 2.1规范正是为了将这些安全最佳实践固化到协议核心中。它明确废弃了不安全的隐式授权(Implicit Grant)和资源所有者密码凭证授权(Resource Owner Password Credentials Grant),并强制要求所有客户端使用PKCE和精确的重定向URI匹配 24。这反映了一个重要的趋势:通过减少协议的危险灵活性来提升其基线安全性。
JWT安全分析(依据RFC 8725)
JWT的安全性取决于其签名的不可伪造性。常见的漏洞都源于对签名验证的错误实现。
- 算法混淆攻击:这是一个非常微妙但破坏性极强的漏洞。JWT的头部包含一个alg字段,用于指定签名算法。如果一个服务器被设计为同时支持非对称算法(如RS256)和对称算法(如HS256),攻击者可以获取服务器的RSA公钥(这通常是公开的),然后伪造一个JWT,将其头部的alg字段从RS256改为HS256,并用服务器的RSA公钥作为HMAC的密钥来对令牌进行签名。如果服务器端的验证逻辑只是简单地根据alg头部选择验证方式,它就会错误地使用HMAC算法和RSA公钥来验证令牌,从而接受一个由攻击者伪造的令牌 80。
- alg:none攻击:JWT规范允许alg字段为none,表示该令牌没有签名。如果服务器端的库或代码没有明确禁用此算法,攻击者可以提交一个alg为none且没有签名的令牌。脆弱的实现可能会将其视为一个已经过验证的有效令牌 83。
- 弱密钥:当使用对称算法(如HS256)时,如果使用的密钥熵值过低(例如,一个简单的、可被猜到的字符串),攻击者可以捕获一个合法的JWT,然后进行离线暴力破解,一旦破解出密钥,就可以任意伪造令牌 83。
- 缓解措施:防御JWT漏洞的核心原则是:永远不要信任来自令牌头部的alg字段。服务器端必须硬编码或严格配置一个期望的算法白名单,并拒绝任何使用其他算法的令牌。对于alg:none,除非在有其他传输层安全保障的特定场景下,否则应一律拒绝。对于对称算法,必须使用具有足够熵值(例如,256位或更多)的强随机密钥,并妥善保管。强烈建议使用遵循RFC 8725安全最佳实践的、最新的JWT库 83。
Kerberos安全分析
Kerberos在设计上对网络窃听具有很强的抵抗力,但其威胁模型主要针对来自可信网络内部的攻击。
- 票据传递(Pass-the-Ticket)攻击:攻击者在攻陷一台域内主机后,可以从内存中窃取已缓存的Kerberos票据(TGT或服务票据),然后在票据有效期内利用这些票据冒充用户访问其他网络资源,而无需知道用户的密码 31。
- Kerberoasting攻击:这是一种针对配置了SPN的用户账户(而非计算机账户)的攻击。任何一个经过认证的域用户都可以向KDC请求任意服务的服务票据。如果某个服务(如SQL Server)的运行账户是一个普通用户账户,并且密码较弱,攻击者就可以请求该服务的票据。这个票据的一部分是用该服务账户的密码哈希加密的。攻击者可以将这部分票据数据提取出来,进行离线暴力破解,以获取服务账户的明文密码 31。
- 缓解措施:防御票据传递攻击需要加强端点安全,限制本地管理员权限。防御Kerberoasting的关键是为服务账户设置非常复杂、难以破解的长密码,并定期轮换。同时,应监控异常的服务票据请求行为,并优先使用现代加密算法(如AES)替代老旧的RC4 88。
FIDO2/WebAuthn安全分析
FIDO2的抗钓鱼能力是其核心优势,但其安全模型也存在边界。
- 本地威胁:FIDO2的威胁模型假设客户端环境(浏览器、操作系统)是可信的。如果用户的计算机上存在恶意软件,例如恶意的浏览器扩展或通过XSS注入的脚本,这些恶意代码理论上可以拦截和篡改WebAuthn的API调用,欺骗用户或窃取返回的数据(尽管无法窃取私钥本身)89。
- 认证器克隆:FIDO2规范中包含一个签名计数器机制,旨在检测硬件认证器是否被克隆。每次认证,计数器都会增加。服务器会检查收到的计数值是否大于上次记录的值。然而,研究表明该机制存在可被绕过的潜在弱点 89。
- 缓解措施:FIDO2的安全性依赖于端点安全。因此,客户端的纵深防御(如杀毒软件、浏览器安全策略)至关重要。服务器端应执行对WebAuthn响应所有部分的严格验证,包括客户端数据、挑战、来源等。如果业务需要高保证级别,还应验证认证器的证明(Attestation),以确保凭证来自受信任的硬件型号。
纵观这些协议的安全问题,一个反复出现的主题是:安全漏洞极少源于核心密码学算法(如AES、RSA)本身的破解,而几乎总是源于复杂的协议交互、不当的实现、错误的配置以及对输入验证的疏忽。从JWT的算法混淆到SAML的XSW,再到OAuth的重定向处理,都体现了“复杂性是安全的天敌”这一原则。协议越灵活、功能越丰富,开发者犯错的机会就越多。这清晰地解释了身份协议的演进趋势:从复杂走向简约(如OIDC之于SAML),从灵活走向规范(如OAuth 2.1之于2.0),其根本目的在于为开发者提供一个更安全的默认路径,减少“失败之坑”。对于架构师而言,这意味着在技术选型时,应优先考虑那些强制执行安全默认设置并限制危险灵活性的协议和库。
第七部分:未来展望:面向未来的身份范式
身份验证技术的发展并未停滞。随着数字化转型的深入,新的挑战(如隐私保护、动态风险和海量非人类身份)不断涌现,推动着身份范式向更智能、更去中心化、更具适应性的方向演进。架构师需要了解这些前沿概念,以便为未来构建更具韧性的身份系统。
去中心化身份(Decentralized Identity, DID)与可验证凭证(Verifiable Credentials, VC)
这是对当前以身份提供商(IdP)为中心的联合身份模型的根本性颠覆,旨在将数字身份的控制权交还给用户本人,实现所谓的“自主身份”(Self-Sovereign Identity, SSI)91。
- 核心原则:在传统联合模型中,用户的身份由IdP(如Google或Okta)管理和证明。而去中心化模型则致力于消除这种中心化的依赖。用户的身份由其自身控制,并可独立于任何单一组织进行验证 91。
- 关键技术点:去中心化标识符(DID):
- DID是由W3C标准化的新型全球唯一标识符。与由权威机构颁发的传统标识符(如邮箱、用户名)不同,DID由其主体(个人或组织)自己创建和控制 94。
- 每个DID都可以被解析为一个DID文档(DID Document)。这个文档是一个JSON对象,包含了与该DID关联的密码学材料(如公钥)、验证方法和服务端点,这些信息用于与DID主体进行可信交互 97。
- 关键技术点:可验证凭证(VC):
- VC是由W3C标准化的、防篡改的、可进行密码学验证的数字凭证。你可以把它想象成一个数字化的驾驶执照、毕业证书或护照 99。
- VC生态系统包含三个角色:签发者(Issuer)、持有者(Holder)和验证者(Verifier) 92。
- 流程:签发者(如大学)对一个主体(如学生)的某些声明(如“已于2025年毕业”)进行数字签名,生成一个VC,并将其交给持有者(学生)。持有者将VC安全地存储在自己的数字钱包(Digital Wallet)中。当需要证明学历时,持有者可以向验证者(如招聘公司)出示该VC。验证者可以直接通过密码学方法验证VC的签名和完整性,而无需实时联系签发者 100。
- 隐私保护:VC支持选择性披露(Selective Disclosure),持有者可以选择只出示凭证中的部分信息(例如,只证明自己已成年,而不透露具体出生日期),极大地增强了隐私保护。
去中心化身份模型解决了联合身份模型中存在的隐私泄露和单点故障风险 91。然而,它也带来了新的挑战,如密钥管理、账户恢复和生态系统治理等。
共享信号框架(SSF)与持续访问评估配置文件(CAEP)
这一组新兴标准旨在将身份验证从静态的、一次性的“登录”事件,转变为一个持续的、事件驱动的评估过程。这是实现真正零信任架构(Zero Trust Architecture)的关键技术支柱 104。
- 核心原则:传统的基于令牌的会话模型存在一个根本缺陷:一旦令牌被颁发,在它过期之前,它通常都是有效的。如果在此期间用户的风险状况发生变化(例如,账户被盗、设备感染病毒),服务提供商(SP)无法及时感知,从而形成一个安全风险窗口 106。SSF和CAEP的目标就是关闭这个窗口。
- 关键技术点:共享信号框架(Shared Signals Framework, SSF):
- 这是一个由OpenID基金会制定的开放标准,用于在合作的系统(称为发送方和接收方)之间安全地共享安全事件或“信号” 107。
- 这些信号以安全事件令牌(Security Event Token, SET)的形式进行交换,这是一种特殊用途的JWT 107。
- 关键技术点:持续访问评估配置文件(Continuous Access Evaluation Profile, CAEP):
- CAEP是SSF的一个具体应用配置文件,它定义了一系列与用户会话状态相关的标准化事件 105。
- 工作流程示例:一个用户使用其IdP账户登录了多个云应用(RPs)。随后,IdP的安全系统检测到该用户的凭据已泄露。在传统模型中,该用户在各个RPs的会话将继续有效,直到令牌过期。但在CAEP模型中,IdP会立即向所有订阅了该用户信号的RPs广播一个session-revoked(会话已撤销)或token-claims-change事件。收到该信号后,RPs会立即终止用户的会话,强制其重新认证或直接阻止访问,从而实现了风险的实时响应 106。
- CAEP定义的其他关键事件还包括:credential-change(凭据变更)、device-compliance-change(设备合规性变更)、assurance-level-change(保证级别变更)等 108。
人工智能(AI)在身份与访问管理(IAM)中的影响
人工智能和机器学习正在深刻地重塑IAM领域,使其从基于静态规则的管理转向基于智能分析的自适应治理。
- 身份经纬(Identity Fabric)与身份可观测性(Identity Observability):根据Gartner等行业分析机构的观点,这是未来IAM的两个关键架构概念 48。
- 身份经纬:它是一个逻辑上的抽象层,将底层的、异构的身份服务(如AD、LDAP、SAML IdP、OIDC OP)解耦,并通过统一的策略和API进行编排。这使得企业可以在一个复杂的混合环境中实现一致的身份治理 48。
- 身份可观测性:它利用AI/ML技术,对跨所有系统的身份相关活动(登录、权限变更、资源访问等)进行持续、上下文感知的监控和分析。其目标不仅是“看到”发生了什么,更是要理解“为什么”发生,并实时检测出偏离正常基线的异常行为和潜在威胁 48。
- 行为生物识别与风险自适应认证:这是AI在认证体验上的直接应用。它超越了静态生物特征(你是谁),扩展到动态的行为特征(你如何行为),例如打字节奏、鼠标移动轨迹、应用交互习惯等 113。AI模型可以持续评估用户行为,实时计算风险得分。只有当风险得分超过某个阈值时,系统才会触发“升阶认证”(Step-up Authentication),如要求提供MFA。在低风险场景下,用户则可以享受无缝的访问体验 113。
未来的身份架构并非由单一协议主宰,而是呈现出三大趋势的融合:以用户为中心(由DID/VC驱动)、实时响应(由CAEP/SSF驱动)和智能自动化(由AI/ML驱动)。这三者并非相互排斥,而是构成了一个更具韧性和适应性的多层次身份安全体系的互补部分。对于架构师而言,其角色正从实现单一协议的专家,转变为能够编排一个复杂的、多层次的、能够根据实时用户上下文和风险信号进行自适应调整的身份服务“经纬”的策略师。未来的重点将从“登录”这一孤立事件,转向构建“持续的可验证信任”。
第八部分:架构决策框架
选择正确的身份验证技术并非易事,它要求架构师在安全性、用户体验、开发成本和未来可扩展性之间做出权衡。本部分旨在将前述的详细分析综合成一个实用的决策框架,帮助架构师为其特定场景选择最合适的技术或技术组合。
核心权衡要素回顾
在进行技术选型时,架构师需要首先明确其在以下几个核心维度上的立场:
- 联合身份 vs. 去中心化身份:是选择信任一个集中的身份提供商(IdP)来管理和证明用户身份,还是赋予用户对自己身份的完全控制权?前者是当前主流,生态成熟;后者代表了未来的方向,强调隐私和用户主权 91。
- Web/API vs. 企业内网:应用是面向开放的互联网,还是运行在受信任的企业局域网内?为互联网设计的协议(SAML, OIDC)和为内网设计的协议(Kerberos)在信任模型和架构假设上存在根本差异 36。
- 认证 vs. 授权:协议的核心目标是证明“你是谁”(认证),还是规定“你能做什么”(授权)?OIDC和SAML专注于认证,而OAuth 2.0专注于授权。理解这一区别是正确使用这些协议的前提 14。
- 静态会话 vs. 持续评估:是接受一次登录后在令牌有效期内持续有效的静态会话模型,还是追求能够根据实时风险信号动态调整访问权限的持续评估模型?后者是零信任架构的理想选择,但实现更为复杂 105。
关键决策标准
在评估各种技术时,架构师应围绕以下问题进行考量:
- 应用类型:目标应用是传统的服务端渲染Web应用、单页面应用(SPA)、原生移动应用、后端API(微服务),还是遗留的本地系统?117
- 运行环境:系统是纯本地部署、纯云原生,还是混合云环境?36
- 用户群体:认证的用户是企业内部员工、B2B合作伙伴,还是广大的外部消费者(B2C)?
- 安全需求:目标安全等级是什么?抗网络钓鱼是否为首要目标?是否正在推行零信任安全战略?105
- 遗留系统集成:是否需要与现有的身份基础设施(如Active Directory、基于Kerberos的应用)进行集成?88
- 开发者体验与复杂性:实现的简易性、社区支持和可用库的丰富程度有多重要?8
协议适用性矩阵
下表提供了一个高层次的协议适用性概览,帮助架构师进行快速初步筛选。
技术 | 主要用例 | 令牌/断言类型 | 典型环境 | 移动/SPA友好性 | 关键优势 | 关键劣势 |
---|---|---|---|---|---|---|
SAML 2.0 | 企业Web应用SSO、B2B联合身份 | XML断言 | 企业、Web | 较差 | 成熟、广泛支持、功能丰富 | 复杂、冗长、对移动/API不友好7 |
OAuth 2.0 | API授权、委托访问 | 访问令牌(格式不限) | Web、API、移动 | 极佳 | 灵活、轻量、专为授权设计 | 不提供标准化的认证机制15 |
OpenID Connect | 现代Web/移动/SPA认证、消费者身份认证(CIAM) | ID令牌 (JWT) | Web、API、移动 | 极佳 | 简单、轻量、基于OAuth、动态发现 | 功能丰富度不如SAML8 |
Kerberos | 企业内网SSO、Windows域认证 | 加密的票据 | 受信任的企业内网 | 不适用 | 极高安全性、双向认证、无缝SSO | 复杂、仅限内网、依赖KDC25 |
LDAP | 目录服务访问、用户/组信息查询 | (不适用) | 企业内网、目录服务器 | 不适用 | 标准化查询语言、高性能读取 | 仅为访问协议,非完整认证方案37 |
FIDO2/WebAuthn | 无密码认证、抗钓鱼MFA | 加密断言 | Web、移动 | 极佳 | 极强抗钓鱼能力、高安全性 | 依赖设备、账户恢复需额外设计49 |
DID/VC | 自主身份、跨域凭证验证 | 可验证凭证 (JWT/JSON-LD) | 去中心化网络 | 良好 | 用户控制、隐私保护、可移植性 | 生态系统尚在发展,密钥管理复杂91 |
CAEP/SSF | 持续访问评估、实时会话撤销 | 安全事件令牌 (JWT) | 零信任架构 | 极佳 | 实时响应风险、关闭会话风险窗口 | 新兴标准,需要IdP和RP双方支持105 |
OAuth 2.1 与 OAuth 2.0 变更总结
对于正在规划新系统的架构师而言,遵循最新的安全最佳实践至关重要。OAuth 2.1 旨在将过去十年中形成的 OAuth 2.0 安全最佳实践固化为标准。下表总结了其关键变更。
特性 | OAuth 2.0 | OAuth 2.1 | 安全影响 |
---|---|---|---|
PKCE | 推荐用于公共客户端 | 强制用于所有使用授权码流程的客户端 | 从根本上防止授权码拦截攻击24 |
隐式授权 | 支持 (response_type=token) | 已移除 | 消除因在URL中暴露访问令牌而导致的安全风险76 |
密码凭证授权 | 支持 | 已移除 | 鼓励使用更安全的委托授权模式,避免应用直接处理用户密码76 |
重定向URI匹配 | 允许使用通配符 | 强制要求精确字符串匹配 | 防止开放重定向攻击,确保授权码被发送到预期的、受信任的地址76 |
Bearer令牌传输 | 允许在URL查询参数中传输 | 禁止在URL查询参数中传输 | 防止令牌通过浏览器历史、日志等途径泄露76 |
刷新令牌处理 | 规范较为宽松 | 推荐使用令牌轮换或发送者约束 | 降低刷新令牌泄露后的风险,泄露的令牌被使用后会立即失效76 |
战略性建议与混合模式
单一协议无法解决所有问题。最强大和最具未来适应性的身份架构,通常是一个能够协同工作的混合、多协议身份经纬(Hybrid, Multi-Protocol Identity Fabric)。
- 现代Web/移动/API应用:
- 基线:OIDC与带有PKCE的授权码流程是无可争议的起点。
- 增强:在此基础上,引入FIDO2/Passkeys作为首选的多因素认证(MFA)方式,或直接作为无密码主认证方式,以实现最高级别的抗钓鱼保护。
- 企业级Web应用SSO:
- 传统选择:SAML依然是一个强大且成熟的选择,特别是当需要与大量支持SAML的第三方SaaS应用(如Salesforce, Workday)集成时 125。
- 现代选择:如果应用生态系统较新,或者更看重开发简易性,OIDC是完全可行的现代替代方案。许多IdP同时支持SAML和OIDC,允许根据SP的能力进行选择 118。
- 企业内部网络:
- 黄金标准:Kerberos仍然是在Windows域环境中实现无缝、安全SSO的最佳选择。其安全性在受控网络中无出其右 36。
- 混合云环境的挑战与对策:
- 这是当今企业面临的最常见场景。核心策略是利用一个现代化的IdP(如Microsoft Entra ID, Okta, Ping Identity)作为 “协议转换的桥梁” 。
- 该IdP对外(云应用、Web应用)使用SAML或OIDC进行通信。
- 对内(访问本地资源),IdP通过部署代理(Agent)或利用Azure AD Kerberos等云原生功能,将现代认证流程“翻译”为传统的Kerberos或LDAP请求,从而实现对遗留应用的无缝访问 43。
- 面向未来的架构:
- 架构师应避免将应用与单一认证协议硬编码绑定。相反,应构建一个身份抽象层,使得应用能够与一个统一的身份平台交互,而由该平台负责处理与不同IdP和协议的复杂交互。
- 在设计新系统时,应考虑其未来接入CAEP/SSF事件流的能力,以便实现动态的、基于风险的访问控制。
- 对于需要高度隐私和用户控制的场景(如数字钱包、个人数据市场),应开始探索和试验DID/VC模型。
结论
身份验证技术领域已经从协议之争演变为生态系统和架构理念的竞争。对于技术领导者和架构师而言,关键能力不再是精通某一个协议,而是理解每个协议的设计哲学、适用场景和安全边界,并能够明智地选择、组合和编排它们,构建一个能够适应业务需求和安全威胁不断变化的、有韧性的身份基础设施。未来的价值将越来越多地体现在能够统一管理这些异构协议的策略和编排平台上,而不是协议本身。
引用的著作
- Introduction to SAML 2.0 | PingOne Advanced Identity Cloud, 访问时间为 六月 30, 2025, https://docs.pingidentity.com/pingoneaic/latest/am-saml2/saml2-introduction.html
- OAuth 2.0 Authorization Framework - Auth0, 访问时间为 六月 30, 2025, https://auth0.com/docs/authenticate/protocols/oauth
- SAML: What It is and How It Works - Frontegg, 访问时间为 六月 30, 2025, https://frontegg.com/guides/saml
- What is SAML 2.0 and how does it work for you? - Auth0, 访问时间为 六月 30, 2025, https://auth0.com/intro-to-iam/what-is-saml
- What Is SAML 2.0 & How Does It Work? - Thru, Inc., 访问时间为 六月 30, 2025, https://www.thruinc.com/blog/what-is-saml-how-does-it-work/
- What is SAML and how does SAML Authentication Work | Auth0, 访问时间为 六月 30, 2025, https://auth0.com/blog/how-saml-authentication-works/
- OAuth vs SAML vs OpenID: Learn the Differences between Them - Parallels, 访问时间为 六月 30, 2025, https://www.parallels.com/blogs/ras/oauth-vs-saml-vs-openid/
- OIDC vs. SAML: Understanding the Differences and Upgrading to Modern Authentication, 访问时间为 六月 30, 2025, https://www.beyondidentity.com/resource/oidc-vs-saml-understanding-the-differences
- OAuth 2.0, 访问时间为 六月 30, 2025, https://oauth.net/2/
- Workflow of OAuth 2.0 - GeeksforGeeks, 访问时间为 六月 30, 2025, https://www.geeksforgeeks.org/software-engineering/workflow-of-oauth-2-0/
- Mastering OAuth 2.0: A Deep Dive into Its Core Workflows - EchoAPI, 访问时间为 六月 30, 2025, https://www.echoapi.com/blog/mastering-oauth-2-0-a-deep-dive-into-its-core-workflows/
- An overview of OAuth2 concepts and use cases - Ory, 访问时间为 六月 30, 2025, https://www.ory.sh/docs/oauth2-oidc/overview/oauth2-concepts
- OAuth 2.0 workflow - IBM, 访问时间为 六月 30, 2025, https://www.ibm.com/docs/en/tfim/6.2.2.6?topic=overview-oauth-20-workflow
- What's the Difference Between OAuth, OpenID Connect, and SAML? - Okta, 访问时间为 六月 30, 2025, https://www.okta.com/identity-101/whats-the-difference-between-oauth-openid-connect-and-saml/
- OAuth vs. SAML vs. OpenID Connect - Gluu Server, 访问时间为 六月 30, 2025, https://gluu.org/oauth-vs-saml-vs-openid-connect/
- What Is OpenID Connect (OIDC)? | Microsoft Security, 访问时间为 六月 30, 2025, https://www.microsoft.com/en-us/security/business/security-101/what-is-openid-connect-oidc
- What Is OpenID Connect and How Does It Work? - Curity, 访问时间为 六月 30, 2025, https://curity.io/resources/learn/openid-connect-overview/
- OpenID Connect Protocol - Auth0, 访问时间为 六月 30, 2025, https://auth0.com/docs/authenticate/protocols/openid-connect-protocol
- How OpenID Connect (OIDC) Works - Ping Identity, 访问时间为 六月 30, 2025, https://www.pingidentity.com/en/openid-connect.html
- OpenID Connect (OIDC) on the Microsoft identity platform, 访问时间为 六月 30, 2025, https://learn.microsoft.com/en-us/entra/identity-platform/v2-protocols-oidc
- Using JWT Profile for OAuth 2.0 Authorization Flows - SecureAuth Product Docs, 访问时间为 六月 30, 2025, https://docs.secureauth.com/ciam/en/using-jwt-profile-for-oauth-2-0-authorization-flows.html
- Authorization Code Flow with Proof Key for Code Exchange (PKCE) - Auth0, 访问时间为 六月 30, 2025, https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce
- What is PKCE? Flow Examples and How It Works - Descope, 访问时间为 六月 30, 2025, https://www.descope.com/learn/post/pkce
- What's New with OAuth 2(.1)? - Frontegg, 访问时间为 六月 30, 2025, https://frontegg.com/blog/whats-new-with-oauth-2-1
- Kerberos authentication protocol - Article - SailPoint, 访问时间为 六月 30, 2025, https://www.sailpoint.com/identity-library/kerberos-authentication-protocol
- Kerberos authentication: A simple (& visual) guide for security pros - HackTheBox, 访问时间为 六月 30, 2025, https://www.hackthebox.com/blog/what-is-kerberos-authentication
- Kerberos authentication overview in Windows Server | Microsoft Learn, 访问时间为 六月 30, 2025, https://learn.microsoft.com/en-us/windows-server/security/kerberos/kerberos-authentication-overview
- What is Kerberos and How Does it Work? - Ping Identity, 访问时间为 六月 30, 2025, https://www.pingidentity.com/en/resources/identity-fundamentals/authentication-authorization-protocols/kerberos.html
- Kerberos Sequence Diagrams - EventHelix, 访问时间为 六月 30, 2025, https://www.eventhelix.com/networking/kerberos/
- Kerberos (protocol) - Wikipedia, 访问时间为 六月 30, 2025, https://en.wikipedia.org/wiki/Kerberos_(protocol)
- Kerberos Authentication Explained, 访问时间为 六月 30, 2025, https://www.varonis.com/blog/kerberos-authentication-explained
- Sequence Diagram Kerberos Flow 2 | PDF - Scribd, 访问时间为 六月 30, 2025, https://www.scribd.com/document/843028035/Sequence-Diagram-Kerberos-Flow-2
- Article: Kerberos Authentication - RCDevs, 访问时间为 六月 30, 2025, https://www.rcdevs.com/kerberos_authentication/
- What is the difference between Kerberos and LDAP? : r/sysadmin - Reddit, 访问时间为 六月 30, 2025, https://www.reddit.com/r/sysadmin/comments/nd0w3g/what_is_the_difference_between_kerberos_and_ldap/
- SAML and kerberos what to use where [closed] - Information Security Stack Exchange, 访问时间为 六月 30, 2025, https://security.stackexchange.com/questions/51329/saml-and-kerberos-what-to-use-where
- The difference between Kerberos, SAML og OpenID Connect (OIDC) - Kantega SSO, 访问时间为 六月 30, 2025, https://www.kantega-sso.com/articles/the-difference-between-kerberos-saml-og-openid-connect-oidc
- The Difference Between Active Directory and LDAP, 访问时间为 六月 30, 2025, https://www.varonis.com/blog/the-difference-between-active-directory-and-ldap
- What Is LDAP & How Does It Work? - Okta, 访问时间为 六月 30, 2025, https://www.okta.com/identity-101/what-is-ldap/
- What is LDAP? All You Need to Know - OneLogin, 访问时间为 六月 30, 2025, https://www.onelogin.com/learn/what-is-ldap
- LDAP vs. Active Directory: What's the Difference? - Rublon, 访问时间为 六月 30, 2025, https://rublon.com/blog/ldap-active-directory-difference/
- LDAP vs. Active Directory: What's the Difference? - Okta, 访问时间为 六月 30, 2025, https://www.okta.com/identity-101/ldap-vs-active-directory/
- What is lightweight directory access protocol (LDAP) authentication? - Red Hat, 访问时间为 六月 30, 2025, https://www.redhat.com/en/topics/security/what-is-ldap-authentication
- SAML vs LDAP: What's the difference? - Stytch, 访问时间为 六月 30, 2025, https://stytch.com/blog/saml-vs-ldap/
- What is LDAP Authentication? A Comprehensive Guide for Beginners - Fidelis Security, 访问时间为 六月 30, 2025, https://fidelissecurity.com/cybersecurity-101/learn/what-is-ldap-authentication/
- LDAP Authentication with Active Directory: How It Works | InstaSafe, 访问时间为 六月 30, 2025, https://instasafe.com/blog/ldap-authentication-with-active-directory/
- What Is LDAP Authentication and How Does It Work? - Frontegg, 访问时间为 六月 30, 2025, https://frontegg.com/blog/ldap
- Kerberos vs. LDAP: What's the Difference? - JumpCloud, 访问时间为 六月 30, 2025, https://jumpcloud.com/blog/kerberos-vs-ldap
- Gartner Warns IAM Professionals Cyber Security Depends on Them - TechRepublic, 访问时间为 六月 30, 2025, https://www.techrepublic.com/article/gartner-iam-professionals/
- FIDO2 vs. WebAuthn: What's the Difference? - Beyond Identity, 访问时间为 六月 30, 2025, https://www.beyondidentity.com/resource/fido2-vs-webauthn-whats-the-difference
- What is FIDO2? FIDO2 Web Authentication Explained - StrongDM, 访问时间为 六月 30, 2025, https://www.strongdm.com/blog/fido2
- Exploring FIDO vs FIDO2: Evolution in Secure Authentication | Oloid, 访问时间为 六月 30, 2025, https://www.oloid.com/blog/exploring-fido-vs-fido2-evolution-in-secure-authentication
- Passwordless Authentication with FIDO2 and WebAuthn | Frontegg, 访问时间为 六月 30, 2025, https://frontegg.com/guides/passwordless-authentication-with-fido2-and-webauthn
- The Evolution of Authentication : From Passwords to Passkeys - DEV Community, 访问时间为 六月 30, 2025, https://dev.to/sahildahekar/the-evolution-of-authentication-from-passwords-to-passkeys-2g5d
- WebAuthn Guide, 访问时间为 六月 30, 2025, https://webauthn.guide/
- WebAuthn, Passwordless and FIDO2 Explained - Duo Blog, 访问时间为 六月 30, 2025, https://duo.com/blog/webauthn-passwordless-fido2-explained-componens-passwordless-architecture
- WebAuthn vs FIDO2: Key Differences and Use Cases - Descope, 访问时间为 六月 30, 2025, https://www.descope.com/blog/post/webauthn-vs-fido2
- How WebAuthn Works - Okta, 访问时间为 六月 30, 2025, https://www.okta.com/sites/default/files/pdf/How_WebAuthn_Works_0.pdf
- Passkeys: Passwordless Authentication - FIDO Alliance, 访问时间为 六月 30, 2025, https://fidoalliance.org/passkeys/
- FIDO2 authentication & passkeys - OneSpan, 访问时间为 六月 30, 2025, https://www.onespan.com/blog/fido2-passwordless-web-coming
- Why Phishing-Resistant MFA Is The Future of Secure Authentication - Token Ring, 访问时间为 六月 30, 2025, https://www.tokenring.com/learn/phishing-resistant-mfa
- What makes FIDO and WebAuthn phishing resistant? - IBM TechXchange Community, 访问时间为 六月 30, 2025, https://community.ibm.com/community/user/security/blogs/shane-weeden1/2021/12/08/what-makes-fido-and-webauthn-phishing-resistent
- SAML's signature problem: It's not you, it's XML - WorkOS, 访问时间为 六月 30, 2025, https://workos.com/blog/saml-signature-problem
- XML Signature Wrapping 101: A Beginner's Survival Guide - The SecOps Group, 访问时间为 六月 30, 2025, https://secops.group/xml-signature-wrapping/
- A SAML Security Vulnerability Handbook for Developers - Scalekit, 访问时间为 六月 30, 2025, https://www.scalekit.com/blog/a-saml-security-vulnerability-handbook-for-developers
- SAML Security - OWASP Cheat Sheet Series, 访问时间为 六月 30, 2025, https://cheatsheetseries.owasp.org/cheatsheets/SAML_Security_Cheat_Sheet.html
- Canonicalization attack [updated 2019] - Infosec Institute, 访问时间为 六月 30, 2025, https://www.infosecinstitute.com/resources/penetration-testing/canonicalization-attack/
- XML digital signature security overview - IBM, 访问时间为 六月 30, 2025, https://www.ibm.com/docs/en/b2badv-communication/1.0.1?topic=overview-xml-digital-signature-security
- XML Signatures are a bad idea executed even worse - SSOReady, 访问时间为 六月 30, 2025, https://ssoready.com/blog/engineering/xml-dsig-is-unfortunate/
- How to Implement SAML SSO: A Complete Guide for Secure Access - axon.dev, 访问时间为 六月 30, 2025, https://www.axon.dev/blog/how-to-implement-saml-sso-a-complete-guide-for-secure-access
- OAuth 2.0 Security Best Practices for Developers - DEV Community, 访问时间为 六月 30, 2025, https://dev.to/kimmaida/oauth-20-security-best-practices-for-developers-2ba5
- Prevent CSRF Attacks in OAuth 2.0 Implementations - Auth0, 访问时间为 六月 30, 2025, https://auth0.com/blog/prevent-csrf-attacks-in-oauth-2-implementations/
- RFC 6819 - OAuth 2.0 Threat Model and Security Considerations - IETF Datatracker, 访问时间为 六月 30, 2025, https://datatracker.ietf.org/doc/html/rfc6819
- OAuth 2.0 authentication vulnerabilities | Web Security Academy - PortSwigger, 访问时间为 六月 30, 2025, https://portswigger.net/web-security/oauth
- OAuth 2.0 Security Best Current Practice, 访问时间为 六月 30, 2025, https://www.potaroo.net/ietf/all-ids/draft-ietf-oauth-security-topics-12.html
- Prevent Attacks and Redirect Users with OAuth 2.0 State Parameters - Auth0, 访问时间为 六月 30, 2025, https://auth0.com/docs/secure/attack-protection/state-parameters
- OAuth 2.1 vs OAuth 2.0: What's the Difference? - InstaSafe, 访问时间为 六月 30, 2025, https://instasafe.com/blog/oauth-2-1-vs-oauth-2-0-differences/
- OAuth 2.1 vs. OAuth 2.0: A Detailed Tutorial | by Master Spring Ter - Medium, 访问时间为 六月 30, 2025, https://master-spring-ter.medium.com/oauth-2-1-vs-oauth-2-0-a-detailed-tutorial-882b7cc7bd23
- OAuth 2.1: Key Updates and Differences from OAuth 2.0 | FusionAuth, 访问时间为 六月 30, 2025, https://fusionauth.io/articles/oauth/differences-between-oauth-2-oauth-2-1
- OAuth 2.1, 访问时间为 六月 30, 2025, https://oauth.net/2.1/
- How JWT Libraries Block Algorithm Confusion: Key Lessons for Code Review - Pentesterlab, 访问时间为 六月 30, 2025, https://pentesterlab.com/blog/jwt-algorithm-confusion-code-review-lessons
- JSON Web Tokens – Algorithm Confusion Attack - Pentest Limited, 访问时间为 六月 30, 2025, https://pentest.co.uk/insights/json-web-token-algorithm-confusion-attack/
- Algorithm confusion attacks | Web Security Academy - PortSwigger, 访问时间为 六月 30, 2025, https://portswigger.net/web-security/jwt/algorithm-confusion
- The Ultimate Guide to JWT Vulnerabilities and Attacks (with Exploitation Examples), 访问时间为 六月 30, 2025, https://pentesterlab.com/blog/jwt-vulnerabilities-attacks-guide
- JSON Web Token for Java - OWASP Cheat Sheet Series, 访问时间为 六月 30, 2025, https://cheatsheetseries.owasp.org/cheatsheets/JSON_Web_Token_for_Java_Cheat_Sheet.html
- Analyzing Broken User Authentication Threats to JSON Web Tokens | Akamai, 访问时间为 六月 30, 2025, https://www.akamai.com/blog/security-research/owasp-authentication-threats-for-json-web-token
- Understanding JWT Vulnerabilities: Common Pitfalls and How To Fix Them - Medium, 访问时间为 六月 30, 2025, https://medium.com/@abigailainyang/understanding-jwt-vulnerabilities-common-pitfalls-and-how-to-fix-them-80e2e7941734
- RFC 8725 - JSON Web Token Best Current Practices - IETF Datatracker, 访问时间为 六月 30, 2025, https://datatracker.ietf.org/doc/html/rfc8725
- Kerberos breaking authentication with a legacy LOB app after installing a 2025 DC - Reddit, 访问时间为 六月 30, 2025, https://www.reddit.com/r/activedirectory/comments/1ii5if1/kerberos_breaking_authentication_with_a_legacy/
- A Security and Usability Analysis of Local Attacks Against FIDO2, 访问时间为 六月 30, 2025, https://www.ndss-symposium.org/wp-content/uploads/2024-327-paper.pdf
- Evaluating the Security Posture of Real-World FIDO2 Deployments - Dhruv Kuchhal, 访问时间为 六月 30, 2025, https://dhruvkuchhal.com/papers/kuchhal2023evaluating.pdf
- From federated to decentralized identity: Why Verifiable Credentials are the next step in identity management - Indicio.tech, 访问时间为 六月 30, 2025, https://indicio.tech/blog/from-federated-to-decentralized-identity-why-verifiable-credentials-are-the-next-step-in-identity-management/
- Decentralized Identity: The Ultimate Guide 2025 - Dock Labs, 访问时间为 六月 30, 2025, https://www.dock.io/post/decentralized-identity
- Beginner's Guide to Decentralized Identity | KuppingerCole, 访问时间为 六月 30, 2025, https://www.kuppingercole.com/insights/decentralized-identity/decentralized-identity-guide
- The did:key Method v0.7 - W3C Credentials Community Group, 访问时间为 六月 30, 2025, https://w3c-ccg.github.io/did-key-spec/
- Decentralized Identifiers (DIDs) v1.0 - W3C, 访问时间为 六月 30, 2025, https://www.w3.org/TR/did-1.0/
- Decentralized Identifiers (DIDs) v1.1 - W3C, 访问时间为 六月 30, 2025, https://www.w3.org/TR/did-1.1/
- Decentralized identifier - Wikipedia, 访问时间为 六月 30, 2025, https://en.wikipedia.org/wiki/Decentralized_identifier
- Decentralized Identifiers (DIDs): The Ultimate Beginner's Guide 2025 - Dock Labs, 访问时间为 六月 30, 2025, https://www.dock.io/post/decentralized-identifiers
- Verifiable Credentials Data Model v2.0 - W3C, 访问时间为 六月 30, 2025, https://www.w3.org/TR/vc-data-model-2.0/
- Verifiable credentials - Wikipedia, 访问时间为 六月 30, 2025, https://en.wikipedia.org/wiki/Verifiable_credentials
- W3C Verifiable Credentials (VC) - walt.id, 访问时间为 六月 30, 2025, https://walt.id/verifiable-credentials
- Verifiable Credentials Overview - W3C, 访问时间为 六月 30, 2025, https://www.w3.org/TR/vc-overview/
- Verifiable Credential Data Integrity 1.1 - W3C on GitHub, 访问时间为 六月 30, 2025, https://w3c.github.io/vc-data-integrity/
- The Importance of OpenID Foundation Shared Signals Framework, 访问时间为 六月 30, 2025, https://openid.net/importance-of-shared-signals-framework/
- What is Continuous Access Evaluation Profile (CAEP)? - CrowdStrike.com, 访问时间为 六月 30, 2025, https://www.crowdstrike.com/en-us/cybersecurity-101/identity-protection/continuous-access-evaluation-profile-caep/
- What is CAEP (Continuous Access Evaluation Protocol)? #iam #identitymanagement - YouTube, 访问时间为 六月 30, 2025, https://www.youtube.com/shorts/fDMjOmBAZKg
- OpenID Shared Signals Framework Specification 1.0 - draft 04, 访问时间为 六月 30, 2025, https://openid.net/specs/openid-sharedsignals-framework-1_0.html
- Guide to Shared Signals, 访问时间为 六月 30, 2025, https://sharedsignals.guide/
- OpenID Shared Signals Framework Specification 1.0 - draft 03, 访问时间为 六月 30, 2025, https://openid.net/specs/openid-sharedsignals-framework-1_0-ID3.html
- What is Continuous Access Evaluation Protocol (CAEP)? 2025 Overview - Strata Identity, 访问时间为 六月 30, 2025, https://www.strata.io/glossary/caep-continuous-access-evaluation-protocol/
- Re-thinking federated identity with the Continuous Access Evaluation Protocol | Google Cloud Blog, 访问时间为 六月 30, 2025, https://cloud.google.com/blog/products/identity-security/re-thinking-federated-identity-with-the-continuous-access-evaluation-protocol
- The Rise of Identity Observability: Our Three Key Takeaways from the Gartner® Identity and Access Management Summit 2024 - AuthMind, 访问时间为 六月 30, 2025, https://www.authmind.com/blog/three-key-takeaways-from-the-gartner-iam-summit-2024
- Modernizing Identity Security Beyond MFA - TechNewsWorld, 访问时间为 六月 30, 2025, https://www.technewsworld.com/story/modernizing-identity-security-beyond-mfa-179799.html
- Beyond Passwords: The Future of Identity Verification | by Devi prasad Guda - Medium, 访问时间为 六月 30, 2025, https://medium.com/@gudadeviprasad/beyond-passwords-the-future-of-identity-verification-e4ba03e06e3f
- How is Decentralized Identity Different? - Ping Identity, 访问时间为 六月 30, 2025, https://www.pingidentity.com/en/resources/identity-fundamentals/decentralized-identity-management/how-is-decentralized-identity-different.html
- SAML, OAuth, OIDC, and Kerberos: A Detailed Comparison | by Pratul Tripathi | Medium, 访问时间为 六月 30, 2025, https://medium.com/@tripathi.pratul/saml-oauth-oidc-and-kerberos-a-detailed-comparison-2ea7c9726193
- The Difference Between SAML vs OIDC - StrongDM, 访问时间为 六月 30, 2025, https://www.strongdm.com/blog/oidc-vs-saml
- OIDC vs. SAML: Key Differences & How to Choose | Rippling, 访问时间为 六月 30, 2025, https://www.rippling.com/blog/oidc-vs-saml
- Enhancing Compatibility: Kerberos Support in OpenOTP - RCDevs, 访问时间为 六月 30, 2025, https://www.rcdevs.com/enhancing-compatibility-kerberos-support-in-openotp/
- Overview of Direct Integration Options - Red Hat, 访问时间为 六月 30, 2025, https://www.redhat.com/en/blog/overview-direct-integration-options
- How to migrate apps which has NTLM, Kerberos and LDAP integrated on on-premises environments to Entra ID and what all things we need to take care of so that we dont loose apps access and configurations as well? - Learn Microsoft, 访问时间为 六月 30, 2025, https://learn.microsoft.com/en-us/answers/questions/2153060/how-to-migrate-apps-which-has-ntlm-kerberos-and-ld
- SAML vs OIDC: All You Need to Know - OneLogin, 访问时间为 六月 30, 2025, https://www.onelogin.com/learn/oidc-vs-saml
- OAuth vs SAML vs OpenID: What Is and Differences Between Them | PLANERGY Software, 访问时间为 六月 30, 2025, https://planergy.com/blog/saml-vs-oauth-vs-openid/
- SAML vs OAuth vs OpenID: Comparison and Differences - Wallarm, 访问时间为 六月 30, 2025, https://www.wallarm.com/what/how-oauth-differs-from-saml-and-openid-learn-it-all
- SAML vs OIDC: Understanding OpenID Connect vs SAML Differences - Inteca, 访问时间为 六月 30, 2025, https://inteca.com/blog/identity-access-management/openid-connect-vs-saml/
- Comparing SAML, OAuth, and OpenID Connect | by Prabhu Srivastava - Medium, 访问时间为 六月 30, 2025, https://medium.com/@prabhuss73/comparing-saml-oauth-and-openid-connect-3885d9c79130
- Passwordless security key sign-in to on-premises resources - Microsoft Entra ID, 访问时间为 六月 30, 2025, https://learn.microsoft.com/en-us/entra/identity/authentication/howto-authentication-passwordless-security-key-on-premises