本文总结了意大利国家顶级域名 .it 注册数据访问协议(RDAP)服务的安全加固经验。通过集成 OpenID Connect(OIDC)协议并使用 Keycloak 身份管理器,.it 成功实现了对 RDAP 服务的统一身份认证与细粒度访问控制,解决了传统认证方式在多服务器环境下的扩展性问题。
RDAP 的安全现状与挑战
RDAP 协议在 RFC 7480 中定义,本身不包含原生安全服务,仅依赖其他协议层(如 RFC 7481)提供的安全特性。早期最简单的方案是使用 Basic HTTP 授权方案。然而,这种方案在 RDAP 生态系统中扩展性较差。例如,一名执法官员可能需要根据地理位置频繁访问邻近 ccTLD 注册局的敏感 RDAP 数据(如欧盟的 e-evidence 举措)。如果用户需要向大量 RDAP 服务器进行身份验证,手动管理凭证将变得极其繁琐且不切实际。
OIDC 联邦认证机制
为了解决上述问题,IETF 提出了 rdap-openid 草案,旨在基于 OIDC 构建联邦认证系统,以降低客户端凭证管理的复杂性。OIDC 是一种支持“使用 Google 登录”或“使用 Facebook 登录”的协议。在这种模式下,网站将身份验证的责任转移给受信任的第三方服务,既简化了用户操作,也免去了网站管理新凭证及相关复杂性的负担。rdap-openid 草案进一步将 OIDC 适配到 RDAP 上下文中。用户可以通过 id 查询参数向 RDAP 服务器表明其意图发起经过身份验证的请求。例如,请求地址为 https://example.com/rdap/domain/example.com?id=user.idp.example,其中 id 参数的值是第三方认证服务使用的标识符(如 Google 的 Gmail 地址)。遵循标准 OIDC 实践,RDAP 服务器会将用户重定向至第三方服务进行认证,认证成功后再重定向回 RDAP 服务器执行后续操作。
Keycloak 的实施与访问控制
意大利 .it ccTLD 采用了 Keycloak 作为开源身份和访问管理工具来实现这一集成。系统通过 Keycloak 处理终端用户访问,并根据不同类别对用户进行分组,每组被分配特定的访问权限。对于自动化客户端,系统允许通过 Basic 和 Bearer 两种 HTTP 授权方案进行访问。这种架构设计使得 .it 能够在保持服务开放性的同时,利用 OIDC 收集的额外用户信息,由服务器操作员做出精细化的访问控制决策。
对于网络工程师和运维人员而言,引入 OIDC 和 Keycloak 为 RDAP 服务提供了一种现代化的安全解决方案。它不仅解决了多服务器环境下的认证痛点,还通过联邦认证机制优化了执法和跨域数据访问的流程,显著提升了运营效率。
原文: APNIC Blog(2022-02-17)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog