Démarrage rapide : connectez les utilisateurs et appelez 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.

Consultez Fonctionnement de l’exemple pour obtenir une illustration.

Prérequis

Pour exécuter cet exemple, vous avec besoin de ce qui suit :

Inscrire et télécharger votre application de démarrage rapide

Conseil

Les étapes décrites dans cet article peuvent varier légèrement en fonction du portail de départ.

Pour démarrer l’application de démarrage rapide, deux options s’offrent à vous : rapide (option 1) et manuelle (option 2).

Option 1 : Inscrire et configurer automatiquement l’application, puis télécharger l’exemple de code

  1. Accédez au centre d'administration Microsoft Entra – Expérience de démarrage rapide des inscriptions d'applications en tant qu'administrateur d'applications cloud au moins.
  2. Entrez un nom pour votre application, puis sélectionnez Inscrire.
  3. Suivez les instructions de l’expérience de démarrage rapide du portail pour télécharger le code d’application configuré automatiquement.

Option n°2 : Inscrire et configurer manuellement vos application et exemple de code

Étape 1 : Inscrivez votre application

Pour inscrire votre application et ajouter manuellement les informations d’inscription de l’application à celle-ci, effectuez les étapes suivantes :

  1. Connectez-vous au Centre d’administration de Microsoft Entra au minimum en tant qu’Administrateur d’application cloud.
  2. Si vous avez accès à plusieurs tenants, utilisez l’icône Paramètres dans le menu supérieur pour basculer vers le tenant dans lequel vous voulez inscrire l’application à partir du menu Répertoires + abonnements.
  3. Accédez à Identité>Applications>Inscriptions d’applications, puis sélectionnez Nouvelle inscription.
  4. Entrez un nom pour votre application, tel que java-webapp. Les utilisateurs de votre application peuvent voir ce nom. Vous pourrez le changer plus tard.
  5. Sélectionnez Inscription.
  6. Dans la page Vue d’ensemble, notez les valeurs ID d’application (client) et ID d’annuaire (locataire) . Vous aurez besoin de ces valeurs par la suite.
  7. Sous Gérer, sélectionnez Authentification.
  8. Sélectionnez Ajouter une plateforme>Web.
  9. Dans la section URI de redirection, entrez https://localhost:8443/msal4jsample/secure/aad.
  10. Sélectionnez Configurer.
  11. Dans la section Web, sous URI de redirection, entrez https://localhost:8443/msal4jsample/graph/me comme deuxième URI de redirection.
  12. Sous Gérer, sélectionnez Certificats et secrets. Dans la section Secrets client, sélectionnez Nouveau secret client.
  13. Tapez une description de clé (par exemple, un secret d’application), laissez l’expiration par défaut, puis sélectionnez Ajouter.
  14. Notez la Valeur de la clé secrète client. Vous en aurez besoin ultérieurement.

Étape 2 : Télécharger l’exemple de code

Téléchargez l’exemple de code.

Étape 3 : Configurer l’exemple de code

  1. Extrayez le fichier zip dans un dossier local.

  2. facultatif. Si vous utilisez un environnement de développement intégré, ouvrez l’exemple dans cet environnement.

  3. Ouvrez le fichier application.properties. Celui-ci se trouve dans le dossier src/main/resources/ . Remplacez les valeurs des champs aad.clientId, aad.authority et aad.secretKey par, respectivement, l’ID d’application, l’ID de locataire et le secret client. Voici à quoi le fichier 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 correspond à l’ID 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.
  1. Pour utiliser HTTPS avec localhost, indiquez 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
  1. Placez le fichier keystore généré dans le dossier resources.

É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 sur une solution de conteneur J2EE comme Apache Tomcat.
Exécution du projet à partir d’un IDE

Si vous exécutez 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.

  1. Dans la première page, sélectionnez le bouton Connexion pour rediriger les utilisateurs vers Microsoft Entra ID et les inviter à entrer leurs informations d’identification.

  2. Une fois les utilisateurs authentifiés, ils sont redirigés vers https://localhost:8443/msal4jsample/secure/aad. Ils sont désormais connectés, et la page affiche des informations sur le compte connecté. L’exemple d’interface utilisateur contient les boutons suivants :

    • Se déconnecter : déconnecte l’utilisateur actuel de l’application et le redirige vers la page d’accueil.
    • Afficher les infos sur l’utilisateur : acquiert un jeton pour Microsoft Graph et appelle Microsoft Graph avec une requête 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.

  1. 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);
        }
       }
      
  2. Le port HTTP de Tomcat par défaut 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 l’étiquette <connector>, puis remplacez le connecteur existant par celui-ci :

      <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"/>
      
  3. 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écutez mvn 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 /targets .
    • Renommez ce fichier msal4jsample.war.
    • Déployez le fichier WAR à l’aide de Tomcat ou de toute 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.
  4. 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 un secret client pour s’identifier en tant que client confidentiel. Le secret client étant ajouté en texte brut à vos fichiers projet, nous vous recommandons, pour des raisons de sécurité, 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 de certificat pour l’authentification d’application.

Informations complémentaires

Fonctionnement de l’exemple

Diagram that shows how the sample app generated by this quickstart works.

Obtenir MSAL

MSAL for Java (MSAL4J) est la bibliothèque Java utilisée pour connecter les utilisateurs et demander des jetons permettant d’accéder à une API protégée par la plateforme d’identités Microsoft.

Ajoutez MSAL4J à votre application en utilisant Maven ou Gradle pour gérer vos dépendances. Pour cela, apportez les modifications suivantes au fichier pom.xml (Maven) ou build.gradle (Gradle) de votre application.

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 for Java en ajoutant le code suivant au début du fichier où vous allez utiliser MSAL4J :

import com.microsoft.aad.msal4j.*;

Aide et support

Si vous avez besoin d’aide, si vous souhaitez signaler un problème ou si vous voulez en savoir plus sur vos options de support, consultez Aide et support pour les développeurs.

Étapes suivantes

Pour obtenir une présentation plus approfondie de la génération d’applications web qui connectent des utilisateurs à la plateforme d’identités Microsoft, consultez notre série de scénarios en plusieurs parties :