我们正在构建一个需要访问特定客户数据的新应用,并且OAuth似乎绝对完美符合我们的要求 - 长期访问令牌,授予对特定资源或范围的访问权限等等。我们不在这里寻找'登录Facebook'类型的功能;我们希望根据现有的客户登录数据库公开单个特定的OAuth身份验证服务器,并允许Web和本机应用程序通过此端点对用户进行身份验证。
我一直在查看DotNetOpenAuth代码示例,看来所有OAuth 2示例都使用OpenID执行初始身份验证,然后使用OAuth实际授权访问资源。
我的理解是您可以使用“无操作授权”来执行初始身份验证,从而允许您在整个过程中使用OAuth2;由于我们不想支持联合身份验证,因此OpenID实际上并不提供任何内容,因此,如果可能,我宁愿坚持使用单一协议。
在使用.NET构建的纯OAuth2身份验证服务器的任何地方都有一个很好的例子吗?我是否误解了DotNetOpenAuth提供的示例代码?或者初始身份验证阶段仍然需要OpenID吗?
答案 0 :(得分:1)
OAuth2.0和OpenId之间没有耦合关系。 您可以在OAuth2.0实施中实施自定义登录策略。
由于您将成为“资源所有者”(据我所知,您的应用程序拥有用户群),您只需在DNOA授权服务器示例中用标准的asp.net登录名替换openid登录。
OAuth2.0协议只需验证用户身份即可发出访问令牌:验证身份的方式完全取决于您。