Skip to content

saguit03/oauth-demo

Repository files navigation

OAuth Demo Paso a Paso

Arquitecturas Orientadas a Servicios

Grado en Ingeniería Informática en Ingeniería del Software

Curso 2024-2025

Estudiantes

  • Pablo Fernández González
  • Sara Guillén Torrado

Material entregado

Requisitos del proyecto

  • Java 17
  • Spring Boot
  • Maven
  • Postman

Dado que se han utilizado estas tecnologías a lo largo de la asignatura Arquitecturas Orientadas a Servicios, no se considera necesario explicar su instalación.

Overview del flujo

Es recomendable leer la documentación entregada, ya que se detallan los procesos con mayor claridad.

Paso 0. Crear los proyectos

Descargarlo de GitHub: https://github.com/saguit03/oauth-demo

git clone https://github.com/saguit03/oauth-demo

O... acceder a Spring Boot Initializr: https://start.spring.io/index.html

Project: Maven Language: Java Spring Boot: 3.4.0 Group: es.unex.aos Artifact: {servidor/recursos/cliente} Description: {Cualquiera} Packaging: Jar Java: 17 Dependencies:

  • Spring Web
  • Spring Boot DevTools
  • Spring Security
  • OAuth2 Resource Server (Solo para el servidor de recursos)
  • OAuth2 Client (Solo para el cliente)
  • OAuth Authorization Server (Solo para el servidor de autorización)

Paso 1. Servidor de autorización

https://docs.spring.io/spring-authorization-server/reference/getting-started.html#defining-required-components

Leer 1-AUTORIZACION.md

Probar que funcione el servidor

  1. Acceder a https://oauthdebugger.com/ e introducir los siguientes datos

Authorize URI: http://localhost:9000/oauth2/authorize Redirect URI: https://oauthdebugger.com/debug Client ID: oidc-client Scope: profile Response type: code

The authorization server will respond with a code, which the client can exchange for tokens on a secure channel. This flow should be used when the application code runs on a secure server (common for MVC and server-rendered pages apps).

  1. Enviar la petición
  2. En Postman, realizar una petición POST a http://localhost:9000/oauth2/token
  • Completar Authorization:
    • Basic Auth
    • Datos del cliente registrados en el paso 1
  • Body
  1. Comprobar el token en jwt.io

Paso 2. Servidor de recursos

https://docs.spring.io/spring-security/reference/servlet/oauth2/resource-server/jwt.html

Leer 2-RECURSOS.md

Probar conexión entre ambos servidores

Pasos 1-4 igual que al probar el servidor de autorización.

  1. Crear una nueva petición en Postman a la dirección: http://localhost:8081/resources/user
  • Auth Type: Bearer token
  • Introducir el JWT obtenido del servidor de autorización

Paso 3. Crear un cliente de ejemplo

Leer 3-CLIENTE.md y 4-CLIENTE-AUTORIZACION.md

Probar el cliente

  1. Acceder a http://localhost:8080
  2. Iniciar sesión con los datos de usuario
  3. Copiar el token devuelto
  4. En Postman, realizar una petición POST a http://localhost:9000/oauth2/token
  • Completar Authorization:
    • Basic Auth
    • Datos del cliente registrados en 4-CLIENTE-AUTORIZACION.md
  • Body
  1. Comprobar el token en jwt.io
  2. Crear una nueva petición en Postman a la dirección: http://localhost:8081/resources/user
  • Auth Type: Bearer token
  • Introducir el JWT obtenido del servidor de autorización en el paso 4.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages