Compartir a través de


Agregar inicio de sesión con la cuenta de Microsoft Entra a una aplicación web de Spring

En este artículo se muestra cómo desarrollar una aplicación web de Spring que admita el inicio de sesión mediante cuenta de Microsoft Entra. Después de finalizar todos los pasos de este artículo, la aplicación web le redirigirá a la página de inicio de sesión de Microsoft Entra cuando se acceda de forma anónima. En la captura de pantalla siguiente se muestra la página de inicio de sesión de Microsoft Entra:

Captura de pantalla del cuadro de diálogo

Prerrequisitos

Los siguientes requisitos previos son necesarios para completar los pasos descritos en este artículo:

  • Un kit de desarrollo de Java (JDK) compatible. Para más información sobre los JDK disponibles para su uso al desarrollar en Azure, consulte compatibilidad con Java en Azure y Azure Stack.
  • apache Maven, versión 3.0 o posterior.
  • Una suscripción de Azure. Si no tiene una suscripción de Azure, cree una cuenta gratuita .

Importante

Se requiere Spring Boot versión 2.5 o posterior para completar los pasos descritos en este artículo.

Creación de una aplicación con Spring Initializr

  1. Explore en https://start.spring.io/.

  2. Especifique que desea generar un proyecto Maven con Java, e ingrese los nombres del Grupo y del Artefacto para su aplicación.

  3. Agregue Dependencias para Spring Web, Microsoft Entra ID y Cliente de OAuth2.

  4. En la parte inferior de la página, seleccione el botón GENERATE (Generar).

  5. Cuando se le solicite, descargue el proyecto en una ruta de acceso del equipo local.

Creación de una instancia de Microsoft Entra

Creación de la instancia de Active Directory

Si es el administrador de una instancia existente, puede omitir este proceso.

  1. Inicie sesión en https://portal.azure.com.

  2. Seleccione Todos los servicios, luego Identidad y luego Microsoft Entra ID.

  3. Introduzca el nombre de la organización y su nombre de dominio inicial . Copie la dirección URL completa del directorio. Usará la dirección URL para agregar cuentas de usuario más adelante en este tutorial. (Por ejemplo: azuresampledirectory.onmicrosoft.com).

    Copie la dirección URL completa del directorio. Usará la dirección URL para agregar cuentas de usuario más adelante en este tutorial. (Por ejemplo: azuresampledirectory.onmicrosoft.com.).

    Cuando haya terminado, seleccione Crear. Tardará unos minutos en crear el nuevo recurso.

  4. Cuando haya finalizado, seleccione el vínculo mostrado para acceder al nuevo directorio.

  5. Copie el Id. de inquilino. Usará el valor de ID para configurar su archivo application.properties más adelante en este tutorial.

Añade un registro de aplicación para tu aplicación de Spring Boot

  1. En el menú del portal, seleccione Registros de aplicacionesy, a continuación, seleccione Registrar una aplicación.

  2. Especifique la aplicación y, a continuación, seleccione Registrar.

  3. Cuando aparezca la página del registro de la aplicación, copie el ID de aplicación (cliente) y el ID de directorio (inquilino) . Usará estos valores para configurar el archivo application.properties más adelante en este tutorial.

  4. Seleccione Certificados y secretos en el panel de navegación. A continuación, seleccione Nuevo secreto de cliente.

    Captura de pantalla de la pantalla

  5. Agregue una Descripción y seleccione la duración en la lista Expiración. Seleccione Agregar. El valor de la clave se rellenará automáticamente.

  6. Copie y guarde el valor del secreto de cliente para configurar el archivo application.properties de más adelante en este tutorial. (No podrá recuperar este valor más adelante).

    Captura de pantalla de la aplicación con el nuevo secreto de cliente resaltado.

  7. En la página principal del registro de la aplicación, seleccione Autenticación y seleccione Agregar una plataforma. Después, seleccione Aplicaciones web.

  8. Para una nueva URI de redireccionamiento, introduzca http://localhost:8080/login/oauth2/code/ y, a continuación, seleccione Configurar.

  9. Si ha modificado el archivo pom.xml para usar una versión de inicio de Microsoft Entra anterior a la 3.0.0, en Flujos de concesión implícita e híbridos, seleccione Tokens de identificador (usados para los flujos implícitos e híbridos) y, a continuación, seleccione Guardar.

Agregue una cuenta de usuario al directorio y agréguela a una appRole.

  1. En la página Información general de Active Directory, seleccione Usuarios y, a continuación, seleccione Nuevo usuario.

  2. Cuando se muestre el panel de usuario , escriba el nombre de usuario y el nombre . A continuación, seleccione Crear.

    Captura de pantalla del cuadro de diálogo

    Nota

    Debe especificar la dirección URL del directorio anterior en este tutorial al escribir el nombre de usuario. Por ejemplo:

    test-user@azuresampledirectory.onmicrosoft.com

  3. En la página principal del registro de la aplicación, seleccione Roles de aplicacióny, a continuación, seleccione Crear rol de aplicación. Proporcione valores para los campos del formulario, seleccione ¿Desea habilitar este rol de aplicación?, seleccione Aplicar.

    Captura de pantalla de la pantalla

  4. En la página Visión general de su directorio de Microsoft Entra, seleccione Aplicaciones empresariales.

  5. Seleccione Todas las aplicacionesy, a continuación, seleccione la aplicación a la que agregó el rol de aplicación en un paso anterior.

  6. Seleccione Usuarios y grupos, y después, seleccione Agregar usuario/grupo.

  7. En Usuarios, seleccione Ninguno seleccionado. Seleccione el usuario que creó anteriormente, seleccione Seleccionary, después, seleccione Asignar. Si creó más de un rol de aplicación anteriormente, seleccione un rol.

  8. Vuelva al panel de usuarios de , seleccione el usuario de prueba, seleccione Restablecer contraseña, y copie la contraseña. Usará la contraseña al iniciar sesión en la aplicación más adelante en este tutorial.

Configuración y compilación de la aplicación

  1. Extraiga los archivos del archivo del proyecto que creó y descargó anteriormente en este tutorial en un directorio.

  2. Vaya a la carpeta src/main/resources del proyecto y, a continuación, abra el archivo application.properties en un editor de texto.

  3. Especifique la configuración del registro de la aplicación con los valores que creó anteriormente. Por ejemplo:

    # Enable related features.
    spring.cloud.azure.active-directory.enabled=true
    # Specifies your Active Directory ID:
    spring.cloud.azure.active-directory.profile.tenant-id=<tenant-ID>
    # Specifies your App Registration's Application ID:
    spring.cloud.azure.active-directory.credential.client-id=<client-ID>
    # Specifies your App Registration's secret key:
    spring.cloud.azure.active-directory.credential.client-secret=<client-secret>
    

    Dónde:

    Parámetro Descripción
    spring.cloud.azure.active-directory.enabled Habilitación de las características proporcionadas por spring-cloud-azure-starter-active-directory
    spring.cloud.azure.active-directory.profile.tenant-id Contiene su Id. de directorio de Active Directory obtenido anteriormente.
    spring.cloud.azure.active-directory.credential.client-id Contiene el Id. de aplicación del registro de aplicaciones que completó anteriormente.
    spring.cloud.azure.active-directory.credential.client-secret Contiene el Valor de la clave del registro de aplicaciones que completó anteriormente.
  4. Guarde y cierre el archivo application.properties.

  5. Cree una carpeta denominada controlador en la carpeta de origen de Java para la aplicación. Por ejemplo: src/main/java/com/wingtiptoys/security/controller.

  6. Cree un nuevo archivo java denominado HelloController.java en la carpeta controlador de y ábralo en un editor de texto.

  7. Escriba el código siguiente y guarde y cierre el archivo:

    package com.wingtiptoys.security;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.security.access.prepost.PreAuthorize;
    
    @RestController
    public class HelloController {
         @GetMapping("Admin")
         @ResponseBody
         @PreAuthorize("hasAuthority('APPROLE_Admin')")
         public String Admin() {
             return "Admin message";
         }
    }
    

Compilación y prueba de la aplicación

  1. Abra un símbolo del sistema y cambie el directorio a la carpeta donde se encuentra el archivo pom.xml de su aplicación.

  2. Compile la aplicación de Spring Boot con Maven y ejecútelo. Por ejemplo:

    mvn clean package
    mvn spring-boot:run
    
  3. Una vez que Maven compila e inicia la aplicación, abra http://localhost:8080/Admin en un explorador web. Se le pedirá un nombre de usuario y una contraseña.

    Captura de pantalla del cuadro de diálogo

    Nota

    Es posible que se le pida que cambie la contraseña si se trata del primer inicio de sesión de una nueva cuenta de usuario.

    Captura de pantalla del cuadro de diálogo

  4. Una vez que haya iniciado sesión correctamente, debería ver el texto de ejemplo "Mensaje de administrador" del controlador.

    Captura de pantalla del mensaje de administrador de la aplicación.

Resumen

En este tutorial, creó una nueva aplicación web de Java con Microsoft Entra Starter, configuró un nuevo inquilino de Microsoft Entra, registró una nueva aplicación en el inquilino y, a continuación, configuró la aplicación para usar las anotaciones y clases de Spring para proteger la aplicación web.

Consulte también

Pasos siguientes

Para más información sobre Spring y Azure, continúe con el Centro de documentación de Spring en Azure.