Présentation
Dans le cadre de l'intégration du connecteur API Hub, l'importation des métadonnées pour les bundles de flux partagés et de proxy d'API est synchronisée avec API Hub. Ces bundles peuvent contenir des informations permettant d'identifier personnellement les utilisateurs ou d'autres données sensibles dans les configurations des règles. Cette fonctionnalité vous permet de masquer les champs d'informations permettant d'identifier personnellement les utilisateurs avant l'importation des bundles dans le hub d'API. Vous assurez ainsi 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 l'utilisateur 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. Cette fonctionnalité est divisée en deux parties.
Masques par défaut
Apigee Edge pour 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 l'utilisateur dans différentes règles.
Sources potentielles d'informations permettant d'identifier personnellement l'utilisateur 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 brut. |
BasicAuthentication |
Mot de passe codé en dur | //BasicAuthentication/Password |
Stocke directement le mot de passe en texte clair. |
GenerateJWT |
Clé symétrique (secrète) | //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 (secrète) | //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 (secrète) | //VerifyJWT/SecretKey/Value |
Clé symétrique codée en dur pour la validation. |
VerifyJWS |
Clé symétrique (secrète) | //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 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 pour l'authentification de base | //ServiceCallout//Authentication/BasicAuth/UserName |
Nom d'utilisateur codé en dur pour l'authentification du backend. |
ServiceCallout |
Mot de passe de l'authentification de base** | //ServiceCallout//Authentication/BasicAuth/Password |
Mot de passe codé en dur pour l'authentification du 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 fichier uapim-connector.properties de votre système Edge pour le cloud privé.
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 d'accès au 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 d'un champ de statistique, 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 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é) :
<StatisticsCollector name="publishPurchaseDetails"> <Statistics> <Statistic name="caller" type="string">****</Statistic> <Statistic name="location" type="string">****</Statistic> </Statistics> </StatisticsCollector>