Inicio rápido: Inicio de sesión de usuarios y llamada a Microsoft Graph API desde una aplicación web de Java
En este inicio rápido, descargará y ejecutará un ejemplo de código que muestra cómo una aplicación web de Java puede iniciar sesión a los usuarios y llamar a Microsoft Graph API. Los usuarios de cualquier organización de Microsoft Entra pueden iniciar sesión en la aplicación.
Consulte Cómo funciona el ejemplo para obtener una ilustración.
Prerrequisitos
Para ejecutar este ejemplo, necesita:
- Kit de desarrollo de Java (JDK) 8 o superior.
- Maven.
Registro y descarga de la aplicación de inicio rápido
Hay dos maneras de iniciar la aplicación de inicio rápido: express (opción 1) y manual (opción 2).
Opción 1: Registrar y configurar automáticamente la aplicación y, a continuación, descargar el ejemplo de código
- Vaya a la experiencia de inicio rápido Centro de administración de Microsoft Entra: Registros de aplicaciones como administrador de aplicaciones en la nube como mínimo.
- Escriba un nombre para su aplicación y seleccione Registre.
- Siga las instrucciones de la experiencia de inicio rápido del portal para descargar el código de aplicación configurado automáticamente.
Opción 2: Registrar y configurar manualmente la aplicación y el ejemplo de código
Paso 1: Registrar la aplicación
Para registrar la aplicación y agregar manualmente la información de registro de la aplicación, siga estos pasos:
- Inicie sesión en el centro de administración de Microsoft Entra como al menos un administrador de aplicaciones en la nube.
- Si tiene acceso a varios inquilinos, use el icono Configuración
del menú superior para cambiar al inquilino en el que desea registrar la aplicación desde el menú Directorios y suscripciones.
- Vaya a Identidad>Aplicaciones>Registros de aplicaciones y seleccione Nuevo registro.
- Escriba el nombre de la aplicación, por ejemplo, java-webapp. Es posible que los usuarios de la aplicación vean este nombre. Puede cambiarlo más adelante.
- Seleccione Registrar.
- En la página Información general, anote los valores de Id. de aplicación (cliente) e Id. de directorio (inquilino) . Necesitará estos valores más adelante.
- En Administrar, seleccione Autenticación.
- Seleccione Agregar una plataforma>Web.
- En la sección URI de redirección, escriba
https://localhost:8443/msal4jsample/secure/aad
. - Seleccione Configurar.
- En la sección Web, en URI de redirección, escriba
https://localhost:8443/msal4jsample/graph/me
como un segundo identificador URI de redirección. - En Administrar, seleccione Certificados y secretos. En la sección Secretos de cliente, seleccione Nuevo secreto de cliente.
- Escriba una descripción de clave (por ejemplo, secreto de aplicación), deje la expiración predeterminada y seleccione Agregar.
- Anote el valor del secreto de cliente. Lo necesitarás más tarde.
Paso 2: Descargar el ejemplo de código
Descargar el ejemplo de código
Paso 3: Configurar el ejemplo de código
Extraiga el archivo ZIP en una carpeta local.
Opcional. Si usa un entorno de desarrollo integrado, abra el ejemplo en ese entorno.
Abra el archivo application.properties. Puede encontrarlo en la carpeta src/main/resources/. Reemplace los valores de los campos
aad.clientId
,aad.authority
yaad.secretKey
por el identificador de aplicación, el identificador de inquilino y los valores de secreto de cliente, respectivamente. Este es el aspecto que debe tener:aad.clientId=Enter_the_Application_Id_here aad.authority=https://login.microsoftonline.com/Enter_the_Tenant_Info_Here/ aad.secretKey=Enter_the_Client_Secret_Here aad.redirectUriSignin=https://localhost:8443/msal4jsample/secure/aad aad.redirectUriGraph=https://localhost:8443/msal4jsample/graph/me aad.msGraphEndpointHost="https://graph.microsoft.com/"
En el código anterior:
Enter_the_Application_Id_here
es el identificador de aplicación de la aplicación que registró.Enter_the_Client_Secret_Here
: es el valor de Secreto de cliente que creó en Certificados y secretos para la aplicación registrada.Enter_the_Tenant_Info_Here
: es el valor de Id. de directorio (inquilino) de la aplicación que registró.
- Para usar HTTPS con localhost, proporcione las propiedades
server.ssl.key
. Para generar un certificado autofirmado, use la utilidad keytool (incluida en JRE).
Este es un ejemplo:
keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=testCert
- Coloque el archivo de almacén de claves generado en la carpeta recursos.
Paso 4: Ejecución del ejemplo de código
Para ejecutar el proyecto, siga uno de estos pasos:
- Ejecútelo directamente desde el IDE mediante el servidor de Spring Boot insertado.
- Empaquetelo en un archivo WAR mediante maveny, a continuación, impleméntelo en una solución de contenedor J2EE como Apache Tomcat.
Ejecución del proyecto desde un IDE
Para ejecutar la aplicación web desde un IDE, seleccione Ejecutar y, a continuación, vaya a la página principal del proyecto. Para este ejemplo, la dirección URL de la página principal estándar es https://localhost:8443.
En la página principal, seleccione el botón inicio de sesión de para redirigir a los usuarios a Microsoft Entra ID y solicitarles las credenciales.
Una vez autenticados los usuarios, se le redirigirá a
https://localhost:8443/msal4jsample/secure/aad
. Ahora han iniciado sesión y la página mostrará información sobre la cuenta de usuario. La interfaz de usuario de ejemplo tiene estos botones:- Cierre de Sesión: cierra la sesión del usuario actual de la aplicación y redirige al usuario a la página principal.
- Mostrar información de usuario: adquiere un token para Microsoft Graph y llama a Microsoft Graph con una solicitud que contiene el token, que devuelve información básica sobre el usuario que ha iniciado sesión.
Ejecución del proyecto desde Tomcat
Si desea implementar el ejemplo web en Tomcat, realice un par de cambios en el código fuente.
Abra ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.
Elimine todo el código fuente y reemplácelo por este código:
package com.microsoft.azure.msalwebsample; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class MsalWebSampleApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(MsalWebSampleApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MsalWebSampleApplication.class); } }
El puerto HTTP predeterminado de Tomcat es 8080, pero necesita una conexión HTTPS a través del puerto 8443. Para configurar esta opción:
Vaya a tomcat/conf/server.xml.
Busque la etiqueta
<connector>
y reemplace el conector existente por este conector:<Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile="C:/Path/To/Keystore/File/keystore.p12" keystorePass="KeystorePassword" clientAuth="false" sslProtocol="TLS"/>
Abra una ventana de símbolo del sistema. Vaya a la carpeta raíz de este ejemplo (donde se encuentra el archivo
pom.xml
) y ejecutemvn package
para compilar el proyecto.- Este comando generará un archivo
msal-web-sample-0.1.0.war
en el directorio/targets
. - Cambie el nombre de este archivo a
msal4jsample.war
. - Implemente el archivo WAR mediante Tomcat o cualquier otra solución de contenedor J2EE.
- Para implementar el archivo
msal4jsample.war
, cópielo en el directorio/webapps/
en la instalación de Tomcat y, a continuación, inicie el servidor de Tomcat.
- Para implementar el archivo
- Este comando generará un archivo
Una vez implementado el archivo, vaya a
https://localhost:8443/msal4jsample
mediante un explorador.
Importante
Esta aplicación de inicio rápido usa un secreto de cliente para identificarse como un cliente confidencial. Dado que el secreto de cliente se agrega como texto sin formato a los archivos del proyecto, por motivos de seguridad se recomienda usar un certificado en lugar de un secreto de cliente antes de usar la aplicación en un entorno de producción. Para obtener más información sobre cómo usar un certificado, consulte Credenciales de certificado para la autenticación de aplicaciones.
Más información
Funcionamiento del ejemplo
Obtención de MSAL
MSAL para Java (MSAL4J) es la biblioteca de Java que se usa para iniciar sesión a los usuarios y solicitar tokens que se usan para acceder a una API protegida por la plataforma de identidad de Microsoft.
Agregue MSAL4J a la aplicación mediante Maven o Gradle para administrar las dependencias realizando los siguientes cambios en el archivo pom.xml de la aplicación (Maven) o build.gradle (Gradle).
En pom.xml:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.0.0</version>
</dependency>
En build.gradle:
compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'
Inicializar MSAL
Agregue una referencia a MSAL para Java agregando el código siguiente al principio del archivo donde va a usar MSAL4J:
import com.microsoft.aad.msal4j.*;
Ayuda y soporte técnico
Si necesita ayuda, quiere notificar un problema o desea obtener información sobre las opciones de soporte técnico, consulte Ayuda y soporte técnico para desarrolladores.
Pasos siguientes
Para obtener una explicación más detallada de la creación de aplicaciones web que inician sesión de usuarios en la plataforma de identidad de Microsoft, consulte la serie de escenarios de varias partes: