Partager via


Configuration du tableau de bord

Le tableau de bord est configuré lors du démarrage. La configuration inclut des adresses frontend et OpenTelemetry Protocol (OTLP), le point de terminaison du service de ressources, l’authentification, les limites de télémétrie, etc.

Lorsque le tableau de bord est lancé avec le projet hôte d’application .NET.NET Aspire, il est automatiquement configuré pour afficher les ressources et les données de télémétrie de l’application. La configuration est fournie lors du lancement du tableau de bord en mode autonome .

Il existe de nombreuses façons de fournir une configuration :

  • Arguments de ligne de commande.
  • Variables d’environnement. Le délimiteur : doit être remplacé par un trait de soulignement double (__) dans les noms de variables d’environnement.
  • Fichier de configuration facultatif JSON. Le paramètre DOTNET_DASHBOARD_CONFIG_FILE_PATH peut être utilisé pour spécifier un fichier de configuration JSON.

Prenons l’exemple suivant, qui montre comment configurer le tableau de bord au démarrage à partir d’un conteneur Docker :

docker run --rm -it -p 18888:18888 -p 4317:18889 -d --name aspire-dashboard \
    -e DASHBOARD__TELEMETRYLIMITS__MAXLOGCOUNT='1000' \
    -e DASHBOARD__TELEMETRYLIMITS__MAXTRACECOUNT='1000' \
    -e DASHBOARD__TELEMETRYLIMITS__MAXMETRICSCOUNT='1000' \
    mcr.microsoft.com/dotnet/aspire-dashboard:9.0

Vous pouvez également configurer ces mêmes valeurs à l’aide d’un fichier de configuration JSON spécifié à l’aide de DOTNET_DASHBOARD_CONFIG_FILE_PATH:

{
  "Dashboard": {
    "TelemetryLimits": {
      "MaxLogCount": 1000,
      "MaxTraceCount": 1000,
      "MaxMetricsCount": 1000
    }
  }
}

Important

Le tableau de bord affiche des informations sur les ressources, notamment leur configuration, leurs journaux de console et les données de télémétrie approfondies.

Les données affichées dans le tableau de bord peuvent être sensibles. Par exemple, les secrets dans les variables d’environnement et les données d’exécution sensibles dans les données de télémétrie. Veillez à configurer le tableau de bord pour sécuriser l’accès.

Pour plus d’informations, consultez de sécurité du tableau de bord.

Note

La configuration décrite dans cette page concerne le tableau de bord autonome. Pour configurer un projet hôte d’application .NET.NET Aspire, consultez configuration de l’hôte d’application.

Configuration courante

Option Valeur par défaut Description
ASPNETCORE_URLS http://localhost:18888 Un ou plusieurs points de terminaison HTTP via lesquels le serveur frontal du tableau de bord est servi. Le point de terminaison frontal est utilisé pour afficher le tableau de bord dans un navigateur. Lorsque le tableau de bord est lancé par l’hôte de l’application .NET.NET Aspire, cette adresse est sécurisée avec HTTPS. La sécurisation du tableau de bord avec HTTPS est recommandée.
DOTNET_DASHBOARD_OTLP_ENDPOINT_URL http://localhost:18889 Point de terminaison OTLP/gRPC . Ce point de terminaison héberge un service OTLP et reçoit des données de télémétrie à l’aide de gRPC. Lorsque le tableau de bord est lancé par l’hôte de l’application .NET.NET Aspire, cette adresse est sécurisée avec HTTPS. La sécurisation du tableau de bord avec HTTPS est recommandée.
DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL http://localhost:18890 Point de terminaison OTLP/HTTP. Ce point de terminaison héberge un service OTLP et reçoit des données de télémétrie à l’aide de Protobuf sur HTTP. Lorsque le tableau de bord est lancé par l’application .NET.NET Aspire héberge le point de terminaison OTLP/HTTP n’est pas configuré par défaut. Pour configurer un point de terminaison OTLP/HTTP avec l’hôte de l’application, définissez une valeur var DOTNET_DASHBOARD_OTLP_HTTP_ENDPOINT_URL env dans launchSettings.json. La sécurisation du tableau de bord avec HTTPS est recommandée.
DOTNET_DASHBOARD_UNSECURED_ALLOW_ANONYMOUS false Configure le tableau de bord pour ne pas utiliser l’authentification et accepte l’accès anonyme. Ce paramètre est un raccourci pour configurer Dashboard:Frontend:AuthMode et Dashboard:Otlp:AuthMode pour Unsecured.
DOTNET_DASHBOARD_CONFIG_FILE_PATH null Chemin d’accès d’un fichier de configuration JSON. Si le tableau de bord est exécuté dans un conteneur Docker, il s’agit du chemin d’accès au fichier de configuration dans un volume monté. Cette valeur est facultative.
DOTNET_RESOURCE_SERVICE_ENDPOINT_URL null Point de terminaison gRPC auquel le tableau de bord se connecte pour ses données. Si cette valeur n’est pas spécifiée, le tableau de bord affiche les données de télémétrie, mais aucune liste de ressources ni journaux de console. Ce paramètre est un raccourci pour Dashboard:ResourceServiceClient:Url.

Authentification front-end

L’authentification du point de terminaison frontal du tableau de bord est configurée avec Dashboard:Frontend:AuthMode. Le serveur frontal peut être sécurisé avec l’authentification par jeton openID Connect (OIDC) ou de navigateur.

L’authentification par jeton de navigateur fonctionne par le serveur frontal demandant un jeton. Le jeton peut être entré dans l’interface utilisateur ou fourni en tant que valeur de chaîne de requête dans la page de connexion. Par exemple, https://localhost:1234/login?t=TheToken. Lorsque le jeton est correctement authentifié, une cookie d’authentification est conservée dans le navigateur et que le navigateur est redirigé vers l’application.

Option Valeur par défaut Description
Dashboard:Frontend:AuthMode BrowserToken Peut être défini sur BrowserToken, OpenIdConnect ou Unsecured. Unsecured ne doit être utilisé que pendant le développement local. Il n’est pas recommandé d’héberger le tableau de bord publiquement ou dans d’autres paramètres.
Dashboard:Frontend:BrowserToken null Spécifie le jeton de navigateur. Si le jeton de navigateur n’est pas spécifié, le tableau de bord en génère un. Les outils qui souhaitent automatiser la connexion avec l’authentification par jeton de navigateur peuvent spécifier un jeton et ouvrir un navigateur avec le jeton dans la chaîne de requête. Un nouveau jeton doit être généré chaque fois que le tableau de bord est lancé.
Dashboard:Frontend:OpenIdConnect:NameClaimType name Spécifie un ou plusieurs types de revendications qui doivent être utilisés pour afficher le nom complet de l’utilisateur authentifié. Il peut s’agir d’un type de revendication unique ou d’une liste délimitée par des virgules de types de revendication.
Dashboard:Frontend:OpenIdConnect:UsernameClaimType preferred_username Spécifie un ou plusieurs types de revendications qui doivent être utilisés pour afficher le nom d’utilisateur authentifié de l’utilisateur. Il peut s’agir d’un type de revendication unique ou d’une liste délimitée par des virgules de types de revendication.
Dashboard:Frontend:OpenIdConnect:RequiredClaimType null Spécifie la revendication qui doit être présente pour les utilisateurs autorisés. L’autorisation échoue sans cette revendication. Cette valeur est facultative.
Dashboard:Frontend:OpenIdConnect:RequiredClaimValue null Spécifie la valeur de la revendication requise. Utilisé uniquement si Dashboard:Frontend:OpenIdConnect:RequireClaimType est également spécifié. Cette valeur est facultative.
Authentication:Schemes:OpenIdConnect:Authority null URL du fournisseur d’identité (IdP).
Authentication:Schemes:OpenIdConnect:ClientId null Identité de la partie de confiance (RP).
Authentication:Schemes:OpenIdConnect:ClientSecret null Un secret que seul le vrai RP connaîtrait.
Autres propriétés de OpenIdConnectOptions null Les valeurs de la section de configuration Authentication:Schemes:OpenIdConnect:* sont liées à OpenIdConnectOptions, telles que Scope.

Note

Une configuration supplémentaire peut être nécessaire lors de l’utilisation de OpenIdConnect comme mode d’authentification derrière un proxy inverse qui met fin au protocole SSL. Vérifiez si vous devez définir ASPNETCORE_FORWARDEDHEADERS_ENABLED sur true.

Pour plus d’informations, consultez Configurer ASP.NET Core pour travailler avec des serveurs proxy et des équilibreurs de charge.

Authentification OTLP

L’authentification du point de terminaison OTLP est configurée avec Dashboard:Otlp:AuthMode. Le point de terminaison OTLP peut être sécurisé avec une clé API ou certificat client l’authentification.

L’authentification par clé API fonctionne en demandant à chaque requête OTLP d’avoir une valeur d’en-tête x-otlp-api-key valide. Elle doit correspondre à la clé primaire ou secondaire.

Option Valeur par défaut Description
Dashboard:Otlp:AuthMode Unsecured Peut être défini sur ApiKey, Certificate ou Unsecured. Unsecured ne doit être utilisé que pendant le développement local. Il n’est pas recommandé d’héberger le tableau de bord publiquement ou dans d’autres paramètres.
Dashboard:Otlp:PrimaryApiKey null Spécifie la clé API primaire. La clé API peut être n’importe quel texte, mais une valeur avec au moins 128 bits d’entropie est recommandée. Cette valeur est requise si le mode d’authentification est la clé API.
Dashboard:Otlp:SecondaryApiKey null Spécifie la clé API secondaire. La clé API peut être n’importe quel texte, mais une valeur avec au moins 128 bits d’entropie est recommandée. Cette valeur est facultative. Si une deuxième clé API est spécifiée, la valeur d’en-tête de x-otlp-api-key entrante peut correspondre à la clé primaire ou secondaire.

OTLP CORS

Le partage de ressources inter-origines (CORS) peut être configuré pour permettre aux applications de navigateur d’envoyer des données de télémétrie au tableau de bord.

Par défaut, les applications de navigateur ne peuvent pas effectuer des appels d’API inter-domaines. Cela a un impact sur l’envoi de données de télémétrie au tableau de bord, car le tableau de bord et l’application de navigateur se trouvent toujours sur différents domaines. Pour configurer CORS, utilisez la section Dashboard:Otlp:Cors et spécifiez les origines et en-têtes autorisés :

{
  "Dashboard": {
    "Otlp": {
      "Cors": {
        "AllowedOrigins": "http://localhost:5000,https://localhost:5001"
      }
    }
  }
}

Tenez compte des options de configuration suivantes :

Option Valeur par défaut Description
Dashboard:Otlp:Cors:AllowedOrigins null Spécifie les origines autorisées pour CORS. Il s’agit d’une chaîne délimitée par des virgules et peut inclure le caractère générique * pour autoriser n’importe quel domaine. Cette option est facultative et peut être définie à l’aide de la variable d’environnement DASHBOARD__OTLP__CORS__ALLOWEDORIGINS.
Dashboard:Otlp:Cors:AllowedHeaders null Chaîne délimitée par des virgules représentant les en-têtes autorisés pour CORS. Ce paramètre est facultatif et peut être défini à l’aide de la variable d’environnement DASHBOARD__OTLP__CORS__ALLOWEDHEADERS.

Note

Le tableau de bord prend uniquement en charge la méthode POST pour l’envoi de données de télémétrie et n’autorise pas la configuration des méthodes autorisées (Access-Control-Allow-Methods) pour CORS.

Ressources

Le tableau de bord se connecte à un service de ressources pour charger et afficher des informations sur les ressources. Le client est configuré dans le tableau de bord pour savoir comment se connecter au service.

L’authentification du client du service de ressources est configurée avec Dashboard:ResourceServiceClient:AuthMode. Le client peut être configuré pour prendre en charge la clé API ou l’authentification par certificat client.

Option Valeur par défaut Description
Dashboard:ResourceServiceClient:Url null Point de terminaison gRPC auquel le tableau de bord se connecte pour ses données. Si cette valeur n’est pas spécifiée, le tableau de bord affiche les données de télémétrie, mais aucune liste de ressources ni journaux de console.
Dashboard:ResourceServiceClient:AuthMode null Peut être défini sur ApiKey, Certificate ou Unsecured. Unsecured ne doit être utilisé que pendant le développement local. Il n’est pas recommandé d’héberger le tableau de bord publiquement ou dans d’autres paramètres. Cette valeur est requise si une URL de service de ressources est spécifiée.
Dashboard:ResourceServiceClient:ApiKey null API à envoyer au service de ressources dans l’en-tête x-resource-service-api-key. Cette valeur est requise si le mode d’authentification est la clé API.
Dashboard:ResourceServiceClient:ClientCertificate:Source null Peut être défini sur File ou KeyStore. Cette valeur est requise si le mode d’authentification est le certificat client.
Dashboard:ResourceServiceClient:ClientCertificate:FilePath null Chemin du fichier de certificat. Cette valeur est requise si la source est File.
Dashboard:ResourceServiceClient:ClientCertificate:Password null Mot de passe du fichier de certificat. Cette valeur est facultative.
Dashboard:ResourceServiceClient:ClientCertificate:Subject null Objet du certificat. Cette valeur est requise si la source est KeyStore.
Dashboard:ResourceServiceClient:ClientCertificate:Store My Le certificat StoreName.
Dashboard:ResourceServiceClient:ClientCertificate:Location CurrentUser Le certificat StoreLocation.

Limites de télémétrie

La télémétrie est stockée en mémoire. Pour éviter une utilisation excessive de la mémoire, le tableau de bord a des limites sur le nombre et la taille des données de télémétrie stockées. Lorsqu’une limite de nombre est atteinte, de nouvelles données de télémétrie sont ajoutées et les données de télémétrie les plus anciennes sont supprimées. Lorsqu’une limite de taille est atteinte, les données sont tronquées à la limite.

Les limites de télémétrie ont des étendues différentes en fonction du type de télémétrie :

  • MaxLogCount et MaxTraceCount sont partagés entre les ressources. Par exemple, une valeur MaxLogCount de 5 000 configure le tableau de bord pour stocker jusqu’à 5 000 entrées de journal totales pour toutes les ressources.
  • MaxMetricsCount est par ressource. Par exemple, une valeur MaxMetricsCount de 10 000 configure le tableau de bord pour stocker jusqu’à 10 000 points de données de métriques par ressource.
Option Valeur par défaut Description
Dashboard:TelemetryLimits:MaxLogCount 10,000 Nombre maximal d’entrées de journal. La limite est partagée entre les ressources.
Dashboard:TelemetryLimits:MaxTraceCount 10,000 Nombre maximal de traces de journal. La limite est partagée entre les ressources.
Dashboard:TelemetryLimits:MaxMetricsCount 50,000 Nombre maximal de points de données de métriques. La limite est par ressource.
Dashboard:TelemetryLimits:MaxAttributeCount 128 Nombre maximal d’attributs sur la télémétrie.
Dashboard:TelemetryLimits:MaxAttributeLength null Longueur maximale des attributs.
Dashboard:TelemetryLimits:MaxSpanEventCount null Nombre maximal d’événements sur les attributs d’étendue.

Autre

Option Valeur par défaut Description
Dashboard:ApplicationName Aspire Nom de l’application à afficher dans l’interface utilisateur. Cela s’applique uniquement lorsqu’aucune URL de service de ressource n’est spécifiée. Lorsqu’un service de ressources existe, le service spécifie le nom de l’application.

Étapes suivantes

considérations relatives à la sécurité pour l’exécution du tableau de bord .NET.NET Aspire