【问题标题】:Do I need to implement OpenID as well as OAuth 2 to provide OAuth-style API authentication and authorisation?我是否需要实现 OpenID 以及 OAuth 2 来提供 OAuth 风格的 API 身份验证和授权?
【发布时间】:2013-08-14 22:43:13
【问题描述】:

我们正在构建一个需要访问特定客户数据的新应用,而 OAuth 似乎非常适合我们的要求 - 长期访问令牌、授予对特定资源或范围的访问权限的能力等等。我们在这里寻找“使用 Facebook 登录”类型的功能;我们希望基于我们现有的客户登录数据库公开单个特定的 OAuth 身份验证服务器,并允许 Web 和本机应用程序通过此端点对用户进行身份验证。

我一直在查看 DotNetOpenAuth 代码示例,似乎所有 OAuth 2 示例都使用 OpenID 执行初始身份验证,然后使用 OAuth 实际授权对资源的访问。

我的理解是您可以使用“无操作授权”来执行初始身份验证,允许您在整个过程中使用 OAuth2;由于我们不想支持联合身份验证,因此 OpenID 实际上并没有提供任何东西,因此为了简单起见,我宁愿坚持使用单一协议。

在任何地方都有使用 .NET 构建的纯 OAuth2 身份验证服务器的好例子吗?我是否误解了 DotNetOpenAuth 提供的示例代码?还是初始身份验证阶段仍需要 OpenID?

【问题讨论】:

    标签: oauth oauth-2.0 openid dotnetopenauth


    【解决方案1】:

    OAuth2.0 和 OpenId 之间没有耦合关系。 您可以在 OAuth2.0 实施中实施您的自定义登录策略。

    由于您将成为“资源所有者”(据我了解,您的应用程序拥有用户群),您可以简单地将 DNOA 授权服务器示例中的 openid 登录替换为标准的 asp.net 登录。

    OAuth2.0 协议只需验证用户身份即可发出访问令牌:如何验证该身份完全取决于您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-27
      • 2016-02-15
      • 2020-03-29
      • 2011-12-04
      • 2017-07-21
      • 2018-01-11
      • 2013-04-15
      相关资源
      最近更新 更多