用于Webapp和桌面/移动应用程序的OpenID + OAuth身份验证和授权

Nat*_*ate 5 asp.net security openid oauth

我想使用OpenID来验证我的webapp上的用户 - 类似于StackExchange的做法.我还想让我的网站用户使用同一帐户使用我的桌面和移动应用程序.我读过这个需要OAuth(OpenID只是纯粹的网站).

我不知道的是

  • 这是正确的方法吗?
  • 这将是什么工作流程?
  • 每个用户/ OpenID在我的数据库中需要哪些数据?我是否存储"帐户",然后在使用OpenID进行身份验证后,我允许他们为移动应用生成OAuth令牌?

在一个理想的世界中,我可以使用类似于https://stackoverflow.com/users/login上的按钮,用于我的WebApp以及我的桌面和移动应用程序,这些按钮只允许用户使用他们的谷歌或facebook帐号,这可能吗?用户的简单性是至关重要的,因为我的用户群不会带来任何远程复杂的东西.

我可以使用DotNetOpenAuth之类的东西来提供所有这些功能吗?

更好的解决方案是打破这个并允许用户使用OpenID对我的网站进行身份验证,然后我为我的桌面和移动客户端提供自己的OAuth方案吗?

Nat*_*ate 0

这是我想出的工作流程,到目前为止我认为它运作良好。

用户需要通过第三方 OpenID/Facebook/等对网站进行身份验证(移动设备友好的网站可用)。然后,在他们的“配置文件”中,他们可以生成一个 API“密钥”,他们可以将其复制/粘贴到他们的客户端软件中。它对用户来说并不是 100% 透明,但它相当不错。