none
Login Multiple para Apps RRS feed

  • Pregunta

  • Hola desarrolladores, tengo una duda y espero me puedan ayudar.

    En la empresa quieren manejar un único login para todas las Apps, por ejemplo, tenemos 3 Apps angular y 1 app android, hoy dia cada app maneja su propio sistema de autenticacion, aunq miran la misma tabla de usuarios.

    Lo que se desea es que al hacer un unico login, con eso ya quede autenticado en todas las Apps, en una conferencia que vi, el ingeniero recomendaba crear un microservicio para login.

    Esa es la parte que no entiendo, si me logueo y tengo el token, cuando haga la peticion rest a un servicio de alguna App como Authorize va a saber que ese login es valido?

    para eso se usa identity server? lei un poco sobre eso pero veo que no usa login y pass.

    Agradezco consejos.

    jueves, 13 de diciembre de 2018 0:52

Respuestas

  • Hola, te dejo un artículo que hice para esto.

    Cómo securizar tus apps con Identity Server y .NET Core (Parte II)


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta CrissR jueves, 13 de diciembre de 2018 14:59
    jueves, 13 de diciembre de 2018 12:52
    Moderador
  • Hola. Los IdentityResources son los claims personalizados que se pueden devolver en el token de autenticación. La parte de usuarios es un ejemplo de usuarios en memoria. Si ves los ejemplos de Github https://github.com/IdentityServer/IdentityServer4.Samples/tree/master/Quickstarts/6_AspNetIdentity

    Aqui se usa Aspnet identity (está en Base de datos) para manejar la autenticación de usuarios


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta CrissR jueves, 13 de diciembre de 2018 14:59
    jueves, 13 de diciembre de 2018 14:48
    Moderador

Todas las respuestas

  • Hola, efectivamente. IDENTITY SERVER sirva para ello. Permite autenticar usuarios y generar token de autorización para aplicaciones. Se permite realizar un single sign on. Aquí te dejo el enlace de la documentación

    http://docs.identityserver.io/en/latest/


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    jueves, 13 de diciembre de 2018 9:01
    Moderador
  • hola

    >>Esa es la parte que no entiendo, si me logueo y tengo el token, cuando haga la peticion rest a un servicio de alguna App como Authorize va a saber que ese login es valido?

    si quien emite el token es un servicio unico para todas las aplicaciones entonces deberias poder usarlos en varias apps

    >>lei un poco sobre eso pero veo que no usa login y pass

    si que lo usa

    Bearer Token Authentication in ASP.NET Core

    si revisas el titulo "Testing the Authentication Server" veras que al pedir el token debes pasarle el usuario y password

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 13 de diciembre de 2018 10:19
  • Hola, efectivamente. IDENTITY SERVER sirva para ello. Permite autenticar usuarios y generar token de autorización para aplicaciones. Se permite realizar un single sign on. Aquí te dejo el enlace de la documentación

    http://docs.identityserver.io/en/latest/


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    Hola Sergio, Gracias por responder, como seria la autenticacion de usuarios? he visto varios tutoriales y videos en youtube pero todos llegan a lo mismo, loguean es una Aplicación mas no usuarios, crean un clientId y pasan el secret mas nunca un usuario y contraseña para autenticar, ando muy perdido en el tema. Cuando hago los login normalmente con jwt yo tengo en secret en la App mas para el login solo me envian usuario y contraseña, pero en todos los videos envian en clientid y secret mas no usser y pass.
    jueves, 13 de diciembre de 2018 12:37
  • Hola, te dejo un artículo que hice para esto.

    Cómo securizar tus apps con Identity Server y .NET Core (Parte II)


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta CrissR jueves, 13 de diciembre de 2018 14:59
    jueves, 13 de diciembre de 2018 12:52
    Moderador
  • Tenemos dos protocolos. OpenID  (provee autenticación de usaurios) y OAuth2 (para autorizaciones). Hay que configurar tu aplicación web para que emplee el protocolo OpenId. En los tutoriales de Identity Server puedes ver cómo hacerlo. REvisa los flows de implicit e hybrid

    IdentityServer/IdentityServer4.Samples


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    jueves, 13 de diciembre de 2018 12:54
    Moderador
  • hola

    >>Esa es la parte que no entiendo, si me logueo y tengo el token, cuando haga la peticion rest a un servicio de alguna App como Authorize va a saber que ese login es valido?

    si quien emite el token es un servicio unico para todas las aplicaciones entonces deberias poder usarlos en varias apps

    >>lei un poco sobre eso pero veo que no usa login y pass

    si que lo usa

    Bearer Token Authentication in ASP.NET Core

    si revisas el titulo "Testing the Authentication Server" veras que al pedir el token debes pasarle el usuario y password

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    Gracias Leandro, revisare el post
    jueves, 13 de diciembre de 2018 13:38
  • Hola, te dejo un artículo que hice para esto.

    Cómo securizar tus apps con Identity Server y .NET Core (Parte II)


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    Super interesante ese post, haber si entiendo, en esta parte

    public static List<TestUser> GetUsers()
    {
        return new List<TestUser>
        {
            new TestUser
            {
                SubjectId = "1",
                Username = "adrian",
                Password = "elrealmadridcampeondeeuropaunavezmas"
            },
            new TestUser
            {
                SubjectId = "2",
                Username = "parrita",
                Password = "thesame"
            }
        };
    }


    En esa parte del código es donde debería haber una consulta a mi db de usuarios con entityframework para validar si el usuario y la contraseña están bien? aunq veo que se retornan todos los usuarios, deberia retornar todos mis usuarios? son aprox 1.000 no hay lio?

    Otra duda que me sale del articulo es

    public static IEnumerable<IdentityResource> GetIdentityResources()
    {
        return new List<IdentityResource>
        {
            new IdentityResources.OpenId(), // claim estándar
            new IdentityResources.Profile(), // claim estándar
            new IdentityResources.Email(), // claim estándar
            new IdentityResource // claim personalizado
            {
                Name = "Name",
                UserClaims = new List<string> {"name"}
            },
            new IdentityResource // claim personalizado
            {
                Name = "Surname",
                UserClaims = new List<string> {"surname"}
            },
            new IdentityResource // claim personalizado
            {
                Name = "WorkPlace",
                UserClaims = new List<string> {"workplace"}
            }
       };
    }

    Esos new identityResource son como las Apps que voy agregando?? las apps a las que cada usuario tendría acceso?, si inicial mente es una App agrego solo una linea y si es una app y una android agrego 2 lineas?

    disculpa tanta pregunta pero ese articulo me inspiro bastante.

    jueves, 13 de diciembre de 2018 13:42
  • Hola. Los IdentityResources son los claims personalizados que se pueden devolver en el token de autenticación. La parte de usuarios es un ejemplo de usuarios en memoria. Si ves los ejemplos de Github https://github.com/IdentityServer/IdentityServer4.Samples/tree/master/Quickstarts/6_AspNetIdentity

    Aqui se usa Aspnet identity (está en Base de datos) para manejar la autenticación de usuarios


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta CrissR jueves, 13 de diciembre de 2018 14:59
    jueves, 13 de diciembre de 2018 14:48
    Moderador
  • Hola. Los IdentityResources son los claims personalizados que se pueden devolver en el token de autenticación. La parte de usuarios es un ejemplo de usuarios en memoria. Si ves los ejemplos de Github https://github.com/IdentityServer/IdentityServer4.Samples/tree/master/Quickstarts/6_AspNetIdentity

    Aqui se usa Aspnet identity (está en Base de datos) para manejar la autenticación de usuarios


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    Muchas gracias, todo muy claro, ya estoy manos a la obra
    jueves, 13 de diciembre de 2018 15:00