
CA Optics - Analyseur d'écarts de l'accès conditionnel Azure AD
Projet archivé en raison de l'évolution des priorités de développement et du recentrage de mes efforts communautaires vers d'autres domaines (PoC, autres outils et démos/présentations), le projet est passé en lecture seule.
L'Analyseur d'écarts d'accès conditionnel Azure AD est une solution pour détecter les écarts qui peuvent exister au sein de configurations complexes de politiques d'accès conditionnel Azure Active Directory.
Si vous débutez avec l'accès conditionnel, nous vous recommandons de consulter l'article Microsoft suivant : https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview
Commande unique pour exécuter cet outil : (si c'est la seule partie que vous prévoyez de lire et que vous avez terminé l'installation)
node ./ca/main.js --mapping --skipObjectId=259fcf40-ff7c-4625-9b78-cd11793f161f --clearPolicyCache --clearTokenCache --clearMappingCache
Après avoir satisfait aux prérequis et lu ce fichier README, tenez compte des points suivants :
les politiques reportOnly ne sont pas considérées comme terminales :
Lisez : scope
exécutez chaque analyse avec --clearPolicyCache
exécutez chaque analyse avec --clearMappingCache si vous apportez des modifications aux groupes / utilisateurs liés aux politiques
seules les politiques ciblant les utilisateurs et les applications sont dans le périmètre (c'est le périmètre le plus courant, mais cela signifie par exemple que la politique d'enregistrement de sécurité n'est pas évaluée)
Lisez : scope
Commencez par un environnement de test pour acquérir de l'expérience et définir des attentes concernant le fonctionnement de l'outil
si vous savez que des groupes ou des utilisateurs sont exclus des politiques, définissez avec --skipObjectIds les objets à exclure de l'analyse, sauf si vous cherchez à confirmer les exclusions
Si vous exécutez des analyses dans plusieurs environnements, assurez-vous que les connexions et les caches sont supprimés avant de lancer de nouvelles analyses
Lisez : paramètres
az account clear puis effectuez une nouvelle connexion à l'environnement que vous prévoyez d'analyser avec az loginLisez autres notes importantes
Notes de version : 0.7.1
- Dépendances mises à jour et sorties texte des rapports actualisées
Notes de version : 0.7
- Utilise désormais le point de terminaison bêta par défaut ; l'option --expand étend désormais les résultats du rapport, indépendamment de l'utilisation de --allTerminations
Notes de version : 0.6.9
- Utilisation de --expand=9c06d103-f5b0-4404-bb25-aec4636912cd,47087cd3-64e9-470b-980a-5662f498e016 et extension de 10 membres de groupe pour une inspection séparée.
Notes de version : 0.6.8
- Lorsque vous mettez à jour une politique avec des conditions d'invité dans l'interface graphique, cette politique ne sera disponible qu'à partir du point de terminaison bêta après la mise à jour (pendant l'aperçu).
- Cette mise à jour apporte une normalisation pour les politiques transférées vers le point de terminaison bêta en raison de ce comportement.
- La politique sera évaluée comme les conditions d'invité précédentes, tant que les conditions suivantes sont incluses "internalGuest,b2bCollaborationGuest,b2bCollaborationMember" et qu'aucun locataire n'est exclu de la politique. Pour évaluer les politiques transférées,
- utilisez '--allowPreviewPolicies' lors de l'exécution de CaOptics pour tenir compte de ce comportement
Notes de version : 0.6.6-7 bêta
- Permet d'utiliser différents points de terminaison de connexion pour la connexion et le graphe avec les paramètres : --altLogin --altGraph
- Permet d'utiliser un filtrage personnalisé pour les politiques (recommandé uniquement lorsque les politiques ne correspondent pas au schéma attendu)
Notes de version : 0.6.5 bêta
- Ajout d'un compteur au rapport lorsqu'un grand nombre de permutations est également ajouté au rapport (par défaut, seules les permutations non terminées sont ajoutées)
- Corrections mineures de code remplaçant <var> par <let>
- Le nom du fichier de rapport inclut désormais le jour, le mois, l'année et l'ID de locataire, par ex. report_day_4_month_9_year_2022-tenant_48f55450-183a-45d6-a9ce-68f3cbc68947.csv
Notes de version : 0.6.4 bêta
- Récupère plus de groupes par appel unique (moins de regroupements par lots)
- Correction d'une condition de concurrence détectée lors de l'utilisation générale des boucles for await
- Encadre les valeurs avec "" entre les délimiteurs (CSV)
Notes de version : 0.6.3 bêta
- Optimisations de la gestion des objets mappés.
- Les objets mappés sont mis en cache. Vous pouvez recréer le mappage d'objets à l'aide du paramètre 'clearMappingCache'
- Les clés de recherche commencent toujours par les conditions 'user/group/role' en premier
- Ajout de la possibilité de remplir l'usermap avec des UUID aléatoires pour tester l'impact sur les performances (il s'agit uniquement d'une option de débogage, et pas vraiment quelque chose qui serait dans les versions non bêta)
Notes de version : 0.6.2 bêta
- Séparation des paramètres de cache en fonctions distinctes -> (clearTokenCache et ClearPolicyCache)
- Ajout de la possibilité d'exécuter un algorithme pré-optimisé sur les permutations avec le paramètre --aggressive (consommation mémoire élevée, présent uniquement ici pour les tests A/B)
- fusion terminée.
Notes de version : 0.6.1 bêta
- Ajout d'une version de base du rapport CSV
- Génération de permutations simplifiée pour garantir que les permutations essentielles sont générées, et certaines permutations sont terminées plus tôt lors des recherches
Notes de version : 0.6 bêta (première version non « silencieuse »)
- Ajout des noms d'affichage des applications au rapport MD. Type d'objet ajouté au type d'utilisateur
Notes de version : 0.5.2,0.5.1,0.5 bêta (voir les branches précédentes pour les notes de version)

Exemple de détection inter-politiques