Open Authorization u OAuth es un protocolo de nivel industrial utilizado para la autorización. Permite que servicios de terceros intercambien su información sin que el usuario tenga que dar su contraseña. Esto es posible ya que utiliza tokens de autorización para probar una identidad entre los consumidores y los proveedores de servicios. OAuth2 es una actualización sobre OAuth e inculca más seguridad en sí mismo. Pero antes de avanzar, comprendamos el funcionamiento y el uso de OAuth en detalle.
Ejemplo –
Supongamos que tenemos un servicio ‘A’ y ‘B’. Un usuario U está utilizando los servicios ‘A’ y ‘B’ y, por lo tanto, puede comunicarse con ambos servicios. Ahora, si el servicio ‘A’ quiere acceder al contenido del servicio ‘B’, entonces necesitamos un tercero entrometido para autenticar que el servicio ‘A’ es seguro y puede acceder al servicio ‘B’. Esta intromisión la realiza el propio usuario.
Hablando desde el punto de vista del desarrollador, supongamos que estamos creando una aplicación X. Ya sabemos que un usuario utiliza una plataforma segura como Facebook, Instagram, Github, etc. Como tal, en lugar de crear nuestros propios servicios de inicio de sesión y de inicio de sesión, puede utilizar los servicios de Facebook para que el usuario inicie sesión en nuestra aplicación.
Cuando nuestra aplicación solicita el servidor de Facebook, el servidor devuelve una clave que utilizamos para verificar la autenticidad del usuario, cada vez que intenta iniciar sesión en nuestra plataforma. Toda la idea de OAuth se basa básicamente en el hecho de que la aplicación de terceros es segura y confiamos en nuestros servicios.
Cómo usar OAuth2 en el proyecto:
Ahora, Spring como marco proporciona la característica de OAuth al desarrollador a través de sus diversas dependencias de Maven y Gradle. Para usar OAuth2 en su proyecto, siga los pasos a continuación:-
- Cree un nuevo proyecto (Spring Starter) con spring web, dependencia de seguridad de spring y dependencia de configuración automática de oauth2.
- Dirígete a la clase predeterminada. Agregue la anotación @EnableOAuth2Sso . Esto nos permite Habilitar Oauth en nuestra aplicación.
- Ahora, cuando se realiza una llamada de OAuth, debemos decirle al Cliente (que es un servicio y aquí Github) que busque en algún lugar para saber qué aplicaciones se pueden usar para realizar las llamadas de OAuth. Como tal, configuramos nuestra “application. Propiedades” archivo a “aplicaciones.yml”.
- También necesitamos varios permisos de las aplicaciones para usar su seguridad en nuestra aplicación. Aquí como usamos Github, dirígete a esta página.
- Seleccione «Nueva aplicación OAuth» y luego se presenta la página «Registrar una nueva aplicación OAuth». Introduzca un nombre y una descripción de la aplicación. Luego, ingrese a la página de inicio de su aplicación, que debería ser http://localhost:8080, en este caso. Finalmente, indique la URL de devolución de llamada de Autorización, que es básicamente la URL de la ruta, en la que el usuario debe aterrizar después de autenticarse con GitHub.
- Ahora, la aplicación que hemos creado nos dará la identificación del cliente y el secreto del cliente. Copie estos campos.
- Ahora, regrese a su aplicación Spring y abra application.yml. Este archivo debe modificarse como se indica a continuación. Copie los datos en el archivo yml y estará listo para funcionar.
Veamos el siguiente application.yml de la siguiente manera.
Security: oauth2: client: clientId: your-id clientSecret: your-secret accessTokenUri: https://github.com/login/oauth/access_token userAuthorizationUri: https://github.com/login/oauth/authorize clientAuthenticationScheme: form resource: user-info-uri: https://api.github.com/user prefer-token-info: false
Descripciones del archivo application.yml:
- Toda la información emitida anteriormente es utilizada por la autorización de Github para identificar los detalles. Podemos cambiar «prefer-token-info» a verdadero si deseamos usarlo para cualquier otro propósito.
- CLIENAuthenticationScheme está configurado para formar aquí como en este mismo ejemplo, ya que Github utilizará un formulario para ingresar todos los detalles del usuario. Además, todos los detalles anteriores son para uso interno de Github, y no tenemos que preocuparnos por lo mismo.
Nota: dado que el archivo de aplicaciones es un archivo yml, el código debe estructurarse como se indica arriba.
Además, cuando ejecutamos nuestra aplicación anterior en localhost, mostraremos un texto para ver si nuestro OAuth funciona o no, por lo que creamos una API simple y agregamos:
Java
@SpringBootApplication @EnableOAuth2Sso @RestController // Main class name DemoApplication public class DemoApplication { // API @GetMapping("/") public String message(Principal principal) { return "hi "+principal.getName(); } public static void main(String[] args) { // DemoApplication is the default class. SpringApplication.run(DemoApplication.class, args); } }
Descripciones del programa:
- DemoApplication es la clase predeterminada.
- El objeto principal tomará los detalles del usuario y mostrará el nombre de usuario «hola» cuando la autenticación de Github se haya superado con éxito.
¡Ahora ejecute su aplicación Spring y abra localhost 8080 y vea cómo funciona la autenticación de GitHub usted mismo!.
Publicación traducida automáticamente
Artículo escrito por nbhatnagar400 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA