Partager via


Référence : Paramètres de configuration du conteneur de la passerelle auto-hébergée

S’APPLIQUE À : Développeur | Premium

Cet article fournit une référence pour les paramètres obligatoires et facultatifs utilisés pour configurer le conteneur de la passerelle auto-hébergée de la Gestion des API.

Pour en savoir plus sur nos conseils de production (Kubernetes), nous vous recommandons de lire cet article.

Important

Cette référence s’applique uniquement à la passerelle auto-hébergée v2. Des versions minimales pour la disponibilité des paramètres sont fournies.

Intégration de l’API de configuration

L’API de configuration est utilisée par la passerelle auto-hébergée pour se connecter à Azure API Management afin d’obtenir la dernière configuration et d’envoyer des métriques, quand il est activé.

Voici une vue d’ensemble de toutes les options de configuration :

Nom Description Obligatoire Default Disponibilité
gateway.name ID de la ressource de passerelle auto-hébergée. Oui, lors de l'utilisation de l'authentification Microsoft Entra N/A v2.3+
config.service.endpoint Point de terminaison de configuration dans la Gestion des API Azure pour la passerelle auto-hébergée. Recherchez cette valeur dans le Portail Azure sous Déploiementde passerelles>. Oui N/A v2.0+
config.service.auth Définit la façon dont la passerelle auto-hébergée doit s’authentifier auprès de l’API de configuration. Actuellement, le jeton de passerelle et l'authentification Microsoft Entra sont pris en charge. Oui N/A v2.0+
config.service.auth.azureAd.tenantId ID du locataire Microsoft Entra. Oui, lors de l'utilisation de l'authentification Microsoft Entra N/A v2.3+
config.service.auth.azureAd.clientId ID client de l’application Microsoft Entra avec laquelle s’authentifier (également appelé ID d’application). Oui, lors de l'utilisation de l'authentification Microsoft Entra N/A v2.3+
config.service.auth.azureAd.clientSecret Secret de l'application Microsoft Entra avec laquelle s'authentifier. Oui, lors de l'utilisation de l'authentification Microsoft Entra (sauf si un certificat est spécifié) N/A v2.3+
config.service.auth.azureAd.certificatePath Chemin d’accès au certificat avec lequel s’authentifier pour l’application Microsoft Entra. Oui, lors de l'utilisation de l'authentification Microsoft Entra (sauf si le secret est spécifié) N/A v2.3+
config.service.auth.azureAd.authority URL d’autorité de l’ID Microsoft Entra. Non https://login.microsoftonline.com v2.3+
config.service.auth.tokenAudience Audience du jeton utilisé pour l'authentification Microsoft Entra Non https://azure-api.net/configuration v2.3+
config.service.endpoint.disableCertificateValidation Définit si la passerelle auto-hébergée doit valider le certificat côté serveur de l'API de configuration. Il est recommandé d'utiliser la validation des certificats, de ne la désactiver qu'à des fins de test et avec prudence, car elle peut présenter un risque pour la sécurité. No false v2.0+
config.service.intégration.timeout Définit le délai d'expiration pour interagir avec l'API de configuration. Non 00:01:40 v2.3.5+

La passerelle auto-hébergée prend en charge quelques options d’authentification à intégrer à l’API de configuration qui peut être définie à l’aide deconfig.service.auth.

Cette aide vous fournit les informations requises pour définir comment s’authentifier :

  • Pour l’authentification basée sur les jetons de passerelle, spécifiez un jeton d’accès (clé d’authentification) de la passerelle auto-hébergée dans le Portail Azure sousDéploiement>de passerelles.
  • Pour l’authentification basée sur Microsoft Entra ID, spécifiez azureAdApp et fournissez les paramètres d’authentification config.service.auth.azureAd supplémentaires.

Découverte inter-instances et synchronisation

Nom Description Obligatoire Default Disponibilité
neighborhood.host Nom DNS utilisé pour résoudre toutes les instances d’un déploiement de passerelle auto-hébergée pour la synchronisation entre instances. Dans Kubernetes, elle peut être obtenue à l’aide d’un service sans tête. Non N/A v2.0+
neighborhood.heartbeat.port Port UDP utilisé pour les instances d’un déploiement de passerelle auto-hébergé pour envoyer des pulsations à d’autres instances. Non 4291 v2.0+
policy.rate-limit.sync.port Port UDP utilisé pour les instances de passerelle auto-hébergées pour synchroniser la limitation de débit entre plusieurs instances. Non 4290 v2.0+

HTTP

Nom Description Obligatoire Default Disponibilité
net.server.http.forwarded.proto.enabled Possibilité d’honorer X-Forwarded-Proto l’en-tête pour identifier le schéma pour résoudre l’itinéraire d’API (http/https uniquement). Non false v2.5+

Intégration à Kubernetes

Entrée Kubernetes

Important

La prise en charge de Kubernetes Ingress est actuellement expérimentale et n’est pas couverte par le Support Azure. En savoir plus sur GitHub.

Nom Description Obligatoire Default Disponibilité
k8s.ingress.enabled Activer l’intégration Kubernetes Ingress. Non false v1.2+
k8s.ingress.namespace Espace de noms Kubernetes dans lequel regarder les ressources Kubernetes Ingress. Non default v1.2+
k8s.ingress.dns.suffix Suffixe DNS pour générer le nom d’hôte DNS pour que les services envoient les requêtes. Non svc.cluster.local v2.4+
k8s.ingress.config.path Chemin d’accès à la configuration Kubernetes (Kubeconfig). Non N/A v2.4+

Mesures

Nom Description Obligatoire Default Disponibilité
telemetry.metrics.local Activez la collecte de métriques locales via StatsD. La valeur est l’une des options suivantes : none, statsd. No none v2.0+
telemetry.metrics.local.statsd.endpoint Point de terminaison StatsD. Oui, s’il telemetry.metrics.local est défini sur statsd ; sinon non. N/A v2.0+
telemetry.metrics.local.statsd.sampling Taux d’échantillonnage des métriques StatsD. La valeur doit être comprise entre 0 et 1, par exemple, 0,5. Non N/A v2.0+
telemetry.metrics.local.statsd.tag-format Format d’étiquetage de l’exportateur StatsD. La valeur est l’une des options suivantes : ibrato, dogStatsD, influxDB. Non N/A v2.0+
telemetry.metrics.cloud Indique si vous souhaitez activer ou non l’émission de métriques vers Azure Monitor. No true v2.0+
observability.opentelemetry.enabled Indique si vous souhaitez activer ou non l’émission de métriques à un collecteur OpenTelemetry sur Kubernetes. No false v2.0+
observability.opentelemetry.collector.uri URI du collecteur OpenTelemetry vers laquelle envoyer des métriques. Oui, s’il observability.opentelemetry.enabled est défini sur true ; sinon non. N/A v2.0+
observability.opentelemetry.system-metrics.enabled Activez l’envoi de métriques système au collecteur OpenTelemetry, notamment le processeur, la mémoire, le nettoyage de la mémoire, etc. Non false v2.3+
observability.opentelemetry.histogram.buckets Compartiments d’histogrammes dans lesquels les métriques OpenTelemetry doivent être signalées. Format : « x,y,z,... ». No « 5,10, 25, 50,100, 250, 500,1 000, 2 500, 5 000,10 000 » v2.0+

Journaux d’activité

Nom Description Obligatoire Default Disponibilité
telemetry.logs.std Activez la journalisation dans un flux standard. La valeur est l’une des options suivantes : none, text, json. Non text v2.0+
telemetry.logs.std.level Définit le niveau de journal des journaux envoyés au flux standard. La valeur est l’une des options suivantes : all, debug, info, warn, error ou fatal. Non info v2.0+
telemetry.logs.std.color Indication indiquant si les journaux colorés doivent être utilisés dans le flux standard. No true v2.0+
telemetry.logs.local Activez la journalisation locale. La valeur est l’une des options suivantes : none, auto, localsyslog,rfc5424,journal,json No auto v2.0+
telemetry.logs.local.localsyslog.endpoint Point de terminaison localsyslog. Oui, s’il telemetry.logs.local est défini sur localsyslog ; sinon non. Pour plus d’informations sur la configuration, consultez la documentation syslog locale. N/A v2.0+
telemetry.logs.local.localsyslog.facility Specifies le code de facilité de localsyslog 7. Non N/A v2.0+
telemetry.logs.local.rfc5424.endpoint point de terminaison de rfc5424. Oui, s’il telemetry.logs.local est défini sur rfc5424 ; sinon non. N/A v2.0+
telemetry.logs.local.rfc5424.facility Code d’installation par rfc5424, par exemple, 7 Non N/A v2.0+
telemetry.logs.local.journal.endpoint Point de terminaison de journal. Oui, s’il telemetry.logs.local est défini sur journal ; sinon non. N/A v2.0+
telemetry.logs.local.json.endpoint Point de terminaison UDP qui accepte les données JSON, spécifié en tant que chemin de fichier, adresse IP : port ou nom d’hôte : port. Oui, s’il telemetry.logs.local est défini sur json ; sinon non. 127.0.0.1:8888 v2.0+

Sécurité

Certificats et chiffrements

Nom Description Obligatoire Default Disponibilité
certificates.local.ca.enabled Indique si la passerelle auto-hébergée doit utiliser ou non des certificats d’autorité de certification locaux montés. Il est nécessaire d'exécuter la passerelle auto-hébergée en tant que racine ou avec l'ID utilisateur 1001. No false v2.0+
net.server.tls.ciphers.allowed-suites Liste séparée par des virgules de chiffrements à utiliser pour la connexion TLS entre le client d’API et la passerelle auto-hébergée. Non TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA v2.0+
net.client.tls.ciphers.allowed-suites Liste séparée par des virgules de chiffrements à utiliser pour la connexion TLS entre la passerelle auto-hébergée et le serveur principal. Non TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA v2.0+
security.certificate-revocation.validation.enabled Permet d’activer ou de désactiver la validation de la liste de révocation de certificats Non false v2.3.6+

TLS

Nom Description Obligatoire Default Disponibilité
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls13 Indique si TLS 1.3 est autorisé ou non vers le back-end. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. Non true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls12 Indique si TLS 1.2 est autorisé ou non vers le back-end. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. Non true v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11 Indique si TLS 1.1 est autorisé ou non vers le back-end. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. Non false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10 Indique si TLS 1.0 est autorisé ou non vers le back-end. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. Non false v2.0+
Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30 Indique si SSL 3.0 est autorisé ou non vers le back-end. Similaire à la gestion des chiffrements de protocole dans la passerelle managée. Non false v2.0+

Clouds souverains

Voici une vue d’ensemble des paramètres qui doivent être configurés pour pouvoir travailler avec des clouds souverains :

Nom Public Azure Chine US Government
config.service.auth.tokenAudience https://azure-api.net/configuration (valeur par défaut) https://azure-api.cn/configuration https://azure-api.us/configuration
logs.applicationinsights.endpoint https://dc.services.visualstudio.com/v2/track (valeur par défaut) https://dc.applicationinsights.azure.cn/v2/track https://dc.applicationinsights.us/v2/track

Configuration des paramètres

Fichier YAML Kubernetes

Lors du déploiement de la passerelle auto-hébergée sur Kubernetes à l’aide d’un fichier YAML, configurez les paramètres en tant que paires nom-valeur dans l’élément data configMap de la passerelle. Par exemple :

apiVersion: v1
    kind: ConfigMap
    metadata:
        name: contoso-gateway-environment
    data:
        config.service.endpoint: "contoso.configuration.azure-api.net"
        telemetry.logs.std: "text"
        telemetry.logs.local.localsyslog.endpoint: "/dev/log"
        telemetry.logs.local.localsyslog.facility: "7"

[...]

Graphique Helm

Lorsque vous utilisez Helm pour déployer la passerelle auto-hébergée sur Kubernetes, transmettez les paramètres de configuration du graphique en tant que paramètres à la commande helm install. Par exemple :

helm install azure-api-management-gateway \
    --set gateway.configuration.uri='contoso.configuration.azure-api.net' \
    --set gateway.auth.key='GatewayKey contosogw&xxxxxxxxxxxxxx...' \
    --set secret.createSecret=false \
    --set secret.existingSecretName=`mysecret` \
    azure-apim-gateway/azure-api-management-gateway

Étapes suivantes