Verschleierung von personenbezogenen Daten

Im Allgemeinen müssen Unternehmen, die personenbezogene Daten verarbeiten, die Datenschutzbestimmungen der Gebiete einhalten, in denen sie tätig sind. So unterliegen beispielsweise in der Europäischen Union tätige Unternehmen der im jeweiligen Land gültigen Form der Datenschutz-Grundverordnung (DSGVO) halten.

Eine Möglichkeit, die Privatsphäre von Personen zu schützen, ist die Verschleierung von personenbezogenen Daten. Diese Lösung schränkt die Zugänglichkeit der jeweiligen personenbezogenen Daten ein und wird von den System-APIs unterstützt. Personenbezogene Daten können entweder durch Aufheben oder Maskieren verschleiert werden. Personenbezogene Daten gelten als aufgehoben, wenn deren Wert als Null angegeben wird. Personenbezogene Daten gelten als maskiert, wenn sie zum Teil mit Platzhalterzeichen angezeigt wird, z.B. wie „XXXXX-3213“ als Anzeige einer Kontonummer.

Aufheben von personenbezogenen Daten

Sie können den Rückgabewert von personenbezogenen Daten aufheben, indem Sie den Mapper für die relevante Ressourceneigenschaft ändern. Dies kann in einer Ressourcenerweiterung erfolgen. Details zu Ressourcenerweiterungen finden Sie unter Erweitern von System-API-Ressourcen.

Das Schema für die ClaimContact-Ressource enthält eine taxId-Eigenschaft:

Beispiel: Ein Schadenfall hat ClaimContacts. Je nach Geschäftszweck kann es erforderlich gewesen sein, Steuerkennungsinformationen für einen ClaimContact zu erhalten. Später kann ein System-API-Aufrufer den ClaimContact anfordern und dann die Steuernummer des Kontakts in der Antwort anzeigen. Um die Offenlegung dieser Daten zu verhindern, können Sie den Wert im Ressourcen-Mapper aufheben.

"ClaimContact": {
  "type": "object",
  "x-gw-extensions": {
    "discriminatorProperty": "contactSubtype"
  },
  "properties": {
    . . .
    "taxId": {
      "type": "string"
    },
    . . .
  }
}

Um den Wert der Eigenschaft taxId aufzuheben, können Sie diese Eigenschaft im ClaimContact-Mapper wie folgt ändern:

"ClaimContact": {
  "schemaDefinition": "ClaimContact",
  "root": "entity.ClaimContact",
  "properties": {
    . . .
    "taxId": {
      "path": "null as String",
      "predicate": "false"
    },
    . . .
  }
}

Wenn die Eigenschaft taxId.path auf „null as String“ gesetzt wird, wird der erwartete Wert in eine Nullzeichenfolge umgewandelt. Wenn taxId.predicate auf „false“ gesetzt wird, wird verhindert, dass der ursprüngliche Wert, in diesem Fall die personenbezogenen Daten, ausgewertet wird.

Maskieren von personenbezogenen Daten

Sie können den Rückgabewert von personenbezogenen Daten maskieren, indem Sie eine Gosu-Methode schreiben und den Mapper für die relevante Ressourceneigenschaft ändern, um diese Methode zu verwenden. Details zur Implementierung von Gosu-Code entnehmen Sie dem Konfigurationshandbuch. Der Mapper kann über eine Ressourcenerweiterung geändert werden. Details zum Erweitern von Ressourcen finden Sie unter Erweitern von System-API-Ressourcen.

Beispiel: Ein Schadenfall hat ClaimContacts. Je nach Geschäftszweck kann es erforderlich gewesen sein, Steuerkennungsinformationen für einen ClaimContact zu erhalten. Später kann ein System-API-Aufrufer den ClaimContact anfordern und dann die Steuernummer des Kontakts in der Antwort anzeigen. Um die Offenlegung dieser Daten einzuschränken, können Sie diesen Wert maskieren.

Das Schema für die ClaimContact-Ressource enthält eine taxId-Eigenschaft:

"ClaimContact": {
  "type": "object",
  "x-gw-extensions": {
    "discriminatorProperty": "contactSubtype"
  },
  "properties": {
    . . .
    "taxId": {
      "type": "string"
    },
    . . .
  }
}

Diese Eigenschaft ist dem Feld TaxID der ClaimContact.Contact-Entität zugeordnet. Sie müssen eine Gosu-Methode für diese Entität erstellen, welche die Steuernummer-Zeichenfolge maskiert. In diesen Beispiel heißt die Methode maskTaxId.

Anschließend ändern Sie die Eigenschaft taxId im ClaimContact-Mapper wie folgt:

"ClaimContact": {
  "schemaDefinition": "ClaimContact",
  "root": "entity.ClaimContact",
  "properties": {
    . . .
    "taxId": {
      "path": "ClaimContact.Contact.maskTaxId(ClaimContact.Contact.TaxID)"
    },
    . . .
  }
}

Wenn die Eigenschaft taxId.path auf ClaimContact.Contact.maskTaxId(ClaimContact.Contact.TaxID) festgelegt ist, wird der Wert von TaxID über die maskTaxId-Methode übergeben, bevor er dem Aufrufer angezeigt wird.

Ändern des Maskierungsmusters

Um das auf eine Ressourceneigenschaft angewendete Maskierungsmuster zu ändern, können Sie entweder die vorhandene Gosu-Maskierungsmethode überarbeiten oder eine neue schreiben.

Entfernen der Maskierung von personenbezogenen Daten

Umgekehrt können Sie für die in der Basiskonfiguration maskierten personenbezogenen Daten die Maskierung entfernen. Dies kann erforderlich sein, wenn Sie die personenbezogenen Daten einer bestimmten internen Rolle, z. B. einem Administrator, verfügbar machen müssen. Unter diesen Umständen empfiehlt Guidewire, dass Sie eine neue Schemaerweiterung für die maskierte Eigenschaft erstellen. Wenn Sie beispielsweise die Maskierung der taxId-Eigenschaft entfernen möchten, erstellen Sie eine taxIdUnmasked_Ext-Schemaeigenschaft, die direkt dem TaxID-Entitätsfeld zugeordnet wird. In diesem Fall empfiehlt Guidewire, dass Sie auch die erweiterte Eigenschaft auflisten lassen, damit sie nur für autorisierte Rollen sichtbar ist. Details zum Erstellen von Ressourcenerweiterungen finden Sie unter Erweitern von System-API-Ressourcen. Details zu zulässigen Listenfeldern finden Sie im Abschnitt zu API-Rollendateien in Cloud-API-Authentifizierungshandbuch.

Wichtig: Nichts in der Cloud-API-Infrastruktur verhindert eine Konfiguration, die personenbezogene Daten auf sensible Weise verfügbar machen könnte. Wenn Sie z. B. taxId als filterbaren Parameter oder als sortierbare Variable angeben, kann es als Teil der URL in einer Anforderung enthalten sein und wird eher in Anwendungsprotokollen angezeigt.