使用Openiddict的ASP.NET Core 1.0 OAuth服务器

前端之家收集整理的这篇文章主要介绍了使用Openiddict的ASP.NET Core 1.0 OAuth服务器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用Openiddict OAuth来保护我的ASP.NET Core 1.0 Web应用程序中的api端点. api端点将由电话应用程序调用,用户必须使用用户名和密码登录.

流程如下:

>用户可以通过网络应用程序注册登录:https://www.domain.com
>用户安装手机应用程序,他们可以使用手机应用程序登录注册.登录,注册和数据访问是通过api端点完成的:示例:https://www.domain.com/api/service/getsomedata

如何配置Openiddict OAuth,以便使用OAuth保护API端点?

解决方法

How can I configure Openiddict OAuth so I can protect the API endpoints using OAuth?

您的场景听起来像是the simple “resource owner password credentials” grant的一个很好的候选者,它基本上是OAuth2等同于基本或表单身份验证.

这是我建议的:

创建一个新的AccountController / RegistrationController API控制器,负责创建新帐户:

由于此阶段不存在用户帐户,因此您无法在此处使用令牌身份验证(就像默认的AccountController.Register模板在注册用户之前不需要cookie身份验证一样).

配置OpenIddict以启用令牌端点并允许资源所有者密码凭据授予:

services.AddOpenIddict<ApplicationDbContext>()
    // Disable the HTTPS requirement during development.
    .DisableHttpsRequirement()

    // Enable the token endpoint,required to use
    // the resource owner password credentials grant.
    .EnableTokenEndpoint("/connect/token")

    // Enable the password and the refresh token flows.
    .AllowPasswordFlow()
    .AllowRefreshTokenFlow();

使用OAuth2验证中间件来保护您的API:

要启用令牌身份验证,请参阅AspNet.Security.OAuth.Validation 1.0.0-alpha2-final包并在app.UseMvc()之前添加app.USEOAuthValidation().要使身份验证成为必需,只需使用[Authorize]属性,就像使用Cookie身份验证一样.

不要犹豫与this sample一起玩.它不会在客户端部分使用移动应用程序,但您应该很容易理解它是如何工作的.

有关更多信息,您还可以阅读此博客文章,由Mike Rousos撰写,用于Microsoft .NET Web开发和工具博客Bearer Token Authentication in ASP.NET Core

猜你在找的.NET Core相关文章