Démarrage rapide : Connecter des utilisateurs et appeler l’API Microsoft Graph à partir d’une application web Java
Dans ce guide de démarrage rapide, vous téléchargez et exécutez un exemple de code qui montre comment une application web Java peut connecter des utilisateurs et appeler l’API Microsoft Graph. Les utilisateurs de n’importe quelle organisation Microsoft Entra peuvent se connecter à l’application.
Voir Comment fonctionne l'exemple pour une illustration.
Conditions préalables
Pour exécuter cet exemple, vous avez besoin des éléments suivants :
- Kit de développement Java (JDK) 8 ou version ultérieure.
- Maven.
Inscrire et télécharger votre application de démarrage rapide
Il existe deux façons de démarrer votre application de démarrage rapide : express (option 1) et manuelle (option 2).
Option 1 : Inscrire et configurer automatiquement votre application, puis télécharger l’exemple de code
- Accédez au Centre d’administration Microsoft Entra : expérience de démarrage rapide des inscriptions d’applications en tant qu'administrateur d’application Cloud.
- Entrez un nom pour votre application, puis sélectionnez Inscrire.
- Suivez les instructions de l’expérience de démarrage rapide du portail pour télécharger le code d’application configuré automatiquement.
Option 2 : Inscrire et configurer manuellement votre application et exemple de code
Étape 1 : Inscrire votre application
Pour inscrire votre application et y ajouter manuellement les informations d’inscription de l’application, procédez comme suit :
- Connectez-vous au centre d’administration Microsoft Entra en tant qu’au moins un Administrateur d'Application Cloud .
- Si vous avez accès à plusieurs locataires, utilisez l’icône Paramètres
dans le menu supérieur pour basculer vers le locataire dans lequel vous souhaitez inscrire l’application à partir du menu Répertoires + abonnements.
- Accédez à Identité>Applications>Enregistrements d’applications, puis sélectionnez Nouvelle inscription.
- Entrez un nom pour votre application, par exemple java-webapp. Les utilisateurs de votre application peuvent voir ce nom. Vous pouvez le modifier ultérieurement.
- Sélectionnez Inscription.
- Dans la page Vue d’ensemble, notez les valeurs ID d’application (client) et ID d’annuaire (locataire). Vous aurez besoin de ces valeurs ultérieurement.
- Sous Gérer, sélectionnez Authentification.
- Sélectionnez Ajouter une plateforme>Web.
- Dans la section URI de redirection, entrez
https://localhost:8443/msal4jsample/secure/aad
. - Sélectionnez Configurer.
- Dans la section Web, sous URI de redirection, entrez
https://localhost:8443/msal4jsample/graph/me
comme deuxième URI de redirection. - Sous Gérer, sélectionnez Certificats et secrets. Dans la section secrets client, sélectionnez nouveau secret client.
- Entrez une description de clé (par exemple, secret d’application), laissez l’expiration par défaut, puis sélectionnez Ajouter.
- Notez la Valeur de la clé secrète client. Vous en aurez besoin plus tard.
Étape 2 : Télécharger l’exemple de code
Étape 3 : Configurer l’exemple de code
Extrayez le fichier zip dans un dossier local.
Optionnel. Si vous utilisez un environnement de développement intégré, ouvrez l’exemple dans cet environnement.
Ouvrez le fichier application.properties. Vous pouvez le trouver dans le dossier src/main/resources/. Remplacez les valeurs dans les champs
aad.clientId
,aad.authority
etaad.secretKey
par l’ID d’application, l’ID de locataire et les valeurs de clé secrète client, respectivement. Voici ce à quoi il doit ressembler :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/"
Dans le code précédent :
Enter_the_Application_Id_here
est l’ID d’application de l’application que vous avez inscrite.Enter_the_Client_Secret_Here
correspond au secret client que vous avez créé dans Certificats et secrets pour l’application que vous avez inscrite.Enter_the_Tenant_Info_Here
correspond à la valeur ID de l’annuaire (locataire) de l’application que vous avez inscrite.
- Pour utiliser HTTPS avec localhost, fournissez les propriétés
server.ssl.key
. Pour générer un certificat auto-signé, utilisez l’utilitaire keytool (inclus dans JRE).
Voici un exemple :
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
- Placez le fichier de keystore généré dans le dossier ressources .
Étape 4 : Exécuter l’exemple de code
Pour exécuter le projet, effectuez l’une des étapes suivantes :
- Exécutez-le directement à partir de votre IDE à l’aide du serveur Spring Boot incorporé.
- Empaquetez-le dans un fichier WAR à l’aide de Maven, puis déployez-le dans une solution de conteneur J2EE comme Apache Tomcat.
Exécution du projet à partir d’un IDE
Pour exécuter l’application web à partir d’un IDE, sélectionnez Exécuter, puis accédez à la page d’accueil du projet. Pour cet exemple, l’URL de la page d’accueil standard est https://localhost:8443.
Dans la page d’accueil, sélectionnez le bouton Connexion pour rediriger les utilisateurs vers l’ID Microsoft Entra et les inviter à entrer des informations d’identification.
Une fois les utilisateurs authentifiés, ils sont redirigés vers
https://localhost:8443/msal4jsample/secure/aad
. Ils sont maintenant connectés et la page affiche des informations sur le compte d’utilisateur. L’exemple d’interface utilisateur comporte ces boutons :- Déconnectez: Déconnectez l'utilisateur actuel de l'application et redirigez cet utilisateur vers la page d'accueil.
- Afficher les informations utilisateur: acquiert un jeton pour Microsoft Graph et appelle Microsoft Graph avec une demande contenant le jeton, qui retourne des informations de base sur l’utilisateur connecté.
Exécution du projet à partir de Tomcat
Si vous souhaitez déployer l’exemple web sur Tomcat, apportez quelques modifications au code source.
Ouvrez ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplication.
Supprimez tout le code source et remplacez-le par ce code :
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); } }
Le port HTTP par défaut de Tomcat est 8080, mais vous avez besoin d’une connexion HTTPS sur le port 8443. Pour configurer ce paramètre :
Accédez à tomcat/conf/server.xml.
Recherchez la balise
<connector>
et remplacez le connecteur existant par ce connecteur :<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"/>
Ouvrez une fenêtre d’invite de commandes. Accédez au dossier racine de cet exemple (où se trouve le fichier
pom.xml
), puis exécutezmvn package
pour générer le projet.- Cette commande génère un fichier
msal-web-sample-0.1.0.war
dans votre répertoire de/targets
. - Renommez ce fichier en
msal4jsample.war
. - Déployez le fichier WAR à l’aide de Tomcat ou d’une autre solution de conteneur J2EE.
- Pour déployer le fichier
msal4jsample.war
, copiez-le dans le répertoire/webapps/
de votre installation Tomcat, puis démarrez le serveur Tomcat.
- Pour déployer le fichier
- Cette commande génère un fichier
Une fois le fichier déployé, accédez à
https://localhost:8443/msal4jsample
à l’aide d’un navigateur.
Important
Cette application de démarrage rapide utilise une clé secrète client pour s’identifier en tant que client confidentiel. Étant donné que la clé secrète client est ajoutée en texte brut à vos fichiers projet, pour des raisons de sécurité, nous vous recommandons d’utiliser un certificat au lieu d’un secret client avant d’utiliser l’application dans un environnement de production. Pour plus d’informations sur l’utilisation d’un certificat, consultez Informations d’identification du certificat pour l’authentification d’application.
Plus d’informations
Fonctionnement de l’exemple
Obtenir MSAL
MSAL pour Java (MSAL4J) est la bibliothèque Java utilisée pour connecter des utilisateurs et demander des jetons utilisés pour accéder à une API protégée par la plateforme d’identités Microsoft.
Ajoutez MSAL4J à votre application à l’aide de Maven ou Gradle pour gérer vos dépendances en apportant les modifications suivantes au fichier pom.xml (Maven) ou build.gradle (Gradle).
Dans pom.xml:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>msal4j</artifactId>
<version>1.0.0</version>
</dependency>
Dans build.gradle :
compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'
Initialiser MSAL
Ajoutez une référence à MSAL pour Java en ajoutant le code suivant au début du fichier dans lequel vous utiliserez MSAL4J :
import com.microsoft.aad.msal4j.*;
Aide et support
Si vous avez besoin d’aide, souhaitez signaler un problème ou pour en savoir plus sur vos options de support, consultez Aide et support pour les développeurs.
Étapes suivantes
Pour une discussion plus approfondie sur la création d’applications web qui connectent les utilisateurs sur la plateforme d’identités Microsoft, consultez la série de scénarios à plusieurs parties :