当你看到一个网站(如“我的小博客”)提供“使用 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"
- "使用微信登录" 或 "微信一键登录"
对于开发者来说,判断方法更直接:
- 查看文档: 查看该网站的 API 文档或开发者文档,寻找 "Authentication", "Login", "OIDC", "OAuth 2.0" 等关键词。
- 审查网络请求: 在浏览器登录页面,点击第三方登录按钮,然后打开开发者工具的 "Network" 面板,你会看到浏览器向一个特定的
authorization_endpoint发起请求,这是 OIDC 协议的典型特征。 - 检查元数据: OIDC 服务器通常会发布一个
/.well-known/openid-configuration文件,其中包含了所有端点的地址,你可以尝试访问https://<provider-domain>/.well-known/openid-configuration来验证。
为什么网站要支持 OpenID?
对于网站开发者来说,采用 OpenID Connect 有诸多好处:
- 提升用户体验: 用户无需记住一堆新的用户名和密码,可以使用自己已有的、熟悉的账户(如 Google, GitHub)快速登录,减少了注册和忘记密码的烦恼。
- 降低开发成本: 无需自己实现用户注册、登录、密码重置、安全验证(如短信/邮箱验证码)等复杂且安全敏感的功能,这些工作都由 Google、GitHub 等大型服务商完成了。
- 增强安全性: 将安全责任分担给专业的身份提供商,它们有更强大的安全团队、更先进的安全措施(如 MFA、钓鱼攻击防护)来保护用户账户。
- 获取用户基本信息 (可选): 在用户授权后,可以获取到一些基本的用户信息(如昵称、邮箱、头像),用于完善用户资料,但这个过程是用户授权的,保护了用户隐私。
支持 OpenID 的网站非常普遍,它已经成为现代互联网应用的身份认证标准,无论是你日常使用的社交软件、购物网站,还是企业内部的管理系统,背后都可能运行着 OpenID Connect 协议,为你提供便捷、安全的第三方登录体验。
