当你看到一个网站(如“我的小博客”)提供“使用 Google 账号登录”、“使用 GitHub 账号登录”或“使用 微信/QQ 账号登录”时,它背后使用的很可能就是 OpenID Connect 协议。

下面我将从几个方面为你详细介绍支持 OpenID 的网站和场景。


哪些类型的网站支持 OpenID Connect (OIDC)?

几乎所有现代的、面向用户的应用都可能支持 OIDC,具体可以分为以下几类:

大型互联网平台和云服务提供商

这些是 OpenID Connect 的主要提供方(身份提供者,IdP),它们为其他网站提供登录能力。

  • Google: 拥有庞大的用户基础,几乎所有网站都支持 Google 登录。
  • Microsoft (Azure AD / Microsoft Account): 深度集成在 Windows、Office 365 和企业服务中。
  • GitHub: 开发者社区的首选,深受技术类网站和服务的青睐。
  • Facebook: 虽然声誉有所下滑,但仍被广泛使用。
  • Apple: 出于隐私保护,推出了“通过 Apple 登录”选项,也基于 OpenID Connect。
  • Amazon (Amazon Cognito): 为 AWS 上的应用提供身份认证服务。
  • 微信 / QQ / 支付宝: 在中国市场中,这些是主流的第三方登录方式,它们也遵循 OpenID Connect 协议。

SaaS (软件即服务) 应用

为了方便用户和企业集成,几乎所有的 SaaS 平台都支持通过 OIDC 进行单点登录。

  • Slack, Asana, Trello, Figma: 支持通过 Google, Microsoft, GitHub 等账户登录。
  • Salesforce, HubSpot: 企业级 CRM,通常与 Azure AD 或 Okta 等企业身份提供商集成。
  • GitLab, Bitbucket: 代码托管平台,支持多种第三方登录。

企业内部应用和开发平台

在企业内部,OIDC 是实现单点登录的关键技术。

  • Okta, Auth0: 身份管理平台,它们本身不提供最终用户服务,而是帮助其他企业应用(如公司的内部 Wiki、CRM、报销系统等)快速集成 OIDC 登录。
  • 企业自建应用: 很多公司会使用 Azure AD 或 Keycloak (开源) 作为自己的身份中心,员工只需登录一次,就可以访问所有集成了该中心的应用。

开源项目和开发者工具

为了方便开发者快速搭建和测试应用,许多项目提供了基于 OIDC 的认证模板。

  • Next.js, Nuxt.js, React, Angular: 等前端框架都有成熟的库(如 next-auth, auth0-js)可以轻松实现 OIDC 登录。
  • Keycloak, Hydra: 开源的身份认证和访问管理服务器,开发者可以自己搭建一个支持 OIDC 的登录服务。

知名的支持 OpenID 的网站举例

这里有一些具体的例子,你可能每天都在使用它们:

网站类型 举例 常用的第三方登录方式 (基于 OIDC)
电商平台 Etsy, Shopify, Steam Google, Apple, Facebook
社交媒体/社区 Reddit, Strava, Discord Google, Apple, Facebook
开发者工具 GitLab, Bitbucket, Docker Google, Microsoft, GitHub
企业服务 Slack, Asana, Figma Google, Microsoft, Apple, SAML (与 OIDC 类似)
云服务/平台 AWS, Heroku, Vercel Google, Microsoft, GitHub

如何判断一个网站是否支持 OpenID?

对于普通用户来说,最简单的方法就是观察登录页面,如果看到以下图标或文字,那么它很可能就支持 OpenID Connect:

  • "使用 Google 登录" 或 "Sign in with Google"
  • "使用 GitHub 登录" 或 "Sign in with GitHub"
  • "使用 Microsoft 账户登录" 或 "Sign in with Microsoft"
  • "通过 Apple 登录" 或 "Sign in with Apple"
  • "使用微信登录" 或 "微信一键登录"

对于开发者来说,判断方法更直接:

  1. 查看文档: 查看该网站的 API 文档或开发者文档,寻找 "Authentication", "Login", "OIDC", "OAuth 2.0" 等关键词。
  2. 审查网络请求: 在浏览器登录页面,点击第三方登录按钮,然后打开开发者工具的 "Network" 面板,你会看到浏览器向一个特定的 authorization_endpoint 发起请求,这是 OIDC 协议的典型特征。
  3. 检查元数据: OIDC 服务器通常会发布一个 /.well-known/openid-configuration 文件,其中包含了所有端点的地址,你可以尝试访问 https://<provider-domain>/.well-known/openid-configuration 来验证。

为什么网站要支持 OpenID?

对于网站开发者来说,采用 OpenID Connect 有诸多好处:

  1. 提升用户体验: 用户无需记住一堆新的用户名和密码,可以使用自己已有的、熟悉的账户(如 Google, GitHub)快速登录,减少了注册和忘记密码的烦恼。
  2. 降低开发成本: 无需自己实现用户注册、登录、密码重置、安全验证(如短信/邮箱验证码)等复杂且安全敏感的功能,这些工作都由 Google、GitHub 等大型服务商完成了。
  3. 增强安全性: 将安全责任分担给专业的身份提供商,它们有更强大的安全团队、更先进的安全措施(如 MFA、钓鱼攻击防护)来保护用户账户。
  4. 获取用户基本信息 (可选): 在用户授权后,可以获取到一些基本的用户信息(如昵称、邮箱、头像),用于完善用户资料,但这个过程是用户授权的,保护了用户隐私。

支持 OpenID 的网站非常普遍,它已经成为现代互联网应用的身份认证标准,无论是你日常使用的社交软件、购物网站,还是企业内部的管理系统,背后都可能运行着 OpenID Connect 协议,为你提供便捷、安全的第三方登录体验。