Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
General
Quand le nœud MSAL est-il utilisé ?
MSAL Node prend en charge l’authentification basée sur le serveur pour les applications publiques/confidentielles. Cela s’applique davantage aux scénarios d’authentification basés sur le serveur/API web qui ont besoin d’authentification. Vous trouverez ici une liste complète des scénarios pris en charge et les flux pris en charge sont répertoriés ici
Quel est l’état du nœud ADAL ? Un guide de migration est-il disponible ?
Le nœud ADAL est actuellement en maintanence et nous conseillons à tous les utilisateurs de passer à MSAL Node. MsAL Node est conçu pour remplacer complètement le nœud ADAL. Pour ceux qui cherchent à migrer d’ADAL vers MSAL, nous avons fourni un document de migration pour faciliter la migration. Notez que toutes les applications peuvent ne pas avoir de migration fluide, car il s’agit d’une révision complète de l’ancienne fonctionnalité.
Quels sont les services pris en charge ?
MSAL Node prend en charge Microsoft Entra ID, MSA, ADFS et B2C. Nos exemples illustrent l’utilisation ici. MSAL Node prend également en charge les applications monolocataires et multilocataires.
Remarque : ADFS est actuellement pris en charge, un exemple autonome n’est pas encore publié. Veuillez consulter cet espace pour une mise à jour prochainement.
Qu’est-ce qu’une application publique ou une application confidentielle ? Que dois-je savoir lors de l’inscription de l’application ?
Trouvez-le dans les concepts de base de MSAL
Quelle est la chaîne d’autorité par défaut si je fournisse « authority » et « azureCloudOptions » ?
Si le développeur fournit azureCloudOptions, MSAL.js remplacera toute valeur fournie dans le authority. MSAL.js accordera également la priorité aux paramètres fournis dans un request plutôt que dans un configuration. Veuillez noter que si azureCloudOptions sont définis dans la configuration, ils prévaudront sur authority dans le request. Si le développeur doit remplacer cette valeur, il doit définir azureCloudOptions dans le request.
Quelles seront les durées de vie des jetons ?
- Microsoft Entra : Veuillez trouver la dernière référence pour Microsoft Entra ici. Notez que quelques-unes des fonctionnalités configurables pour des types de jetons spécifiques sont supprimées récemment.
- B2C : Veuillez consulter les recommandations relatives à la durée de vie des jetons B2C ici
Comment obtenir le jeton d’actualisation ?
MSAL Node n’expose pas les jetons d’actualisation pour des raisons de sécurité. Au lieu de cela, nous gérons le jeton d’actualisation via le cache et le mettons à jour en fonction des besoins pour récupérer le jeton d’ID et le jeton d’accès correspondants pour le développeur. Utilisez l’API appropriée acquireToken* pour obtenir des jetons d’accès, et MSAL s’assure qu’ils sont renouvelés si nécessaire. Si vous avez un jeton d’actualisation acquis par d’autres moyens, vous pouvez utiliser l’API acquireTokenByRefreshToken (voir également : Exemple de jeton d’actualisation). Vous trouverez plus d’informations sur les jetons Microsoft Entra ici
Electron est-il pris en charge ?
Yes. Reportez-vous aux exemples MSAL Node.
Le flux interactif est-il pris en charge ?
Yes. MSAL Node fournit l’API acquireTokenInteractive() sur PublicClientApplication laquelle gère les deux jambes du flux de code d’autorisation. Il ouvre une fenêtre de navigateur pour que l’utilisateur se connecte et retourne un AuthenticationResult. Pour plus d’informations, consultez la documentation sur les demandes d’acquisition de jeton pour plus de détails, ainsi que l’exemple auth-code-cli-app pour un exemple d’implémentation.
Les spAs sont-elles prises en charge par MSAL Node ?
Reportez-vous au navigateur MSAL pour les cas d’usage basés sur SPA. MsAL Node doit être un choix pour les applications de bureau, les applications web, les API web ou les scénarios d’authentification côté serveur.
Qu’est-ce que les extensions MSAL Node ? Qu’est-ce qu’un plug-in de cache ?
Les extensions MSAL Node sont une bibliothèque de support destinée à MSAL Node, qui fournit aux applications clientes des mécanismes sécurisés pour assurer la sérialisation et la persistance multiplateformes du cache de jetons. Trouvez l’utilisation, les exemples et plus d’informations ici
Le plug-in de cache fourni dans les extensions MSAL Node peut-il être utilisé dans les applications Electron ?
Oui, il peut. Si vous rencontrez des problèmes liés à la version du nœud, reportez-vous à cette note qui fournit les étapes à suivre pour résoudre les problèmes.
Quelles sont les versions de Node.js prises en charge ? Comment contourner l’erreur d’installation si je souhaite utiliser une version de développement active Node.js ?
MSAL Node prend officiellement en charge les versions LTS stables numérotées comme indiqué ici.
Si vous souhaitez contourner ce problème, veuillez noter :
-
Yarn : transmettez l'indicateur
--ignore-enginesà la commandeyarn. -
npm : Ajouter
engine-strict=falseà votre fichier .npmrc.
Important
MSAL Node v5 nécessite Node.js 20 ou version ultérieure. Node.js 16 et 18 ne sont plus pris en charge.
Comment implémenter l’inscription en libre-service avec MSAL Node ?
MSAL Node prend en charge l’inscription en libre-service dans le flux de code d’authentification. Consultez notre documentation ici pour connaître les valeurs du paramètre prompt prises en charge dans la requête et leurs résultats attendus, et ici pour un aperçu de l’inscription en libre-service et des modifications de configuration à apporter à votre tenant Azure. Notez que l’inscription en libre-service n’est pas disponible dans les environnements B2C et de test.
Pourquoi mon application ne fonctionne-t-elle pas correctement quand elle s’exécute derrière un proxy ?
À partir de MSAL Node v5, la configuration du proxy est gérée via un client HTTP personnalisé. Implémentez votre propre client réseau en instanciant un INetworkModule avec prise en charge du proxy et en le fournissant comme networkClientoptions de configuration système. Consultez l’exemple INetworkModule personnalisé pour obtenir un exemple.
Comment implémenter un agent http(s) personnalisé dans MSAL Node ?
À compter de MSAL Node v5, le customAgentOptions paramètre a été supprimé. Pour utiliser un agent HTTP(S) personnalisé, implémentez votre propre client réseau en instanciant un INetworkModule et en configurant l’agent dans celui-ci. Fournissez le client réseau personnalisé en tant que networkClient dans les options de configuration du système. Consultez l’exemple INetworkModule personnalisé pour obtenir un exemple.
Business to Consumer (B2C)
Comment gérer le flux utilisateur de réinitialisation de mot de passe ?
La nouvelle expérience de réinitialisation de mot de passe fait désormais partie de la stratégie d’inscription ou de connexion. Quand l’utilisateur sélectionne le lien Vous avez oublié votre mot de passe ? , il est immédiatement dirigé vers l’expérience Mot de passe oublié.
Notre recommandation est de passer à la nouvelle expérience de réinitialisation du mot de passe, car elle simplifie la gestion de l’état de l’application et réduit les erreurs à gérer côté utilisateur. Si, pour une raison quelconque, vous devez utiliser le flux utilisateur de réinitialisation de mot de passe hérité, vous devez gérer le code d’erreur retourné par le AADB2C90118 service B2C lorsqu’un utilisateur sélectionne le lien Oublié votre mot de passe ? Pour voir comment procéder, reportez-vous à l’exemple : exemple d’application web MSAL Node B2C (à l’aide du code d’authentification)
Compatibility
Puis-je utiliser MSAL Node avec Microsoft Graph Kit de développement logiciel (SDK) JavaScript ?
Oui, MSAL Node peut être utilisé comme fournisseur d’authentification personnalisé pour le sdk JavaScript Microsoft Graph. Pour une implémentation, reportez-vous à l’exemple : Express Web App appelant API Graph.
Puis-je provisionner des applications MSAL Node via la ligne de commande ?
Oui, nous vous recommandons le nouveau Kit de développement logiciel (SDK) PowerShell Graph pour ce faire. Par exemple, le script ci-dessous crée une application Microsoft Entra avec un URI de redirection personnalisé de type Applications mobiles et bureau (aka InstalledClient) et autorisation User.Read pour Microsoft Graph dans un locataire spécifié par l’utilisateur, puis provisionne un principal de service dans le même locataire en fonction de cet objet d’application :
Import-Module Microsoft.Graph.Applications
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Connect-MgGraph -TenantId "ENTER_TENANT_ID_HERE" -Scopes "Application.ReadWrite.All"
# User.Read delegated permission for Microsoft Graph
$mgUserReadScope = @{
"Id" = "e1fe6dd8-ba31-4d61-89e7-88639da4683d" # permission Id
"Type" = "Scope"
}
# Add additional permissions to array below
$mgResourceAccess = @($mgUserReadScope)
[object[]]$requiredResourceAccess = @{
"ResourceAppId" = "00000003-0000-0000-c000-000000000000" # MS Graph App Id
"ResourceAccess" = $mgResourceAccess
}
# Create the application
$msalApplication = New-MgApplication -displayName myMsalDesktopApp `
-SignInAudience AzureADMyOrg `
-PublicClient @{RedirectUris = "msal://redirect"} `
-RequiredResourceAccess $requiredResourceAccess
# Provision the service principal
New-MgServicePrincipal -AppId $msalApplication.AppId