Dans Web API 2, vous pouviez créer un noeud final pour émettre un jeton en configurant un OAuth Authorization Server via un middleware, comme ci-dessous:
//Set up our auth server options.
var OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
Provider = new SimpleAuthorizationServerProvider()
};
// Sets up the token issue endpoint using the options above
app.UseOAuthAuthorizationServer(OAuthServerOptions);
Peut-être me manque-t-il, mais j'essaie de comprendre comment faire cela dans ASP.NET Core. J'ai regardé dans la source ( https://github.com/aspnet/Security ) mais je ne vois vraiment rien d'analogue. Y a-t-il une nouvelle façon d'accomplir cela? Dois-je simplement créer un contrôleur et le faire moi-même?
Je vois comment OAuth L’authentification peut être configurée via un middleware, mais ceci concerne la partie autorisation dans laquelle j’émets des revendications à partir de mon API.
Ne perdez pas votre temps à chercher une alternative OAuthAuthorizationServerMiddleware
dans ASP.NET Core, l'équipe ASP.NET a simplement décidé de ne pas la porter: https://github.com/aspnet/Security/ issues/8
Je suggère de jeter un coup d'œil sur AspNet.Security.OpenIdConnect.Server , un fork évolué du middleware du serveur d'autorisations OAuth2 fourni avec Katana 3: il existe un OWIN/Katana 3, et une version ASP.NET Core prenant en charge à la fois le framework .NET complet et le .NET Core.
https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server
ASP.NET Core 1.x:
app.UseOpenIdConnectServer(options =>
{
options.AllowInsecureHttp = true;
options.TokenEndpointPath = new PathString("/token");
options.AccessTokenLifetime = TimeSpan.FromDays(1);
options.TokenEndpointPath = "/token";
options.Provider = new SimpleAuthorizationServerProvider();
});
ASP.NET Core 2.x:
services.AddAuthentication().AddOpenIdConnectServer(options =>
{
options.AllowInsecureHttp = true;
options.TokenEndpointPath = new PathString("/token");
options.AccessTokenLifetime = TimeSpan.FromDays(1);
options.TokenEndpointPath = "/token";
options.Provider = new SimpleAuthorizationServerProvider();
});
Pour en savoir plus sur ce projet, je vous recommande de lire http://kevinchalet.com/2016/07/13/creating-your-own-openid-connect-server-with-asos-introduction/ =.
Bonne chance!
Pour ceux qui recherchent toujours l'original OAuth Authorization Server dans ASP.NET 5, j'ai porté le code et l'exemple d'origine ici: https://github.com/XacronDevelopment/ oauth-aspnet
Le port inclut une compatibilité ascendante pour permettre aux serveurs de ressources ASP.NET 4.x de lire les jetons d'accès créés par le serveur d'autorisation.
Les paquets de nuget sont ici: https://www.nuget.org/packages/OAuth.AspNet.AuthServerhttps://www.nuget.org/packages/OAuth.AspNet. Jetonshttps://www.nuget.org/packages/OAuth.Owin.Tokens