Jamf Blog
How to . . .

Tutoriel : Accès conditionnel Azure et Jamf Connect

Vous trouvez des échecs de connexion dans les journaux de connexion Azure ? Apprenez :

  • Comment communiquent le workflow du ROPG et Jamf Connect
  • Comment enregistrer une application dans Microsoft Azure Active Directory de façon à autoriser les règles d'accès conditionnel
  • Comment faire en sorte que les règles d'accès conditionnel ne s'appliquent PAS au workflow du ROPG

Problème

Il peut arriver que les administrateurs observent des échecs de connexion dans le journal de l'application d'entreprise créée dans Microsoft Azure Active Directory. C'est le cas lorsqu'ils utilisent Jamf Connect et une politique d'accès conditionnel qui requiert une authentification multi-facteur (AMF) pour la cible « Toutes les applications cloud ». Ce comportement est normal de la part du workflow ROPG (Resource Owner Password Grant). Mais il arrive parfois qu'un utilisateur figure parmi les connexions à risque dans les rapports de sécurité Azure Active Directory.

Ce qui se passe

La cible « Toutes les applications cloud » applique des règles qui vont bien au-delà de la connexion à des services cloud spécifiques : elle en applique aussi à des workflows non interactifs comme ceux du ROPG. Plus précisément, la mention « Toutes les applications cloud » semble s'appliquer à toute application demandant une connexion avec l'une des portées suivantes :

openid profile email

La spécification Open ID Connect 2.0 utilise ces champs d'application par défaut pour obtenir un jeton d'accès ou d'identité pour une application cliente. Par conséquent, dans sa configuration par défaut, la connexion Jamf Connect utilise la portée openid profile email. La seule façon d'appliquer une règle CA avec ce comportement par défaut consiste à appliquer la règle à « Toutes les applications cloud » sans AUCUNE exception appliquée. Autrement, la règle CA ne fonctionnera pas.

Les administrateurs disposent de plusieurs options pour appliquer l'AMF à l'écran de connexion Jamf Connect :

  • La méthode la plus simple, mais qui a le plus d'impact sur les connexions des utilisateurs :
    Définissez des exigences d'AMF strictes via l'ancienne méthode d'authentification multifacteur Azure. TOUTES les connexions à TOUS les services seront soumises à l'AMF pour un utilisateur spécifique. Ignorez les échecs de connexion dans les journaux d'ouverture de session concernant la vérification du mot de passe par ROPG. (Vous verrez plus bas comment déterminer si un échec de connexion est dû à une demande ROPG de l'agent de la barre de menu Jamf Connect).
  • Une méthode simple, mais qui peut affecter d'autres services :
    Créez une règle d'accès conditionnel imposant l'authentification multifacteur à « Toutes les applications cloud ». N'apportez AUCUNE exception à la règle, car il semble que cela empêche la règle CA de fonctionner, d'après les tests effectués le 10 décembre 2021. Ignorez les échecs de connexion dans les journaux d'ouverture de session concernant la vérification du mot de passe par ROPG.
  • Complexe, mais exigeant :
    Suivez les instructions du post Jamf Nation « Creating a custom scope for Jamf Connect in Azure for Conditional Access policies » et créez une portée personnalisée pour les applications Jamf Connect (vous devrez vous connecter à Jamf Nation ou créer un compte pour y accéder). Vérifiez qu'aucune règle ne s'applique à « Toutes les applications cloud » afin de ne pas interférer avec le workflow ROPG. L'application de connexion Jamf Connect sera soumise à la règle CA comme prévu, et la vérification ROPG apparaîtra comme une connexion réussie dans les journaux de connexion.

Authentification multifacteur Azure et accès conditionnel

Les administrateurs peuvent activer l'authentification multifacteur pour un compte utilisateur de deux manières :

  • Authentification multifacteur : accessible dans la liste « Tous les services » du portail Azure.
  • Accès conditionnel : accessible dans Azure Active Directory sous la rubrique « Sécurité ».

L'authentification multifacteur est un dispositif global qui permet de mettre en œuvre l'AMF et concerne toutes les connexions à l'échelle du système. Certaines plages d'adresses IP peuvent être exemptées, mais les règles s'appliquent à toutes les authentifications.

L'accès conditionnel permet d'affiner l'application de l'AMF, et notamment d'en exempter les applications web.

Workflow Resource Owner Password Grant

Jamf Connect utilise un workflow ROPG pour synchroniser le mot de passe d'un utilisateur dans le fournisseur d'identité avec celui de son poste de travail. Le nom d'utilisateur et le mot de passe sont envoyés au fournisseur d'identité dans le cadre d'une connexion « non interactive » pour recevoir une réponse. Autrement dit, aucun nom d'utilisateur ou mot de passe n'est demandé à l'utilisateur lors de la connexion ; Jamf Connect utilise les informations stockées en toute sécurité dans le trousseau de l'utilisateur.

Azure peut ensuite renvoyer les réponses suivantes :

Succès, aucune exigence d'AMF : jeton d'accès, de rafraîchissement et d'identification codé en HS256.

Succès, AMF requise par une règle : message d'erreur de la forme :

 AADSTS50076 : En raison d'un changement de configuration effectué par votre administrateur, ou parce que vous vous connectez depuis un nouvel emplacement, vous devez utiliser l'authentification multifacteur pour accéder à [UUID de l'application].
  • Échec, mauvais mot de passe ou nom d'utilisateur : message d'erreur de la forme :
 AADSTS50126 : Erreur de validation des identifiants due à un nom d'utilisateur ou un mot de passe non valide.

Tant que le mot de passe de l'utilisateur est correct, le flux ROPG réussit : la validité du mot de passe est confirmée. Jamf Connect n'a pas besoin des jetons d'accès, de rafraîchissement et d'identification pour maintenir la synchronisation du mot de passe local avec le fournisseur d'identité. Certains messages d'erreur peuvent donc être interprétés comme une vérification réussie du mot de passe.

Référence : https://docs.jamf.com/jamf-connect/administrator-guide/Authentication_Protocols.html

Diagnostic de l'échec du mot de passe AMF dans les journaux d'Azure

Accédez à Azure Active Directory → Applications d'entreprise et sélectionnez le nom de votre application Jamf Connect dans Azure. Naviguez jusqu'à Activité → Connexions pour ouvrir les journaux d'utilisation des utilisateurs.

Example logs from a sample Microsoft Azure instance

La capture d'écran ci-dessus montre deux connexions qui semblent avoir échoué. Sous la colonne « Authentification requise », la première connexion indique « Authentification multifacteur ». En cliquant sur la ligne, vous obtiendrez des informations supplémentaires sur la tentative de connexion.

Details on a non-interactive login from Jamf Connect via ROPG:

Sous Détails de l'authentification, le « Détail du résultat » permet à l'administrateur de déterminer si la connexion a réussi ou échoué. Dans cet exemple, la connexion a été un succès : le détail du résultat montre que « l'utilisateur n'a pas réussi le défi AMF (non interactif) ». On peut en déduire que l'utilisateur a dû utiliser l'AMF soit via une règle d'accès conditionnel, soit via l'authentification multifacteur d'Azure.

Dans le deuxième exemple, un utilisateur soumis à l'AMF n'a pas saisi le bon mot de passe :

Details on a failed non-interactive login due to an incorrect password.

La colonne Authentification requise indique « Authentification à facteur unique » et la colonne Détails de l'authentification indique « Nom d'utilisateur ou mot de passe non valide ou Nom d'utilisateur ou mot de passe sur site non valide ». L'utilisateur est tenu d'utiliser l'authentification multifacteur, mais la première authentification par facteur unique a échoué. L'AMF n'a donc jamais été tentée.

Création d'une portée personnalisée pour les règles de Jamf Connect et d'accès conditionnel

Aperçu du workflow :

  • Créez un enregistrement d'application « point de terminaison privé » avec une API personnalisée.
    • Autorisations API « User.read »
    • Portée « Exposer une API » créée
    • Définissez des rôles tels que « Admin » et « Standard » pour élever les autorisations des comptes macOS.
  • Créez un enregistrement d'application « point de terminaison public » pour qu'OIDC appelle cette API personnalisée
    • Supprimez les autorisations API « User.read »
    • Ajoutez une autorisation API « Mes API » pour le nom de l'application et la portée créées à l'étape 1
  • Créez une règle d'accès conditionnel Azure pour exiger l'authentification multifacteur
    • Appliquez-la à l'application créée à l'étape 1
  • Supprimez toute règle CA appliquée à « Toutes les applications cloud » qui nécessiterait l'AMF
  • Créez un profil de configuration de connexion Jamf Connect.
    • Azure comme fournisseur d'identité
    • Définissez une portée personnalisée
    • Définissez l'URL de découverte pour OIDC et ROPG
    • Testez avec la configuration Jamf Connect

Vous trouverez ici des instructions à jour pour configurer l'application dans Azure.here

S'abonner au blog

Recevez directement dans votre boîte mail les tendances du marché informatique, les mises à jour Apple et les actualités Jamf.

Pour en savoir plus sur la manière dont nous collectons, utilisons, partageons, transférons et protégeant vos informations personnelles, veuillez consulter notre Politique de confidentialité.