代码之家  ›  专栏  ›  技术社区  ›  David Eyk

OpenID或OAuth是否可以在分布式Web服务上进行授权/身份验证?

  •  1
  • David Eyk  · 技术社区  · 16 年前

    我们正处于为计算语言应用程序设计RESTful/面向资源的Web服务API的早期阶段。因为我们计划提供的许多资源都是权利负担,一个关键的设计决策是指定平台,以便每个资源提供者可以公开他们自己的符合API规范的Web服务。这样,权利所有者就可以控制他们的内容(从而可以随意限制或拒绝访问),以及与消费者建立直接关系,同时仍能参与协作网络。

    同时,为了简化为此服务编写客户机的工作,我们希望允许客户机通过一个端点访问分布式服务,服务器处理内容协商和从适当的提供者检索。

    现在,我们在认证/授权方案上陷入了僵局。我们中的一个成员主张中央认证注册的(技术)简单性,但其他人则担心这种方案的组织复杂性。

    在我看来,虽然对这些技术的理解有限,但OpenID和OAuth的结合可以做到这一点,客户机通过OpenID对端点进行身份验证,服务器代表用户和使用OAuth的各种内容提供商采取行动。

    我只见过有人在场干预的实现(例如stackoverflow、twitter等),我仍然需要对这些技术做更多的研究。

    像这样的方案对自动化Web服务有效吗,还是会使客户机难以实现和操作?

    1 回复  |  直到 16 年前
        1
  •  0
  •   keturn    16 年前

    openid确实假定用户在场,以驱动Web浏览器与其openid提供程序进行交互,并进行初始身份验证。但是,您可以让用户使用OpenID对端点进行身份验证,并获得OAuth授权,以供客户机自动使用。

    您应该能够在不使客户机太难实现的情况下实现这一点,特别是当客户机所在的平台允许它生成一个Web浏览器来驱动最初的OpenID位时。