Informations d'identification personnelle
Le langage détecte, classe et fournit des options pour dépersonnaliser les informations personnelles identifiables (IPI) dans du texte non structuré.
Cas d'emploi
- Détecter et organiser les informations privées dans les commentaires des utilisateurs
-
De nombreuses organisations collectent les commentaires des utilisateurs via divers canaux tels que les évaluations de produits, les demandes de retour, les tickets d'assistance et les forums de commentaires. Vous pouvez utiliser le service de détection des informations d'identification personnelle de langue pour la détection automatique des entités d'informations d'identification personnelle afin non seulement d'avertir de manière proactive, mais également d'anonymiser avant de stocker les commentaires postés. En utilisant la détection automatique des entités d'informations d'identification personnelle, vous pouvez avertir les utilisateurs de manière proactive du partage de données privées et les applications pour implémenter des mesures telles que le stockage de données masquées.
- Analyse du stockage d'objets pour détecter la présence de données sensibles
-
Les solutions de stockage cloud telles qu'OCI Object Storage sont largement utilisées par les employés pour stocker des documents commerciaux dans des emplacements contrôlés localement ou partagés par de nombreuses équipes. Pour s'assurer que ces emplacements partagés ne stockent pas d'informations privées telles que les noms des employés, les données démographiques et les informations de paie, il est nécessaire de scanner automatiquement tous les documents pour détecter la présence d'informations d'identification personnelle. Le modèle OCI Language PII fournit une API par lots pour traiter de nombreux documents texte à grande échelle afin de traiter les données à grande échelle.
Entités prises en charge
Le tableau suivant décrit les différentes entités que les informations d'identification personnelle peuvent extraire.
| Type d'entité | Description |
|---|---|
PERSON
|
Nom de la personne |
ADDRESS
|
Adresse |
AGE
|
Âge |
DATE_TIME
|
Date ou heure |
SSN_OR_TAXPAYER
|
Numéro de sécurité sociale ou ID contribuable (Etats-Unis) |
EMAIL
|
courriel |
PASSPORT_NUMBER_US
|
Numéro de passeport (États-Unis) |
TELEPHONE_NUMBER
|
Téléphone ou fax (US) |
DRIVER_ID_US
|
Numéro d'identification du conducteur (US) |
BANK_ACCOUNT_NUMBER
|
Numéro du compte bancaire (États-Unis) |
BANK_SWIFT
|
Compte bancaire (SWIFT) |
BANK_ROUTING
|
Numéro d'acheminement de la banque |
CREDIT_DEBIT_NUMBER
|
Numéro de carte de paiement |
IP_ADDRESS
|
Adresse IP, IPV4 et IPV6 |
MAC_ADDRESS
|
Adresse MAC |
|
Voici les types de clé secrète : |
|
COOKIE
|
Cookie du site |
XSRF TOKEN
|
Jeton de falsification de demande intersite (XSRF) |
AUTH_BASIC
|
Authentification de base |
AUTH_BEARER
|
Authentification du porteur |
JSON_WEB_TOKEN
|
Jeton Web JSON |
PRIVATE_KEY
|
Clé privée cryptographique |
PUBLIC_KEY
|
Clé publique cryptographique |
|
Voici les informations d'identification de compte OCI qui sont les informations d'authentification requises pour accéder aux ressources et les gérer dans OCI. Ces informations d'identification ont pour but de garantir une authentification sécurisée des utilisateurs, des applications et des services afin d'interagir avec les services et les ressources OCI. |
|
OCI_OCID_USER
|
Utilisateur OCI |
OCI_OCID_TENANCY
|
OCID (identificateur Oracle Cloud) de location |
OCI_SMTP_USERNAME
|
Nom d'utilisateur SMTP (Simple Mail Transfer Protocol) |
OCI_OCID_REFERENCE
|
Référence OCID |
OCI_FINGERPRINT
|
Empreinte OCI |
OCI_CREDENTIAL
|
Ce type couvre le jeton d'authentification OCI, les informations d'identification OAuth et les informations d'identification SMTP |
OCI_PRE_AUTH_REQUEST
|
Demande préauthentifiée OCI |
OCI_STORAGE_SIGNED_URL
|
URL unique OCI Storage |
OCI_CUSTOMER_SECRET_KEY
|
Clé secrète client OCI |
OCI_ACCESS_KEY
|
Clés d'accès OCI ou informations d'identification de sécurité |
Exemples
| Texte saisi | Texte de sortie masqué par "*" |
|---|---|
|
|
|
Le JSON de l'exemple est :
- Exemple de demande
-
POST https://<region-url>/20210101/actions/batchDetectLanguagePiiEntities - Format de demande d'API :
-
{ "documents": [ { "languageCode": "en", "key": "1", "text": "Hello Support Team, I am reaching out to seek help with my credit card number 5111 1111 1111 1118 expiring on 11/23. There was a suspicious transaction on 12-Aug-2022 which I reported by calling from my mobile number +1 (650) 555-01900 also I emailed from my email id my.name1234@myemail.com. Would you please let me know the refund status? Regards, Sarah" } ], "compartmentId": "ocid1.tenancy.oc1..aaaaaaaadany3y6wdh3u3jcodcmm42ehsdno525pzyavtjbpy72eyxcu5f7q", "masking": { "ALL": { "mode": "MASK", "isUnmaskedFromEnd": true, "leaveCharactersUnmasked": 4 } } }
- Contenu JSON de la réponse :
-
{ "documents": [ { "key": "1", "entities": [ { "offset": 79, "length": 19, "type": "CREDIT_DEBIT_NUMBER", "text": "5111 1111 1111 1118", "score": 0.75, "isCustom": false }, { "offset": 111, "length": 5, "type": "DATE_TIME", "text": "11/23", "score": 0.9992455840110779, "isCustom": false }, { "offset": 156, "length": 11, "type": "DATE_TIME", "text": "12-Aug-2022", "score": 0.998766303062439, "isCustom": false }, { "offset": 218, "length": 2, "type": "TELEPHONE_NUMBER", "text": "+1", "score": 0.6941494941711426, "isCustom": false }, { "offset": 221, "length": 14, "type": "TELEPHONE_NUMBER", "text": "(650) 555-0100", "score": 0.9527066349983215, "isCustom": false }, { "offset": 268, "length": 27, "type": "EMAIL", "text": "my.name1234@myemail.com", "score": 0.95, "isCustom": false }, { "offset": 354, "length": 5, "type": "PERSON", "text": "Sarah", "score": 0.9918518662452698, "isCustom": false } ], "languageCode": "en", "maskedText": "Hello Support Team, \nI am reaching out to seek help with my credit card number ***************2345 expiring on *1/23. There was a suspicious transaction on *******2022 which I reported by calling from my mobile number +1 **********9999 also I emailed from my email id ***********************.com. Would you please let me know the refund status?\nRegards,\n*arah" } ], "errors": [] }
Configuration de la sortie de texte d'informations d'identification personnelle ou d'informations de santé protégées
Dans le service Language, vous pouvez configurer la sortie PII/PHI lors de l'analyse du texte.
Règles d'informations d'identification personnelle
- Règles d'informations d'identification personnelle personnalisées
-
Clés Type Description ruleIdChaîne (String) Identifiant unique de la règle. regexChaîne (String) Modèle d'expression régulière correspondant aux types de données personnalisés. Par exemple, ([A-Z]{5}[0-9]{4}[A-Z]{1}) pour faire correspondre la carte Pan. typeChaîne (String) Nom du type d'entité à mettre en correspondance. Par exemple, PAN_CARD.prefixListe<String> Mots ou expressions à rechercher dans maxDistancedu mot détecté parregex.suffixListe<String> Mots ou expressions à rechercher dans maxDistancedu mot détecté parregex.isCaseSensitiveBoolean Détermine si le processus de mise en correspondance doit considérer les lettres majuscules et minuscules comme distinctes, avec la valeur trueindiquant la sensibilité à la casse etfalseindiquant l'insensibilité à la casse.maxDistanceInteger Définit la distance maximale autorisée en caractères entre prefix/suffixet le modèle mis en correspondance, ce qui garantit que le modèle se trouve à une certaine proximité deprefix/suffix.priorityInteger Priorité des règles. Fourchettes comprises entre 1 et 50, la priorité 1 étant la plus élevée. Par exemple, s'il existe deux règles avec la même valeur regexmais des valeursprefixetsuffixdifférentes, la règle avec la priorité la plus élevée est prise en compteregexOnlyBoolean Si la valeur est True, le modèle enlève les entités détectées qui ont la même valeur
regexque la règleregex.Exemples :
Dans la phrase, "J'ai 25 ans et il a 11 mois", avec le suffixe défini sur ["années"] :
- Si
regexOnlya la valeur True, seul 25 est détecté car le suffixe "months" ne correspond pas au suffixe "years" indiqué. - Si
regexOnlya la valeur False, les valeurs 25 et 11 sont détectées, à savoir 25 dans la règle (en raison du suffixe "years") et 11 dans le modèle.
filterEntityTypesListe<String> Types d'entité OCI à filtrer. Par exemple, [PERSON, AGE] pour filtrer les types d'entité PERSON et AGE à partir des détections de modèle. Si le filtre est défini sur [ALL], toutes les entités détectées par le modèle sont filtrées.
Lorsque vous répertoriez
[All], la détection est basée surregexet ignore les entités de modèle prédéfinies.disableBoolean Affectez la valeur True pour désactiver cette règle. - Si
Exemples de fichiers de règles
[
{
"ruleId": "rule 1",
"regex": "([A-Z]{2}[0-9]{2}-[0-9]{3}-[0-9]{3}-[0-9]{3}\/[0-9]{3})",
"type": "NAREGA_ID",
"isCaseSensitive": true,
"suffix": ["id", "narega"],
"regexOnly": true,
"maxDistance": 10,
"priority": 2
},
{
"ruleId": "rule 2",
"regex": "([A-Z]{5}[0-9]{4}[A-Z]{3})",
"type": "PAN_CARD",
"prefix": ["pan", "pancard"],
"isCaseSensitive": false,
"regexOnly": false,
"maxDistance": 10,
"priority": 2,
"filterEntityTypes": ["PERSON"]
},
{
"ruleId": "rule 3",
"regex": "([A-Z]{4}[0-9]{7})",
"type": "IFSC_CODE",
"prefix": ["IFSC"],
"isCaseSensitive": false,
"regexOnly":false,
"maxDistance": 20,
"priority": 2,
"disable": false
},
{
"ruleId": "rule 4",
"regex": "([A-Z]{2}[0-9]{2}-[0-9]{3}-[0-9]{3}-[0-9]{3}\/[0-9]{3})",
"type": "TIRA_ID",
"isCaseSensitive": false,
"prefix": ["Narega"],
"regexOnly": false,
"maxDistance": 10,
"priority": 1
}
]