Guide POC : Comment connecter PowerBI à DaaS Monitor à l’aide d’OData et de clients API

Vue d’ensemble

En tant que client Citrix DaaS, il est courant que plusieurs outils de surveillance soient utilisés au sein de votre organisation. Différentes équipes utilisent des solutions différentes : une équipe peut surveiller les composants de l’infrastructure tandis qu’une autre est responsable de la sécurité et de la recherche des menaces. Le besoin d’observabilité et de tableaux de bord centralisés figure en bonne place sur votre liste de souhaits. Citrix a un moyen de vous aider ! Ce guide POC vous montre comment créer un tableau de bord de base. Bien que nous utilisions PowerBI, il peut s’agir de la solution de votre choix, capable de connecter et de récupérer des données via OData.

Pour une meilleure lisibilité et une meilleure documentation, les clés et les secrets de ce blog ne sont pas flous. L’identifiant client-locataire, la clé et les secrets figurant dans les captures d’écran ne sont pas valides. Remplacez-les toujours par vos informations de connexion.

Création d’un client API dans Citrix Cloud

La première chose à faire est de créer un client API. Un compte Citrix Cloud est requis pour utiliser les API Citrix Cloud Services. Si vous êtes un nouvel administrateur, vous devez demander à un administrateur Citrix Cloud existant de vous inviter et d’autoriser Citrix DaaS, Identity and Access Management, ou de créer un client API pour vous. Connectez-vous à Citrix Cloud pour commencer. Une fois que vous avez accès à Citrix Cloud, procédez comme suit.

  1. Dans la console Citrix Cloud, cliquez sur le menu dans le coin supérieur gauche de l’écran.

    Citrix Cloud

  2. Sélectionnez l’option Gestion des identités et des accès dans le menu. Si cette option n’apparaît pas, il se peut que vous ne disposiez pas des autorisations nécessaires pour créer un client API.

    Citrix Cloud

  3. Sélectionnez l’onglet Accès aux API .

    Citrix Cloud

  4. Donnez un nom à votre client sécurisé de manière à ce que les autres administrateurs du cloud puissent ultérieurement savoir à quoi sert cette clé. Par exemple, PowerBI-Dashboard, puis cliquez sur Créer un client.

    Citrix Cloud

  5. Le message suivant apparaît : L’ identifiant et le secret ont été créés avec succès. Téléchargez ou copiez et enregistrez l’ID client et le secret. Vous aurez besoin des deux pour accéder aux API.

    Citrix Cloud

  6. Après avoir fermé la boîte de dialogue précédente, notez l’identifiant client dans la description ci-dessus, sur le bouton Créer un client ou sur l’étiquette CCID dans le coin supérieur droit de votre écran. Vous en aurez besoin ultérieurement pour accéder aux API.

    Citrix Cloud

Création manuelle d’un jeton au porteur

Tout d’abord, testez si nous pouvons authentifier et récupérer des données. Il existe peut-être une restriction relative au proxy ou au pare-feu dont vous n’êtes pas au courant. Nous simplifions les choses pour éviter tout dépannage inutile. Vous pouvez procéder de deux manières : à l’aide du portail des développeurs et de l’explorateur d’API ou à l’aide de la ligne de commande.

Utilisation de l’explorateur d’API

  1. L’un des moyens les plus simples consiste à ouvrir notre portail pour développeurs et à utiliser la fonction Invoke API .

    Citrix Cloud

  2. Après avoir cliqué sur Invoke API, cliquez sur le bouton Autoriser . Une fenêtre contextuelle s’affiche pour vous demander l’ID client et le secret client qui ont été téléchargés précédemment.

    Citrix Cloud

  3. Lorsque vous cliquez sur Générer, le formulaire fournit un jeton au porteur pour l’authentification. Lorsque vous cliquez trois fois ou un seul clic et que vous appuyez sur CTRL+A, vous pouvez sélectionner et copier le jeton porteur.

    Citrix Cloud

  4. Si vous avez utilisé cette méthode, placez une copie du jeton au porteur sur un bloc-notes temporaire par souci de simplicité. Notez que le jeton a le format CWSAuth bearer= avant de commencer par le jeton lui-même. Il est également important de se rappeler que les jetons au porteur sont généralement valides pendant une heure, après quoi ils expirent. Suivez les mêmes étapes pour générer un nouveau jeton si ce jeton devient invalide au cours de ce processus.

Remarque :

À la fin de ce guide, PowerBI créera automatiquement des jetons.

Utilisation de cURL

Nous utilisons GIT pour Windows et Git Bash, qui est fourni avec ce bundle. Vous pouvez également télécharger un client cURL ou Linux sous Windows ou selon l’option qui vous convient le mieux. Les commandes seront probablement les mêmes.

  1. Exécutez cette commande après avoir remplacé les États-Unis par votre région (États-Unis, UE, AP-S ou Japan cloud api.citrixcloud.jp), le client_id et le client_secret par les informations que vous avez créées précédemment.

    curl 'https://api-us.cloud.com/cctrustoauth2/root/tokens/clients' --data-raw 'client_id=a7bd32de-h6c6-41d8-9138-d24354fb758a&client_secret=B9bhC3cn_08Ot9axi_5cgD==%3D%3D&grant_type=client_credentials'

    Remarque :

    En plus d’utiliser la méthode du navigateur, vous obtiendrez access_token commençant par ey.. et devez ajouter manuellement CwsAuth bearer= devant.

  2. Si vous avez utilisé cette méthode, placez une copie du jeton au porteur sur un bloc-notes temporaire par souci de simplicité.

Connectez-vous à Citrix Cloud avec Power BI

  1. Préparez les détails de connexion, car vous devez les utiliser plusieurs fois.
  2. Dans ce même bloc-notes, copiez l’identifiant client/CCID précédemment. Dans notre exemple de capture d’écran, il s’agissait de dcint216d0e6.

  3. Démarrez PowerBI et ouvrez-le avec un espace de travail vide/nouveau rapport

    Citrix Cloud

  4. Cliquez sur Obtenir des données depuis une autre source et sélectionnez Web en cliquant sur Se connecter.

    Citrix Cloud

  5. Sélectionnez Avancé et remplacez le contenu comme décrit.

    Citrix Cloud

  6. Pour le premier test de connexion, nous allons nous connecter à https://api-us.cloud.com/monitorodata, qui nous fournit une liste de toutes les ressources disponibles. De cette façon, nous évitons les fautes de frappe dans les requêtes et obtenons simultanément une excellente vue d’ensemble.

  7. Si vous avez suivi ces étapes en moins de 60 minutes et que votre pare-feu vous autorise à vous connecter à Citrix Cloud, un écran semblable à celui-ci s’affiche désormais :

    Citrix Cloud

  8. Répétez les mêmes étapes de connexion pour chaque table qui vous intéresse en ajoutant /DesktopGroups pour les bureaux, /Sessions pour les sessions ou /Users pour la table Users. Pour l’instant, restez simple. Prochainement, nous automatisons le processus de création des jetons au porteur.

  9. Pour notre exemple, nous avons créé les tables et les relations suivantes :

    Citrix Cloud

  10. Cette connexion nous permettra déjà de créer des visualisations de base.

    Citrix Cloud

Laissez PowerBI créer automatiquement le jeton Bearer à l’aide d’une fonction

Tout d’abord, nous devons créer une fonction dans PowerBI, puis mettre à jour nos sources pour appeler cette fonction au lieu d’utiliser le jeton Bearer.

  1. Création d’une requête vide

    Citrix Cloud

  2. Nommez la requête GetAccessToken (volet de menu droit/propriétés) et insérez le contenu suivant dans la requête :

    let
    tokenUrl = "<https://api-eu.cloud.com/cctrustoauth2/root/tokens/clients>", // get citrix cloud API credential (bearer token)
    headers = [
    # "customerid" = "the-ccid-from-step-1", // CCID displayed in citrix cloud tenant
    # "Content-Type" = "application/x-www-form-urlencoded", //format for powerbi
    # "Accept" = "\*/\*"
    ],
    postData = [
    grant_type = "client_credentials",
    client_id = "the-long-customer-id-from-step1", // here your API key from cloud.com identity
    client_secret = "the-short-secret-from-step-1" // here your API secret
    ],
    response = Json.Document(Web.Contents(tokenUrl, [Headers = headers, Content = Text.ToBinary(Uri.BuildQueryString(postData))])),
    // get the CC bearer token from the response and add the in header expected 'CwsAuth bearer' in front
    access_token = "CwsAuth bearer=" & response[access_token]
    in
    access_token
<!--NeedCopy-->

Votre résultat devrait ressembler à ceci :

Citrix Cloud

  1. À l’aide de PowerBI Advanced Editor, modifiez vos requêtes existantes pour utiliser la nouvelle fonction.

    • Selon vos paramètres PowerBI et si vous êtes habitué à le faire, vous pouvez obtenir un message d’erreur Formula.Firewall : Query fait référence à d’autres requêtes ou étapes .

    Citrix Cloud

    • Une solution rapide consiste à cliquer sur Fichier PowerBI > Options > Confidentialité et à sélectionner Ignorer les niveaux de confidentialité.

    Citrix Cloud

  2. Dans Power Query Editor, cliquez avec le bouton droit sur une requête existante et sélectionnez Power Editor.

    Citrix Cloud

  3. Supprimez et remplacez le jeton porteur dans votre requête par la nouvelle fonction getAccessToken. La ligne devrait maintenant indiquer Authorization=GetAccessToken, sans “ “ ou ()

    Citrix Cloud

  4. Après avoir cliqué sur OK, puis sur Fermer et appliquer, votre nouvelle fonction et la requête mise à jour devraient récupérer un nouveau jeton et mettre à jour le contenu avec succès.

Une fois que vous aurez confirmé que cette étape fonctionne correctement, vous pouvez mettre à jour les autres requêtes que vous avez ajoutées précédemment pour utiliser également la fonction.

Résumé

Vous avez peut-être remarqué que certaines limites sont en place.

Autorisations

L’autorisation requise dans Citrix Cloud pour exécuter les requêtes OData sur l’API Monitor est, au minimum, celle d’ administrateur en lecture seule. Pour plus de détails, consultez notre documentation sur les privilèges d’accès aux données.

Pagination

L’API du moniteur renvoie 100 enregistrements par appel. Par conséquent, si votre script est conçu pour interroger plus de 100 enregistrements, vous devez le modifier pour gérer la pagination ou pour filtrer les résultats en conséquence, par exemple à l’aide d’une requête en direct.

Granularité et conservation des données

Citrix Monitor stocke et agrège différents types de données avec une granularité différente. Il est essentiel de connaître la granularité des données pour comprendre les résultats que vous obtiendrez lorsque vous utiliserez l’API Monitor pour récupérer des données.

Par exemple, les données SessionMetrics, qui incluent le RTT des sessions, ne sont disponibles que pendant une journée, tandis que les sessions elles-mêmes sont disponibles, par défaut, pendant 90 jours si vous avez une édition Premium et 31 jours avec Advanced.

En effet, l’objectif de Citrix Director and Monitor est de résoudre les problèmes et de trier les sessions en temps réel pour les équipes du service d’assistance.

Vous pouvez en savoir plus sur Monitor Data Retention ici.

Vous recherchez des informations et des analyses historiques ?

Actuellement, une connexion Citrix Analytics OData en version préliminaire privée vous fournit 13 mois de données historiques et d’autres informations. Cela nécessite que Citrix Analytics soit en place, ce qui vous permet en même temps d’obtenir encore plus de statistiques provenant de différents sites connectés.

Guide POC : Comment connecter PowerBI à DaaS Monitor à l’aide d’OData et de clients API