OpenID 来了,但我们不会用

设想一个更友好的 Internet,你只需记住一个密码,它让你更容易掌握自己的联系信息,什么网站可以利用,可以利用多少。这样的 Internet 已经降临,OpenID 就是一种让它成为现实的技术。OpenID 让你使用一个 e-mail 或 URL 地址登陆各种网站,,而不必为每个网站单独注册帐户。

很多人都有一长串不同网站的登陆帐户,OpenID 来的正是时候,唯一的问题是,OpenID 和以往的登陆方式截然不同,很多人仍然不知道该怎么利用这种技术。

长期以来,OpenID 是一种边缘技术,支持它的大公司了了无几。2008年1月,Yahoo 与 AOL 首次使用 OpenID 帐户,10月,Google, MySpace, Plaxo, 微软等大公司先后加入,终于将 OpenID 带入主流。OpenID 虽然咸鱼翻身,然而,易用性问题让很多设计与开发者挠头,尽管有不少用户已经拥有 OpenID 绑定于 Google, AOL 或 Yahoo 帐户,他们却不知道如何使用。

Google 与 Yahoo 最近对 OpenID 做的一项用户体验研究表明,Internet 用户常常为 OpenID 的登陆过程所迷惑。如果可以使用 Google 和 Yahoo 帐户,用户常常会忽视 OpenID 而直接使用原来的帐户。这项研究的结论是,用户一直以来依赖用户名和密码,要改变这一习惯不是容易的事情。

OpenID 和一些主要的新闻集团,如 Forbes.com 及 BBC 等最近在纽约进行了一次交流,谈到了 OpenID 面临的主要问题。与会的 Google 的 Eric Sachs 表示,他们收集到一些有价值的反馈。首先,OpenID 的用户界面太复杂,其次,很多网站表示,我们已经拥有了大量用户基础,我们需要一个友好的方式进行 OpenID 转换。

(以下是 WebMonkey 对 Eric Sachs 的访谈全文: Webmonkey’s interview with Eric Sachs.)

Google 和 Yahoo 都尝试对用户的登陆行为进行引导,Yahoo 将登陆步骤从12步简化到2步。Google 将 OpenID 的加密 URL 式登陆替换为基于 e-mail 地址的登陆。这些方法要求用户在登陆他们的站点前定向到 Google 或 Yahoo 进行验证。

Web 设计公司 Adaptive Path 的 Harrelson 对这种模式提出质疑,认为这会让用户感到迷惑,让用户从一个站点跳到另一个站点会带来安全方面的隐忧。

FaceBook 似乎解决了用户体验问题,但 FaceBook 并没使用 OpenID,而是使用他们自己开发的 FaceBook Connect。Facebook Connect 从概念上很接近 OpenID,但在用户体验方面却走在前面,它使用不离开当前页的登陆窗口,用户不必离开当前页,实现了一种近乎无缝的体验。

Plaxo 负责市场的副总裁 John McCrea 是 OpenID 的支持者,他主持一个关于开放 Web 技术的 Podcast,称赞 FaceBook Connect 是 OpenID 努力的方向。我们需要获得类似 FaceBook Connect 的体验,McCrea 说,要实现这个目标,我们需要一些理解产品设计的人,找到我们所需要的技术,达成一致,我们需要将一些东西确立下来。

来自 Plaxo, Yahoo, MySpace, Google 以及 Microsoft 的代表有关相当的资源应对这个问题,这是他们在10月份加入 OpenID 用户体验组的原因。令人惊奇的是,Facebook 也参加了会议,演示了 Facebook Connect 非常漂亮的界面。然而,为什么 FaceBook 要加入 OpenID,既然他们已经在 FaceBook Connect 中解决了问题,他们为什么要帮助 OepnID 这样一个潜在的竞争对手?

Plaxo 的 Joseph Smarr 也是一个非常活跃的 OpenID 支持者,他说,很显然,在一个封闭的圈子里,创新要比在开放环境中来得快,因为你可以自己掌控。然而,当很多人联合起来就会压倒前者,不管你多么聪明。 FaceBook 认识到了这一点,我觉得 FaceBook 看到了 Web 走向社会化的趋势,人们会带着自己的帐户和朋友在 Web 中穿行,他们为看到了这一点而感到兴奋,他们想建立自己的版本,但他们要保证自己的版本符合 OpenID 的开发生态环境。

(WebMOnkey 对 John McCrea 的访谈全文: Webmonkey’s interview with Joseph Smarr and John McCrea.)

随着大公司对 OpenID 的支持,OpenID 的发展迅猛,McCrea 认为,网站运营者们已经到了迫切加入这一阵营的时候。

更多阅读

本文国际来源:http://www.webmonkey.com/blog/OpenID_Is_HereDOT_Too_Bad_Users_Can_t_Figure_Out_How_It_Works
中文翻译来源:COMSHARP CMS (锐商企业CMS)官方网站

### 使用和实现 OpenID Connect 进行身份验证 #### 选择合适的工具和技术栈 对于不同的技术环境,可以选择适合的技术栈来实施 OpenID Connect (OIDC) 身份验证。例如,在 .NET 环境下,ASP.NET Core 支持 OIDC 并能轻松与其他支持该标准的身份提供商集成[^2];而在基于 Node.js 的环境中,则可考虑采用 `oidc-provider` 来创建高效的 OIDC 身份验证服务实例[^4]。 #### 配置 API Gateway 或 Web 应用程序以启用 OIDC 认证流程 无论是通过 Kong 插件还是 Apache APISIX,都可以配置这些中间件组件以便利用 OIDC 完成用户访问控制和服务间通信的安全保障工作。具体来说,就是设置好相应的客户端 ID、密钥以及其他必要参数,从而使得应用程序能够发起授权请求并与指定的身份提供者交互[^3]。 #### 实现隐式流或授权码模式下的登录过程 当涉及到实际的编程实践时,开发者可以根据需求选用恰当的方式处理用户的认证操作。比如,在某些场景里可能更适合采取隐式流方式快速获得 access token 和 id_token 给前端应用使用[^5];而对于更复杂的应用架构而言,或许会倾向于运用授权码加 PKCE 扩展机制确保更高的安全性。 ```javascript // 示例:Node.js 中使用 oidc-provider 初始化一个简单的 OIDC provider const { Provider } = require('oidc-provider'); (async () => { const configuration = {}; const provider = new Provider('http://localhost:3000', configuration); await provider.initialize(); })(); ``` #### 解析并验证来自受信任源颁发的 JWTs 一旦获得了由身份服务器签发的有效 tokens 后,下一步就是在每次 HTTP 请求到达目标资源之前对其进行解析与校验。这通常涉及到了解所使用的签名算法类型(如 RS256)、提取公钥材料以及确认 claims 内容是否满足预期条件等环节。 ```python import jwt def verify_id_token(token, public_key): try: decoded = jwt.decode( token, public_key, algorithms=['RS256'], audience='your-client-id' ) return True, decoded except Exception as e: print(f"Token verification failed: {e}") return False, None ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值