.net - ASP.NET 5 Web API 支持社交登录、个人帐户、帐户管理、授权屏幕和 ASP.NET 身份。它存在吗?

标签 .net rest oauth-2.0 asp.net-core access-token

本质上,这是对 this question 的更新。近两年前,AspNet.Security.OpenIdConnect.Server 的@Pinpoint 给出了非常有帮助的回答名声。

对于所有愿意沉迷于沮丧的开发人员凌晨 4 点的亵渎行为的人,我将把咆哮放在底部。

我正在开始一些新项目,出于我自己的原因,我想使用最新版本的 ASP.NET 技术(ASP.NET 5 vNext 和 MVC 6)开始工作。

一种非常流行的现代应用程序架构

  • 使用 token 保护 REST API
  • 支持个人登录
  • 支持社交登录

  • 最新和最伟大的技术 .NET 东西
  • ASP.NET 5 ( almost ..)
  • ASP.NET 标识(及其所有 user data storeswonderful policy stuff )
  • MVC 6

  • 通常 OAuth2 可用于身份验证。

    问题

    ASP.NET 曾经支持 creation of tokens with OAuth2 , 但是 it doesn't any more and isn't going to ,显然 it wasn't very good anyway .有some help ,但对于如何将其与 ASP.NET Identity 和新的 Authorize 结合起来,我仍然有点迷茫。属性。

    所以我的实际问题。

    在这个波涛汹涌、多风、可怕的互联网上,是否有任何示例展示了以下内容:
  • 基于 ASP.NET 5/MVC 6 的 REST API,由 ASP.NET 身份和 OAuth2 保护,带有 AccountController愉快地为社交登录或个人登录创建帐户和提供 token ,使用可爱的 ASP.NET 身份用户存储来保持整洁,密码恢复和一系列标准的现代帐户内容,以及用于确认权限请求的授权屏幕(“XXX想访问您的帐户,可以吗?”等)
  • (可选)客户端应用程序(我不在乎它是 WPF、Cordova、AngularJS,用汇编程序编写还是在 ZX81 上运行,Meccano 自动化测试)支持社交和个人帐户登录到REST API 并获得一个不错的小 token ,像宝丽来一样在空中扇动

  • 我发现了一些 close , closerso on .但没有一个匹配。

    据我了解,我不能将 ASP.NET 5 的基于策略的新授权内容与 IdentityServer3 一起使用。 .我不可能是唯一想要这种架构的人,有人做到了吗?

    我觉得每次我来保护我的应用程序时,我都在发明轮子。

    咆哮

    我已经离开授权的东西一年多了,但我回来了,男孩的事情发生了变化。这一切都与 OWIN 混淆了。 , Katana , ASP.NET Identity , IdentityServer3 , AspNet.Security.OpenIdConnect.Server .似乎只有(尽管非常出色)的辅助项目可以完全支持拥有基于 .NET 的安全 token 服务器。通过“副项目”,我的意思是对这些伟大的项目没有冒犯,只是没有任何微软和/或付费支持。

    我想进行大量的开发,但我总是在身份验证的实现上停滞不前,我无法想象这是一个不受欢迎的架构。

    微软如此巧妙地考虑了这样一个标准的架构方案,这对我来说似乎太不可思议了。

    当我想在我的 REST 应用程序中实现登录时,我发现自己在一个令人困惑的、嘈杂的交叉发射信息管弦乐队中颠倒过来。

    如果有人想启动一个维护的、开源的模板解决方案,请告诉我。我厌倦了构建 REST 的开始,基于 token 的应用程序对于如此基本标准的东西来说是如此不必要的复杂。

    最佳答案

    Is there a sample anywhere on this wavy, windy, scary internet that demonstrates the following:

    ASP.NET 5/MVC 6 based REST API, secured with ASP.NET Identity and OAuth2, with an AccountController merrily creating accounts and serving tokens for social logins or individual logins, with a lovely ASP.NET Identity user store to keep things tidy, password recovery and a range of the standard, modern account stuff, and authorisation screens to confirm permissions requests ("XXX would like to access your account, is this OK?" etc.)


    我目前正在开发一个名为 OpenIddict 的全新身份服务器。 : 它基于 ASP.NET Identity 3 (随 ASP.NET 5 提供)并使用 AspNet.Security.OpenIdConnect.Server在内部控制整个 OIDC 流。它旨在提供开始使用 token 身份验证的最简单方法,并且它与完整的 .NET 框架和新的 .NET Core 兼容。
    当然,它既不是由微软开发也不是由微软创立(请随​​意建议他们支持我们),但它符合您的要求:它带有一个控制授权体验(即同意书部分)的内部 Controller ,并依赖于AccountController您添加到您的应用程序以处理本地/外部身份验证过程。
    它仍处于早期阶段,您需要 ASP.NET 5/DNX RC2 每晚构建才能使用它 ,但它很容易配置。您只需调用 AddOpenIddict() 来自 ConfigureServices并添加 UseOpenIddict() 来自 Configure .您可以找到更多信息on the GitHub repository .
    public void ConfigureServices(IServiceCollection services) {
        services.AddMvc();
    
        services.AddEntityFramework()
            .AddSqlServer()
            .AddDbContext<ApplicationDbContext>(options =>
                options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
    
        services.AddIdentity<ApplicationUser, IdentityRole>()
            .AddEntityFrameworkStores<ApplicationDbContext>()
            .AddDefaultTokenProviders()
            .AddOpenIddict(); // Add the OpenIddict services after registering Identity.
    }
    
    
    public void Configure(IApplicationBuilder app) {
        app.UseIdentity();
    
        // Add all the external providers you need before registering OpenIddict:
        app.UseGoogleAuthentication();
        app.UseFacebookAuthentication();
    
        app.UseOpenIddict();
    }
    

    关于.net - ASP.NET 5 Web API 支持社交登录、个人帐户、帐户管理、授权屏幕和 ASP.NET 身份。它存在吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34215352/

    相关文章:

    c# - 垃圾收集和使用 - 为什么内存在 `using{}` block 之后没有释放?

    .net - 确定自 .NET 中的特定日期以来文件夹 ACL 是否被修改

    .net - Web浏览器控件处理javascript : popup

    c# - 如何使用 IoC 注入(inject)打开的连接

    java - 使用 JAXB 或类似的东西自动填充 HATEAOS 链接?

    oauth-2.0 - 无法刷新 Reddit OAuth 2.0 访问 token

    java - Kotlin - Spring REST - 不会调用带有 ExceptionHandler 的 ControllerAdvice

    .net - 使用.NET WebBrowser控件,为什么Salesforce.com在用户 session 失效后自动登录用户?

    authentication - auth0 的 userInfo 中缺少 user_metadata

    php - DeviantArt 中的用户身份验证