我是否需要实施OpenID以及OAuth 2以提供OAuth样式的API身份验证和授权?

时间:2013-08-09 10:47:47

标签: oauth oauth-2.0 openid dotnetopenauth

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

由于您将成为“资源所有者”(据我所知,您的应用程序拥有用户群),您只需在DNOA授权服务器示例中用标准的asp.net登录名替换openid登录。

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