【问题标题】:Authenticated REST API for a mobile app and website on ASP.NET Core用于 ASP.NET Core 上的移动应用和网站的经过身份验证的 REST API
【发布时间】:2016-11-05 17:12:26
【问题描述】:

我想构建一个 REST API,托管在 Azure 上,从“ASP.NET Core Web 应用程序 (.NET Framework)”模板构建,将身份存储在 EF 中。

我想避免使用 View 等,因为它会使代码库变得混乱。

然后它应该可以按照本文中的描述进行调用(TL;DR:标头身份验证和 POST 到 /token 端点和使用 [Authorize] 的控制器) https://blogs.msdn.microsoft.com/martinkearn/2015/03/25/securing-and-securely-calling-web-api-and-authorize/

但是,我找不到如何在 ASP.NET Core 中访问 /token 端点。我正在阅读有关 JWT、Bearer、OWin 等的大量内容,基本身份验证很糟糕,但我不知道如何继续。

该 API 将被网站和移动应用程序使用。

我需要什么以及需要采取哪些步骤来启动和运行“hello world”?

另外,为什么我似乎是唯一拥有这种架构的人?

【问题讨论】:

    标签: rest azure asp.net-identity


    【解决方案1】:

    ASP.NET Core 中没有令牌端点

    您可以构建自定义中间件,如本文所述:ASP.NET Core Token Authentication Guide 或者你可以使用外部包:

    最后,推荐这篇文章:Bearer Token Authentication in ASP.NET Core

    如果您对使用令牌身份验证(通过 IdentityServer4)的 ASP.NET Core Web API 的 Angular 2 SPA 感兴趣,请查看此存储库:https://github.com/robisim74/Angular2SPAWebAPI(免责声明,这是我的)。

    【讨论】:

    • 感谢您的快速回答,但您能帮我把它简化一下吗?我已经开始了一个空项目,将代码 sn-ps 从这里 github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server 添加到我的项目中。我可以请求一个不记名令牌(POST 到 /connect/token)。为了 GET,我使用令牌设置了 Authorization 标头,但我继续获得 401 Unauthorized。我还需要添加哪些其他代码?
    • @WouterVanRanst 您是否在管道中添加了 OAuth2 验证中间件?如果它在那里并且您仍然看到错误,请考虑使用一些代码打开一个新的 SO 问题;)
    • 请参阅stackoverflow.com/questions/40516170/… 了解有关 OpenIdConnect 的更多详细信息的后续问题
    猜你喜欢
    • 2014-05-15
    • 2019-07-25
    • 2020-09-19
    • 2016-10-03
    • 2017-03-25
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多