Saltar al contenido

Cómo implementar el servidor oauth2 en ASP.NET MVC 5 y WEB API 2

Esta reseña ha sido probado por nuestros especialistas así garantizamos la veracidad de esta crónica.

Solución:

Hay una publicación de blog brillante de Taiseer Joudeh con una descripción detallada paso a paso.

  1. Parte 1: Autenticación basada en token mediante ASP.NET Web API 2, Owin e Identity
  2. Parte 2: Autenticación de tokens de AngularJS mediante ASP.NET Web API 2, Owin e Identity
  3. Parte 3: habilite los tokens de actualización de OAuth en la aplicación AngularJS usando ASP .NET Web API 2 y Owin
  4. Parte 4: ASP.NET Web API 2 inicios de sesión externos con Facebook y Google en la aplicación AngularJS
  5. Parte 5: Desacoplar el servidor de autorización OWIN del servidor de recursos

También tuve problemas para encontrar artículos sobre cómo generar solo la parte del token. Nunca encontré uno y escribí el mío. Así que si ayuda:

Las cosas que hacer son:

  • Crear una nueva aplicación web
  • Instale los siguientes paquetes de NuGet:
    • Microsoft.Owin
    • Microsoft.Owin.Host.SystemWeb
    • Microsoft.Owin.Security.OAuth
    • Microsoft.AspNet.Identity.Owin
  • Agregar un OWIN startup clase

Luego crea un HTML y un JavaScript (index.js) archivo con estos contenidos:

var loginData = 'grant_type=password&[email protected]&password=test123';

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function () 
    if (xmlhttp.readyState === 4 && xmlhttp.status === 200) 
        alert(xmlhttp.responseText);
    

xmlhttp.open("POST", "/token", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(loginData);



    


    


El OWIN startup la clase debe tener este contenido:

using System;
using System.Security.Claims;
using Microsoft.Owin;
using Microsoft.Owin.Security.OAuth;
using OAuth20;
using Owin;

[assembly: OwinStartup(typeof(Startup))]

namespace OAuth20

    public class Startup
    
        public static OAuthAuthorizationServerOptions OAuthOptions  get; private set; 

        public void Configuration(IAppBuilder app)
        
            OAuthOptions = new OAuthAuthorizationServerOptions()
            
                TokenEndpointPath = new PathString("/token"),
                Provider = new OAuthAuthorizationServerProvider()
                
                    OnValidateClientAuthentication = async (context) =>
                    
                        context.Validated();
                    ,
                    OnGrantResourceOwnerCredentials = async (context) =>
                    
                        if (context.UserName == "[email protected]" && context.Password == "test123")
                        
                            ClaimsIdentity oAuthIdentity = new ClaimsIdentity(context.Options.AuthenticationType);
                            context.Validated(oAuthIdentity);
                        
                    
                ,
                AllowInsecureHttp = true,
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1)
            ;

            app.UseOAuthBearerTokens(OAuthOptions);
        
    

Ejecute su proyecto. El token debe mostrarse en la ventana emergente.

Estoy investigando lo mismo y me topé con el servidor de identidad que implementa OAuth y OpenID sobre ASP.NET. Se integra con la identidad ASP.NET y Membership Reboot con soporte de persistencia para Entity Framework.

Entonces, para responder a su pregunta, consulte su documento detallado sobre cómo configurar un servidor OAuth y OpenID.

Nos puedes añadir valor a nuestro contenido asistiendo con tu experiencia en los informes.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *