Microsoft 365 liste domaines AzureAD

Laurent78

XLDnaute Occasionnel
Bonjour,
Savez-vous si il est possible de récupérer dans Excel la liste des domaines configurés dans un tenant MS AzureAD ?
Merci
 

dysorthographie

XLDnaute Accro
Bonjour,
Je n'es aucune idée de ce qu'est AzureAD.

J'ai demandé à Chatgpt et voilà sa réponse a toi d'apprécier la vélocité de la réponse!
Code:
Function GetAzureADDomains(clientId As String, clientSecret As String, tenantId As String) As Variant
    Dim accessToken As String
    Dim apiUrl As String
    Dim xmlhttp As Object
    Dim response As String
    Dim domains() As String
    
    ' Obtenez un jeton d'accès
    accessToken = GetAzureADAccessToken(clientId, clientSecret, tenantId)
    
    ' URL pour récupérer la liste des domaines Azure AD
    apiUrl = "https://graph.microsoft.com/v1.0/domains"
    
    ' Créez une requête HTTP
    Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
    
    ' Configurez la requête avec le jeton d'accès
    xmlhttp.Open "GET", apiUrl, False
    xmlhttp.setRequestHeader "Authorization", "Bearer " & accessToken
    
    ' Envoyez la requête
    xmlhttp.send
    
    ' Récupérez la réponse
    response = xmlhttp.responseText
    
    ' Analysez la réponse JSON pour obtenir les domaines
    ' Note: Cela nécessite un analyseur JSON approprié, qui n'est pas fourni ici pour la simplicité
    ' Vous pourriez utiliser une bibliothèque externe ou écrire votre propre analyseur JSON
    
    ' Exemple de parsing JSON (à personnaliser selon la structure exacte de la réponse)
    ' Ici, on suppose que la réponse contient une liste de domaines sous la clé "value"
    domains = ParseJSON(response, "value")
    
    ' Retournez le tableau de domaines
    GetAzureADDomains = domains
End Function

Function ParseJSON(jsonString As String, key As String) As Variant
    ' Cette fonction peut nécessiter une adaptation en fonction de la structure exacte de votre JSON
    ' Ici, on suppose que le JSON est simple et le résultat est une liste de chaînes sous la clé spécifiée
    
    Dim jsonObject As Object
    Dim items As Object
    Dim item As Variant
    Dim result() As String
    Dim i As Integer
    
    ' Analysez le JSON
    Set jsonObject = JsonConverter.ParseJson(jsonString)
    
    ' Obtenez les éléments sous la clé spécifiée
    Set items = jsonObject(key)
    
    ' Initialisez le tableau de résultats
    ReDim result(items.Count - 1)
    
    ' Remplissez le tableau avec les valeurs
    For i = 0 To items.Count - 1
        result(i) = items(i)
    Next i
    
    ' Retournez le tableau de résultats
    ParseJSON = result
End Function

Assurs toi d'adapter la fonction `ParseJSON` en fonction de la structure réelle de la réponse JSON. Cette fonction renvoie un tableau de domaines que tu peux utiliser dans ton code.
 

Laurent78

XLDnaute Occasionnel
Bonjour,
Je n'es aucune idée de ce qu'est AzureAD.

J'ai demandé à Chatgpt et voilà sa réponse a toi d'apprécier la vélocité de la réponse!
Code:
Function GetAzureADDomains(clientId As String, clientSecret As String, tenantId As String) As Variant
    Dim accessToken As String
    Dim apiUrl As String
    Dim xmlhttp As Object
    Dim response As String
    Dim domains() As String
   
    ' Obtenez un jeton d'accès
    accessToken = GetAzureADAccessToken(clientId, clientSecret, tenantId)
   
    ' URL pour récupérer la liste des domaines Azure AD
    apiUrl = "https://graph.microsoft.com/v1.0/domains"
   
    ' Créez une requête HTTP
    Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP.6.0")
   
    ' Configurez la requête avec le jeton d'accès
    xmlhttp.Open "GET", apiUrl, False
    xmlhttp.setRequestHeader "Authorization", "Bearer " & accessToken
   
    ' Envoyez la requête
    xmlhttp.send
   
    ' Récupérez la réponse
    response = xmlhttp.responseText
   
    ' Analysez la réponse JSON pour obtenir les domaines
    ' Note: Cela nécessite un analyseur JSON approprié, qui n'est pas fourni ici pour la simplicité
    ' Vous pourriez utiliser une bibliothèque externe ou écrire votre propre analyseur JSON
   
    ' Exemple de parsing JSON (à personnaliser selon la structure exacte de la réponse)
    ' Ici, on suppose que la réponse contient une liste de domaines sous la clé "value"
    domains = ParseJSON(response, "value")
   
    ' Retournez le tableau de domaines
    GetAzureADDomains = domains
End Function

Function ParseJSON(jsonString As String, key As String) As Variant
    ' Cette fonction peut nécessiter une adaptation en fonction de la structure exacte de votre JSON
    ' Ici, on suppose que le JSON est simple et le résultat est une liste de chaînes sous la clé spécifiée
   
    Dim jsonObject As Object
    Dim items As Object
    Dim item As Variant
    Dim result() As String
    Dim i As Integer
   
    ' Analysez le JSON
    Set jsonObject = JsonConverter.ParseJson(jsonString)
   
    ' Obtenez les éléments sous la clé spécifiée
    Set items = jsonObject(key)
   
    ' Initialisez le tableau de résultats
    ReDim result(items.Count - 1)
   
    ' Remplissez le tableau avec les valeurs
    For i = 0 To items.Count - 1
        result(i) = items(i)
    Next i
   
    ' Retournez le tableau de résultats
    ParseJSON = result
End Function

Assurs toi d'adapter la fonction `ParseJSON` en fonction de la structure réelle de la réponse JSON. Cette fonction renvoie un tableau de domaines que tu peux utiliser dans ton code.
Bonjour,
Et merci, je n'ai pas encore le réflexe de ChatGPT... je vais étudier cela de près.
Bonne journée
 

Cousinhub

XLDnaute Barbatruc
Bonjour,
Je ne connais pas non plus Azure, mais il semblerait que Power Query le connaisse, lui...?
1710157199960.png

Peut-être?
Bonne journée
 

Statistiques des forums

Discussions
312 239
Messages
2 086 494
Membres
103 234
dernier inscrit
matteo75654548