我想使用OpenID来验证我的webapp上的用户 - 类似于StackExchange的做法。我还想让我的网站用户使用同一帐户使用我的桌面和移动应用程序。我读过这个需要OAuth(OpenID纯粹只是网站)。
我不知道的是
在一个理想的世界中,我可以为我的WebApp以及我的桌面和移动应用程序提供与https://stackoverflow.com/users/login类似的按钮,这些按钮只允许用户使用他们的google或facebook帐户登录,那可能吗?用户的简单性是至关重要的,因为我的用户群不会带来任何远程复杂的东西。
我可以使用像DotNetOpenAuth这样的东西来提供所有这些功能吗?
更好的解决方案是解决这个问题并允许用户使用OpenID对我的网站进行身份验证,然后为桌面和移动客户端提供自己的OAuth方案吗?
答案 0 :(得分:1)
最简单的机制可能是嵌入一个Web视图,只需观察导航到特定的回调页面并以这种方式获取身份验证数据。您仍然可以使用OpenID。
答案 1 :(得分:0)
您应该关注的是Windows Identity Framework(WIF),它对于使用基于声明的身份的Web或桌面应用程序的工作方式类似。您将为每个用户存储授权令牌(以及您需要的任何其他信息),并且您将在经过身份验证的HTTP请求的授权标头中获取该授权令牌。 oAuth是传递授权请求和响应的协议。 WIF是一个.NET工具包,用于简化此交互。
有关详细信息,请查看WIF主页和以下博客(不是我的):
答案 2 :(得分:0)
这是我想出的工作流程,到目前为止我认为它运作良好。
用户需要通过第三方OpenID / Facebook /等对网站进行身份验证(可以使用移动设备友好的网站)。然后,在他们的“配置文件”中,他们可以生成API“密钥”,他们可以将其复制/粘贴到他们的客户端软件中。它不是100%透明的用户,但它非常好。