我使用表单身份验证的现有asp.net网站。我们有兴趣将第三方服务与单点登录集成,我们不希望我们的用户在访问链接时登录其网站。
我们正在尝试使用OAuth 2标准,但由于我们没有任何经验,我们无法清楚地了解流程。
我们需要代表用户与外部网站进行交易,因此我们应该为他们提供一些方法来识别用户并验证他们是否在我们的网站上进行了身份验证。
到目前为止,我创建了一个可供第三方访问的Web Api。我已经设法实现Owin和Identity,我想使用生成的bearear令牌来保存用户ID(使用ClaimsIdentity)并在用户登录到我的站点并希望访问其他用户时将其发送给第三方应用程序,因此他们将知道用户是谁以及他是否经过身份验证。我不知道这是不是一个好方法。任何帮助都会得到赞赏
答案 0 :(得分:0)
这是一个非常广泛的主题和广泛的问题。
我建议从DotNetOpenAuth library开始。授权流程包含在Oauth2 RFC以及最佳实践建议等中。如果您希望用户使用外部网站登录,然后使用这些凭据登录您的网站," 4.1。授权代码授权"是您正在寻找的工作流程。
答案 1 :(得分:0)
我建议首先看看Taiseer Joudeh关于OAuth的教程,他们非常出色并得到社区的大力支持。
http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/
这将使您更清楚地了解如何使用Web Api 2和Owin中间件处理oAuth。
如果您正在开发Asp.Net Core项目,我有一个github项目,您可以使用oAuth + Aurelia + signalR作为入门套件。
https://github.com/alexandre-spieser/AureliaAspNetCoreAuth
这有多大帮助。
答案 2 :(得分:0)
以下是OAuth开头的链接:
然后是这个:
http://app.pluralsight.com/courses/oauth2-openid-connect-angular-aspdotnet
这些课程将指导您使用SingleSign On,身份服务器设置,JWT身份验证,WS联合,以及还为应用程序使用第三方身份服务器。