【问题标题】:Implementing OAuth 2 protocol in existing asp.net project, for third party integration在现有的 asp.net 项目中实现 OAuth 2 协议,用于第三方集成
【发布时间】:2016-08-22 23:49:25
【问题描述】:

我使用具有表单身份验证的现有 asp.net 网站。我们有兴趣将第三方服务与单点登录集成在一起,我们不希望我们的用户在访问链接时登录他们的网站。

我们正在尝试为此使用 OAuth 2 标准,但由于我们没有任何经验,因此无法清楚地理解流程。

我们需要代表用户与外部网站进行交易,因此我们应该为他们提供一些方法来识别用户并验证他们在我们的网站中是否经过身份验证。

到目前为止,我已经创建了一个可供第三方访问的 Web Api。我已经设法实现了 Owin 和 Identity,我想使用生成的 Bearear 令牌来保留用户 ID(使用 ClaimsIdentity),并在用户登录到我的网站并想要访问另一个网站时将其发送给第三方应用程序,因此他们将知道用户是谁以及他是否已通过身份验证。我不知道这是否是一个好方法。任何帮助将不胜感激

【问题讨论】:

    标签: c# asp.net oauth


    【解决方案1】:

    这是一个非常广泛的主题和广泛的问题。

    我建议从DotNetOpenAuth library 开始。 Oauth2 RFC 中介绍了授权流程以及最佳实践建议等。如果您希望用户使用外部网站登录,然后使用这些凭据登录您的网站,“4.1. 授权代码授予”是您正在寻找的工作流程为。

    【讨论】:

    • 不,我不希望用户使用外部网站登录,我希望他们登录到我的网站,然后无需登录即可访问其他网站(我们应该提供第三方对正在访问它的用户进行身份验证的方法)。我们还应该向他们提供有关用户的信息以进行识别。这是否意味着我应该建立一个授权服务器?
    • 知道了。是的,您需要构建授权服务器。您当然可以使用 DotNetOpenAuth 做到这一点。我已经为我正在工作的公司这样做了
    • 你能推荐我一个好的教程吗?我应该在现有网站之上构建 DotNetOpenAuth 还是创建一个 Web Api 作为授权服务器?感谢您的回复
    • 我使用了来自 DotNetOpenAuth 源代码的示例。 github.com/DotNetOpenAuth/DotNetOpenAuth/tree/develop/samples 这也很有帮助 github.com/DotNetOpenAuth/DotNetOpenAuth/wiki/…
    【解决方案2】:

    我建议您先看看 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

    这有什么帮助。

    【讨论】:

      【解决方案3】:

      这是 OAuth 的开始链接:

      https://app.pluralsight.com/library/courses/oauth2-json-web-tokens-openid-connect-introduction/table-of-contents

      然后是这个:

      http://app.pluralsight.com/courses/oauth2-openid-connect-angular-aspdotnet

      这些课程将指导您进行单点登录、身份服务器设置、JWT 身份验证、WS 联合,以及为应用程序使用第三方身份服务器。

      【讨论】:

        猜你喜欢
        • 2011-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-07
        • 1970-01-01
        • 2011-03-17
        • 2011-09-08
        • 1970-01-01
        相关资源
        最近更新 更多