20.04.06 : Notes de version d'Apigee Edge pour le cloud public

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.

Aux dates suivantes, nous avons commencé à déployer des mises à jour de composants pour Apigee Edge pour le cloud public :

  • Processeur de messages : vendredi 1er mai 2020
  • Gestion des API : lundi 20 avril 2020
  • Gestion de la monétisation : lundi 20 avril 2020
  • Version corrective d'API Management : lundi 22 juin 2020
  • Version corrective de Monetization Management : lundi 6 juillet 2020
  • Mise à jour de sécurité du serveur de gestion : lundi 24 août 2020
  • Version corrective du processeur de messages avec correction de bugs : jeudi 24 septembre 2020
  • Version corrective du processeur de messages avec correction de bugs : lundi 26 octobre 2020
  • Version corrective du processeur de messages avec correction de bugs : lundi 1er février 2021

Nouvelles fonctionnalités et mises à jour

Vous trouverez ci-dessous les nouvelles fonctionnalités et mises à jour offertes par cette version.

Règles JWT

  • Chiffrement JWT

    Les règles JWT vous permettent de générer, de vérifier et de décoder des jetons chiffrés. Voici les nouveaux éléments des règles :

    • <Type> : permet de définir si les jetons sont signés ou chiffrés.
    • <EncryptionAlgorithms> : vous permet de définir les algorithmes de chiffrement <Key> et <Content>.

    (67165581)

  • Compatibilité avec les algorithmes PSS dans les jetons signés

    Les règles de génération et de validation des jetons JWT et JWS sont désormais compatibles avec les algorithmes PS256, PS384 et PS512, comme décrit dans la RFC 7518 de l'IETF. (119856499)

  • Heure de début relative GenerateJWT pour le jeton

    Lorsque vous générez un jeton JWT avec la règle GenerateJWT, l'élément <NotBefore> vous permet de spécifier un délai relatif entre la génération d'un jeton et sa validité. Par exemple, une valeur <NotBefore> de 2h signifie qu'un jeton n'est valide que deux heures après sa génération. Vous pouvez définir la durée <NotBefore> en millisecondes (ms), secondes (s), minutes (m), heures (h), jours (d) ou semaines (w). (126261970)

  • Faire référence à la clé publique/au certificat dans VerifyJWT

    Dans la règle VerifyJWT, un élément <PublicKey>/<Certificate> vous permet de faire référence au certificat au format PEM avec lequel vérifier les signatures JWT entrantes. Exemple :

    <PublicKey>
      <Certificate ref='public.certificate_pem'/>
    </PublicKey>

    (132918033)

Fonctions des modèles de messages

Voici les nouvelles fonctions de modèle de message disponibles dans cette version :

  • firstnonull : renvoie la valeur du premier argument non nul (le plus à gauche). (139698514)
  • xpath : vous permet d'appliquer une expression XML Path (XPath) pour analyser les variables XML. (123246424)

Règle AssignMessage : AssignVariable vous permet de faire référence à un modèle de message

Dans la règle AssignMessage, l'élément <AssignVariable> / <Template> autorise un attribut ref, ce qui vous permet d'injecter un modèle prédéfini au moment de l'exécution, qui peut changer sans avoir à modifier la règle. (118396082)

Plusieurs alias de certificat

Lorsque vous configurez TLS et que vous utilisez plusieurs certificats dans un keystore, chacun avec un alias différent, Edge vous permet de référencer des alias de certificat spécifiques dans votre configuration <SSLInfo><KeyAlias>. Pour activer ce nouveau comportement, définissez une nouvelle propriété HTTPClient.choose.alias.by.keyalias sur "true" dans le fichier http.properties des processeurs de messages. Les utilisateurs d'Edge pour le cloud public doivent contacter l' assistance pour ajouter cette propriété. (142141620)

Règle JSONtoXML : omettre la déclaration XML, mettre en retrait la sortie

Deux nouvelles options booléennes dans la règle JSONtoXML vous permettent de mieux contrôler la sortie XML.

  • <Options> <OmitXmlDeclaration> : lorsque la valeur est définie sur "true" (la valeur par défaut est "false"), l'élément <OmitXmlDeclaration> omet la déclaration XML <?xml version="1.0" encoding="UTF-8"?> par défaut générée par la règle.
  • <Options> <Indent> : lorsque la valeur est définie sur "true" (la valeur par défaut est "false"), l'élément <Indent> indente la sortie XML. Par exemple, au lieu de ce résultat :

    <Array><n>1</n><n>2</n><n>3</n></Array>

    L'élément "Indent" (Retrait) produit le résultat suivant :

    <Array>
     <n>1</n>
     <n>2</n>
     <n>3</n>
    </Array>

(65142394)

Réponses pour l'analyse des hôtes virtuels

Si une requête était envoyée à l'adresse IP d'un point de terminaison Apigee (sans hôte virtuel spécifié), Edge renvoyait une réponse HTTP 200 et un document HTML vide à partir de l'hôte virtuel Apigee par défaut associé à cette adresse IP. Pour éviter de donner l'impression erronée qu'une telle réponse pourrait représenter une faille potentielle qui pourrait être exploitée, la connexion est abandonnée et aucune réponse n'est renvoyée. (140005396)

Propriétés du serveur cible dans Trace pour faciliter le dépannage

Les nouvelles propriétés de trace suivantes permettent de résoudre les problèmes de connexion à la cible en indiquant si le HTTPClient du serveur cible a été mis en cache : isHttpClientCached et isFromClientPool. (140574604)

Règle MessageLogging : message Syslog

Dans la règle MessageLogging, un nouvel élément <Syslog> / <PayloadOnly> (booléen) vous permet de déterminer si quelque chose est automatiquement ajouté au <Message> que vous définissez. Si vous définissez <PayloadOnly> sur "true", rien n'est ajouté au début de votre définition de message (quel que soit le paramètre <FormatMessage>). Si cette valeur est définie sur "false" (valeur par défaut), le paramètre <FormatMessage> détermine ce qui est ajouté au début du message de journal. (68722102)

Expiration des règles de cache

Un nouvel élément d'expiration <TimeoutInSeconds> sur les règles ResponseCache et PopulateCache se comporte comme l'élément <TimeoutInSecs> existant était initialement censé fonctionner. Veuillez utiliser le nouvel élément. L'élément <TimeoutInSecs> obsolète existe toujours pour assurer la rétrocompatibilité. Si les éléments <TimeoutInSecs> et <TimeoutInSeconds> sont configurés, Edge utilise <TimeoutInSeconds>. (119172893)

Variable de flux virtualhost.aliases.values

Une nouvelle variable de flux de messages virtualhost.aliases.values en lecture seule renvoie un tableau au format JSON de tous les alias attribués à l'hôte virtuel appelé dans la requête entrante. (128453178)

Nouveau paramètre pour assurer la suppression de la révision du proxy

Un nouveau paramètre de requête force a été ajouté à l'API de suppression de révision de proxy d'API. Dans les cas où la révision est listée dans l'API List API Proxies, mais ne peut pas être interrogée, ce paramètre garantit que la révision du proxy est supprimée. (111691721)

Exemple :

DELETE /v1/organizations/myorg/apis/myproxy/revisions/2?force=true

Nouvelle variable de flux pour les valeurs d'alias d'hôte virtuel

Une nouvelle variable de flux de messages virtualhost.aliases.values en lecture seule renvoie un tableau au format JSON de tous les alias attribués à l'hôte virtuel appelé dans la requête entrante. (128453178)

Bugs résolus

Les bugs suivants sont résolus dans cette version. Cette liste s'adresse principalement aux utilisateurs qui veulent vérifier si un correctif a été émis en réponse à leurs demandes d'assistance. Elle n'est pas conçue pour fournir des informations détaillées à tous les utilisateurs.

ID du problème Nom du composant Description
143313772 Processeur de messages

Correction d'un problème dans la règle SpikeArrest qui se produisait lorsque UseEffectiveCount était activé et qu'un redémarrage progressif avait lieu.

(Dans la version du correctif du 01/02/2021)

154428338 Exécution des API

Le processeur de messages ne parvient pas à charger les environnements lorsque les keystores sont configurés avec des noms ou des alias similaires.

Nous avons corrigé un conflit de recherche par expression régulière lors du chargement de keystores dont la convention de nommage est similaire. Cela empêchait le processeur de messages de charger les environnements associés au keystore ou de démarrer lorsque plusieurs keystores en conflit étaient renvoyés lors de la recherche.

149507805 Gestion des API

Activer le déploiement/la configuration via HTTP pour tous les serveurs MGMT de production

Les mises à jour de la configuration s'effectuent via HTTP au lieu de RPC, ce qui améliore la fiabilité et la journalisation des erreurs.

137217974 Gestion des API

Lors de la configuration des MPs sur HTTP, propagez correctement l'erreur lorsqu'un serveur cible est toujours utilisé.

Suite aux améliorations de fiabilité introduites dans le problème 149507805, les erreurs de réponse liées à la suppression du serveur cible étaient signalées à tort comme ayant l'état 200 (succès) lorsque la suppression échouait. Grâce à ce correctif, les erreurs de réponse sont désormais correctement signalées avec l'état 400 en cas d'échec de la suppression. Notez que la suppression d'un serveur cible peut échouer si celui-ci est référencé par un proxy actuellement déployé. Avant de supprimer un serveur cible, vérifiez qu'il n'est référencé par aucun proxy d'API actuellement déployé.

69765558 Gestion des API

L'API Resource Permissions renvoie l'erreur 403

149545506 Gestion des API

Correction d'un problème de sécurité dans l'API permettant d'ajouter un utilisateur à un rôle.

131246911 Gestion des API Pour les e-mails destinés aux développeurs dans un portail, activez la compatibilité avec les nouveaux domaines tels que *.games et *.asia.

Correction d'un problème qui empêchait la création de développeurs sur Edge pour certains noms de domaine tels que *.games, *.asia et *.africa, car le validateur de domaine ne les reconnaissait pas. Edge ne valide désormais que le format d'une adresse e-mail (qui doit contenir un symbole "@").

142217645 Gestion des API

PUT v1/o/{org_name}/apiproducts/{product_name} ne supprime pas les quotas

162299668 Serveur de gestion

Correction d'une faille de sécurité potentielle.

135856488 Serveur de gestion

Lenteur de l'UI

139407965 Serveur de gestion

Nous avons corrigé un problème qui permettait de créer un KVM sans nom.

112488235 Serveur de gestion

Une validation a été ajoutée pour empêcher la création d'hôtes virtuels dont le nom contient des espaces. Les espaces ne sont pas autorisés dans les noms d'hôtes virtuels.

132433193 Gestion de la monétisation

Correction d'un problème lié à la mise à jour de l'application.

152514520 Gestion de la monétisation

Correction d'un problème lié aux appels d'API de gestion pour supprimer des entités.

128450374 Exécution des API

Les règles JWT/JWS doivent respecter IgnoreUnresolvedVariables et générer l'erreur appropriée si la variable n'est pas définie.

135354517 Exécution des API

L'organisation échoue dans Release_190301 en raison de l'application stricte du type de données "String" dans BasicAuth

131763486 Exécution des API

Le chemin de base d'un flux partagé doit être ignoré dans le processeur de messages

135972575 Exécution des API

Private Cloud 4.19.01 présente un comportement différent lors du déploiement avec override=true&delay=300

Ce correctif sera inclus dans une prochaine version d'Edge pour le cloud privé.

141601836 Exécution des API

Corriger le nom d'hôte dans le message de journal

116834109 Exécution des API

Valeurs incorrectes pour les variables failed, fault.cause et fault.name dans Trace

130653816 Exécution des API

Erreurs 404 intermittentes pour le trafic d'exécution

132777537 Exécution des API

Échec de la règle ExtractVariables pour un JSONPath valide

133713555 Exécution des API

Routeur Edge modifiant l'en-tête de date

133253435 Exécution des API

Utilisation élevée du processeur par le thread Apigee-Main

111553402 Exécution des API

Un produit d'API avec des caractères non valides dans le chemin d'accès n'est détecté qu'au moment de l'exécution.

126240341 Exécution des API

Amélioration du message générique "Échec de la génération" en cas d'échec de la règle GenerateJWT

119854424 Exécution des API

Un LoadBalancer avec un seul serveur cible ne doit pas devenir inactif en cas d'échec de la connexion

129275412 Exécution des API

Ajouter des en-têtes HTTP à l'hôte virtuel de secours pour les analyses d'adresses IP génériques

129351507 Exécution des API

Échec du décodage de la règle BasicAuthentication lorsque le mot de passe contient un deux-points

65852874 Exécution des API

Assurez-vous que HTTPClient n'essaie pas de réutiliser une connexion qui comportait un en-tête de réponse Connection:close.

138951646 Exécution des API

La limite de temps ne fonctionne pas en JavaScript pour httpClient

139051927 Exécution des API

Latence élevée de traitement des requêtes

132443137 Exécution des API

Modifier le comportement du processeur de messages pour gérer les en-têtes x-apigee internes inconnus

138310777 Exécution des API

L'appel de déploiement de flux partagé renvoie aléatoirement 504

67170148 Exécution des API

Différences entre "Temps écoulé" et "timeTaken" dans les ServiceCallouts

124049692 Exécution des API

NullPointerException dans la règle VerifyApiKey

135031506 Exécution des API

Ajouter un message de journal pour le format de clé JWT inattendu

137312366 Exécution des API

Validation du contenu par l'en-tête Content-Type

109871907 Exécution des API

Retards d'exécution de ServiceCallout sans élément Response

143722867 Exécution des API

Le JWT doit appliquer une limite configurable au nombre d'itérations pour PBKDF2.

144286363 Trace hybride

Le masque de débogage dans env.json ne masque pas les données de réponse dans Apigee hybrid

147769812 Exécution des API

Déclarer les propriétés de hachage OAuth comme mutables dans les feature flags

149037704 Exécution des API

Correction d'un problème où la valeur à attribuer à la variable de flux proxy.url pouvait renvoyer un alias d'hôte incorrect.

148972262 Exécution des API

DecodeJWS émet la charge utile dans une variable de contexte sous une forme inutile

116580622 Exécution des API

Réponse incohérente

149739904 Exécution des API

Le masquage des données pour les en-têtes HTTP ne doit pas tenir compte de la casse

149431545 Exécution des API

GenerateJWT et VerifyJWT avec SecretKey n'acceptent aucun encodage, à l'exception d'UTF-8.

155448596 Gestion des API : correctif

Autorisations manquantes pour le rôle apimonitoringadmin par défaut

Des autorisations manquantes ont été ajoutées au rôle apimonitoringadmin.

158592076 Gestion des API : correctif

Autorisations manquantes pour le rôle d'administrateur du développement par défaut

Des autorisations manquantes ont été ajoutées au rôle d'administrateur du développement.

152856311 Gestion des API : correctif

Validations permettant de refuser les certificats PKCS7 et DER dans le keystore et le truststore lors de la création et de la mise à jour de l'hôte virtuel

Lors de la création ou de la mise à jour d'un hôte virtuel, des validations sont appliquées pour vérifier si les certificats ajoutés dans l'alias du keystore et le truststore sont au format PEM et non dans des formats incompatibles tels que PKCS7, DER, etc.

155478545 Gestion de la monétisation : correctif

Un problème lié aux mises à jour de l'état des notifications par e-mail a été résolu.

154121499 Gestion de la monétisation : correctif

Correction d'un problème où l'API /mint/org/orgname/delete-org-data renvoyait une erreur d'état 404.

152356393 Gestion de la monétisation : correctif

La validation de la longueur du nom de l'entreprise a été assouplie pour la création d'entreprises de monétisation.

138542921 Gestion de la monétisation : correctif

Correction d'un problème qui entraînait l'échec de la création d'un forfait avec plusieurs attributs personnalisés dans le bundle de produits.

150948843 Gestion de la monétisation : correctif

Correction d'un problème où l'API /sync-developers de monétisation générait des conflits de persistance.

155443118 Monetization Management-Patch

Le champ jsonMailProperties a été supprimé.

150948843 Gestion de la monétisation : correctif

Correction d'un problème où l'API /sync-developers de monétisation générait des conflits de persistance.