Présentation
Dans le cadre de l'intégration du connecteur du hub d'API, l'importation des métadonnées pour les bundles d'API proxy et de sharedflow est synchronisée avec le hub d'API. Ces bundles peuvent contenir des informations permettant d'identifier personnellement les utilisateurs ou d'autres données sensibles dans les configurations de règles. Cette fonctionnalité vous permet de masquer les champs d'informations permettant d'identifier personnellement les utilisateurs avant que les bundles ne soient importés dans le hub d'API, ce qui garantit la confidentialité et la conformité des données pour votre environnement Edge for Private Cloud.
Approche de masquage
Le masquage des informations permettant d'identifier personnellement les utilisateurs est appliqué à l'aide d'expressions XPath pour cibler des éléments spécifiques dans les configurations de règles au format XML à l'intérieur des bundles. La fonctionnalité est divisée en deux parties.
Masques par défaut
Apigee Edge for Private Cloud inclut une liste prédéfinie et intégrée d'expressions XPath (appelées masques par défaut) qui ciblent automatiquement les champs connus comme étant des sources potentielles d'informations permettant d'identifier personnellement les utilisateurs dans différentes règles.
Sources potentielles d'informations permettant d'identifier personnellement les utilisateurs et masques par défaut
Le tableau suivant répertorie les règles et les éléments pour lesquels le masquage par défaut est appliqué :
| Nom de la règle | Élément sensible | XPath du masque par défaut | Justification |
|---|---|---|---|
BasicAuthentication |
Nom d'utilisateur codé en dur | //BasicAuthentication/User |
Stocke directement l'identité de l'utilisateur en texte clair. |
BasicAuthentication |
Mot de passe codé en dur | //BasicAuthentication/Password |
Stocke directement le mot de passe en texte clair. |
GenerateJWT |
Clé symétrique (secret) | //GenerateJWT/SecretKey/Value |
Clé de signature/chiffrement symétrique codée en dur. |
GenerateJWT |
Clé privée | //GenerateJWT/PrivateKey/Value |
Clé privée encodée au format PEM pour la signature asymétrique. |
GenerateJWT |
Mot de passe de la clé privée | //GenerateJWT/PrivateKey/Password |
Mot de passe permettant de déchiffrer la clé privée. |
GenerateJWS |
Clé symétrique (secret) | //GenerateJWS/SecretKey/Value |
Clé de signature/chiffrement symétrique codée en dur. |
GenerateJWS |
Clé privée | //GenerateJWS/PrivateKey/Value |
Clé privée encodée au format PEM pour la signature asymétrique. |
GenerateJWS |
Mot de passe de la clé privée | //GenerateJWS/PrivateKey/Password |
Mot de passe permettant de déchiffrer la clé privée. |
VerifyJWT |
Clé symétrique (secret) | //VerifyJWT/SecretKey/Value |
Clé symétrique codée en dur pour la validation. |
VerifyJWS |
Clé symétrique (secret) | //VerifyJWS/SecretKey/Value |
Clé symétrique codée en dur pour la validation. |
HMAC |
Clé secrète partagée | //HMAC/SecretKey |
Clé secrète codée en dur pour le calcul du HMAC. |
KeyValueMapOperations |
Valeur codée en dur (Put) | //KeyValueMapOperations/Put/Value |
Secret codé en dur en cours d'écriture dans le KVM. |
ServiceCallout |
Nom d'utilisateur de l'authentification de base | //ServiceCallout//Authentication/BasicAuth/UserName |
Nom d'utilisateur codé en dur pour l'authentification backend. |
ServiceCallout |
Mot de passe de l'authentification de base** | //ServiceCallout//Authentication/BasicAuth/Password |
Mot de passe codé en dur pour l'authentification backend. |
SAMLAssertion |
Valeur de la clé privée | //SAMLAssertion//PrivateKey/Value |
Clé privée pour le déchiffrement/la signature. |
SAMLAssertion |
Mot de passe de la clé privée | //SAMLAssertion//PrivateKey/Password |
Mot de passe permettant de déchiffrer la clé privée. |
Masques personnalisés
Pour les champs que vous identifiez comme contenant des informations permettant d'identifier personnellement les utilisateurs, mais qui ne sont pas couverts par les masques par défaut (comme la configuration personnalisée dans les règles), vous pouvez fournir votre propre liste d'expressions XPath (masques personnalisés).
Les masques personnalisés sont gérés en mettant à jour une propriété de configuration dans le uapim-connector.properties fichier de votre système Edge for Private Cloud.
Configurer des masques personnalisés
Pour ajouter des chemins de masquage personnalisés, mettez à jour la propriété conf_uapim_connector.uapim.mask.xpaths dans le fichier de configuration du connecteur :
- Chemin du fichier de configuration
/opt/apigee/customer/application/uapim-connector.properties - Propriété :
conf_uapim_connector.uapim.mask.xpaths
La propriété accepte une liste d'expressions XPath séparées par une virgule, ciblant les éléments spécifiques dont vous souhaitez masquer les valeurs.
Exemple de configuration
Pour masquer la valeur d'une variable personnalisée et un champ de statistiques, vous devez définir la propriété comme suit :
conf_uapim_connector.uapim.mask.xpaths=//StatisticsCollector/Statistics/Statistic[@name='caller'],//StatisticsCollector/Statistics/Statistic[@name='location'],//AssignMessage/AssignVariable[Name='password']/Value
| Expression XPath | Élément masqué | Objectif |
|---|---|---|
//StatisticsCollector/Statistics/Statistic[@name='caller'] |
Valeur de la statistique (où name='caller') | Masque l'identité sensible de l'appelant. |
//AssignMessage/AssignVariable[Name='password']/Value |
Valeur d'AssignVariable (où Name='password') | Masque les valeurs de mot de passe codées en dur. |
Règles masquées
La valeur des éléments ciblés sera masquée. Ce contenu masqué est importé dans le hub d'API.
Exemple de règle 1 (StatisticsCollector – Masquée) :
<StatisticsCollector name="publishPurchaseDetails"> <Statistics> <Statistic name="caller" type="string">****</Statistic> <Statistic name="location" type="string">****</Statistic> </Statistics> </StatisticsCollector>