Schemareferenz für JSON-Datei

Beim Erstellen eines orchestrierten Systems für Datenbankanwendungstabellen erstellt der Agent eine schema.json im Agent-Verzeichnis (<agent-volume>/data/schema), in der Identitätsdaten zwischen den integrierten Datenbanktabellen und Oracle Access Governance zugeordnet werden. Diese Datei kann unverändert akzeptiert oder von Ihnen geändert werden, um zu konfigurieren, welche Entitys und Attribute Oracle Access Governance zugeordnet sind, um sie in Kampagnen und Prüfungen zu berücksichtigen.

Schema-Discovery-Ablauf

Der Schema-Discovery-Ablauf für Datenbankanwendungstabellen lautet wie folgt:

  1. Day0: Wenn Sie das orchestrierte System der Datenbankanwendungstabellen erstellen, wird die anfängliche Datei schema.json basierend auf den von Ihnen eingegebenen Integrationseinstellungen erstellt. Die Schemadatei wird mit Details von Tabellen und Spalten erstellt, die Benutzerdaten für Firmen-, Berechtigungs- und Lookup-Entitys enthalten. Beziehungsinformationen werden zusammen mit den in der Datenbank festgelegten Constraints (Primäre und Fremdschlüssel) aus der angegebenen Konfiguration geladen. Die JSON-Zwischenschemadatei enthält standardmäßig eine Zuordnung für die folgenden Attribute, sofern sie definiert sind. Um zusätzliche Attribute zuzuordnen, müssen Sie die Datei schema.json bearbeiten:
    • UID: __UID__
    • Name: __NAME__
    • Status: __ENABLE__
    • Kennwort: __PASSWORD__
  2. DayN: DayN-Aktivitäten finden zu einem beliebigen Zeitpunkt statt, nachdem Sie die JSON-Zwischenschemadatei generiert haben. Die vom Agent erstellte Standarddatei kann zum Testen verwendet werden, unterstützt jedoch keinen vollständigen Dataload, da sie nur UID- und Namensattribute enthält. Für den vollständigen Dataload müssen Sie die Datei bearbeiten, um zu bestimmen, welche Entitys und Attribute an Oracle Access Governance übergeben werden. Ausführliche Informationen zur Struktur und zu den Optionen, die beim Bearbeiten von schema.json verfügbar sind, finden Sie unter Schema-JSON-Dateireferenz.
    Hinweis

    Nach Day0 können Sie die Schema-Discovery nicht erneut für die Quelldatenbank ausführen und eine neue Schemadatei generieren. Die Schema-JSON-Datei, die sich bei Ihrem Agent befindet, ist die Source of Truth für DayN-Aktivitäten. Alle Aktualisierungen müssen in der Datei vorgenommen werden.
    Die DayN-Aktivitäten können Folgendes umfassen:
    1. Führen Sie Dataload mit dem begrenzten Schema aus. Sie können einen Testdataload mit dem begrenzten Schema ausführen, das auf Day0 generiert wird. Dazu gehören, sofern verfügbar, nur die Attribute uid, name, status und password.
    2. Schemadatei ändern: Sie können die Datei schema.json ändern, um bei Bedarf Account-, Berechtigungs- und Lookup-Details zu aktualisieren. Einige Gründe, warum Sie dies tun können:
      • Sie möchten Attribute zusätzlich zu den standardmäßigen UID-, Name-, Status- und Kennwortattributen integrieren. Legen Sie dazu die Eigenschaft name für alle Attribute fest, die eingeschlossen werden sollen.
      • Wenn sich die Quelldatenbank ändert, sollte dies in der Schemadatei widergespiegelt werden. Beispiel: Wenn Sie der Tabelle ACCOUNT eine neue Spalte hinzufügen, muss diese der Schemadatei als Attribut hinzugefügt werden.
    3. Sie müssen einen Schema-Discovery-Vorgang ausführen, der die neuesten benutzerdefinierten Attributinformationen abruft. Einzelheiten zum Ausführen dieser Aufgabe finden Sie unter Letzte benutzerdefinierte Attribute abrufen.
    4. Um die ausgehende Transformation anzuwenden, müssen Sie sie über die Oracle Access Governance-Konsole aktualisieren. In Schema.json angewendete Transformationsregeln werden nicht berücksichtigt. Informationen zum Anwenden von Transformationsregeln finden Sie unter Ausgehende Transformationen für Identitätsattribute anwenden. Wenn Sie jedoch das Attribut ändern oder ein Attribut in Schema.json löschen, werden die Transformationsregeln, die sich auf dieses bestimmte Accountattribut beziehen, während des Schema-Discovery-Vorgangs gelöscht.
    5. Dataload- und Provisioning-Vorgänge ausführen: Mit dem erkannten Schema laden Sie Benutzerdaten aus der integrierten Datenbank in Oracle Access Governance, und Oracle Access Governance kann Accounts und Berechtigungen in der integrierten Datenbank bereitstellen.

Zwischenschema-JSON

Die schema.json-Zwischendatei wird mit allen Informationen generiert, die in der Konfiguration verfügbar sind, die Sie während der orchestrierten Systemerstellung angeben. Dies dient als Vorlage, in der Sie alle Änderungen vornehmen können, die sich auf die Benutzerdaten auswirken, die Sie an Bord vornehmen können. Die Struktur der schema.json-Zwischendatei lautet wie folgt:
{
 "schemaTemplates":[
    {
        "type": "", // Type of entity "ACCOUNT", "ENTITLEMENT", "TARGETACCOUNT" or "LOOKUP"
        "name": "", // Name of entity
        "displayName": "", // display name of entity
        "data": {
            // Key-value pairs representing static lookup data if any, or else it will be missing from here.
        }
        "attributes": [
            {
                "name": "", // AG side Name of attribute
                "targetName": "", // Target side name of attribute
                "displayName": "" // Optional display name for the attribute which will be given priority if provided, else attribute name will be used for display name.
                "dataType": "", // Either of TEXT, DATE, NUMBER, DECIMAL_NUMBER, FLAG
                "nature": [ // One or more of "REQUIRED", "MULTIVALUED", "SENSITIVE". It can be missing from here if nothing applies.
                ],
                "usage": [ // One or more of "READ", "PROVISION". It can be missing from here if nothing applies.
                ],
                "relationship": { // Entity relationship details
                    "relatedTo": "", // Entity name in relationship with
                    "relatedBy": "", // Attribute to define the relation
                    "relationshipProperties": [ // Additional relationship properties
                        {
                            "name": "", // Name of additional attribute
                            "dataType": "", // Either of TEXT, DATE, NUMBER, DECIMAL_NUMBER, FLAG
                            "nature": [ // Only READ_ONLY is possible, or else it will be missing from here
                            ],
                            "uiProperties": { // ARMD if applicable, or it will be missing from here
                                "inputType": "" // Either of Auto, User, Admin
                                "widget": "", // Widget to use on UI i.e. Either of Text, Password, Number, Date, SelectOne, RepeatableFieldSet, CheckboxSet
                                "title": "", // Title to use on UI
                                "labelHint": "", // Labelhint to use on UI
                                "minLength": {SOME_POSITIVE_NUMBER},
                                "maxLength": {SOME_POSITIVE_NUMBER},
                                "defaultValues": [ // Default values if applicable, or it will be missing from here
                                ]
                            }
                        }
                    ]
                },
                "outboundTransformation": { // Outbound transformation script if applicable, or it will be missing from here
                    "script": "" // Script to execute for transformation
                },
                "uiProperties": { // ARMD if applicable, or it will be missing from here
                    "inputType": "" // Either of Auto, User, Admin
                    "widget": "", // Widget to use on UI i.e. Either of Text, Password, Number, Date, SelectOne, RepeatableFieldSet, CheckboxSet
                    "title": "", // Title to use on UI
                    "labelHint": "", // Labelhint to use on UI
                    "minLength": {SOME_POSITIVE_NUMBER},
                    "maxLength": {SOME_POSITIVE_NUMBER},
                    "defaultValues": [ // Default values if applicable, or it will be missing from here
                    ]
                }
            }
        ]
    }
  ]
}
Hinweis

Das Attribut uiProperties ist nur für TARGETACCOUNT-Entitytypen im Geltungsbereich. Sie darf nicht für ACCOUNT-, ENTITLEMENT- oder LOOKUP-Entitytypen verwendet werden.
Das Schema kann Entitys aus den folgenden Typen enthalten:
  • KONTO: Der ACCOUNT-Entitytyp wird der Oracle Access Governance Identity-Entity zugeordnet. Attribute aus dem ACCOUNT-Entitytyp werden verwendet, um eine Identität in Oracle Access Governance aufzufüllen.
  • TARGETACCOUNT: Der Entitytyp TARGETACCOUNT ordnet die Oracle Access Governance Account-Entity zu. Wenn Sie einen ACCOUNT in der Datenbankanwendung bereitstellen, werden Attribute aus dem Entitytyp ACCOUNT Oracle Access Governance zum Auffüllen der TARGETACOUNT-Datenbankentity verwendet.
  • VERZEICHNIS: ENTITLEMENT wird Oracle Access Governance Berechtigung zugeordnet.
  • LOOKUP: LOOKUP wird LOOKUP-Informationen in Oracle Access Governance zugeordnet.
Wenn das JSON-Zwischenschema generiert wird, werden ACCOUNT und TARGETACCOUNT für jeden Benutzer in den Datenbanktabellen aufgefüllt. Dies geschieht unabhängig davon, in welchem Modus Sie das orchestrierte System, die autoritative Quelle und/oder das verwaltete System konfigurieren. Wenn der Dataload jedoch ausgeführt wird, gelten die folgenden Regeln, welche dieser Entitäten tatsächlich in Oracle Access Governance erstellt werden.
  1. Der ausgewählte Modus ist nur Autoritative Quelle:
    • ACCOUNT und TARGETACCOUNT werden im Schema-JSON generiert.
    • In Oracle Access Governance wird nur eine Identität basierend auf den Werten von ACCOUNT erstellt.
    • TARGETACCOUNT kann ignoriert werden.
  2. Der ausgewählte Modus ist nur Verwaltetes System:
    • ACCOUNT und TARGETACCOUNT werden im Schema-JSON generiert.
    • In Oracle Access Governance wird nur ein Account basierend auf den Werten von TARGETACCOUNT erstellt.
    • ACCOUNT kann ignoriert werden.
  3. Der ausgewählte Modus ist Autoritative Quelle und Verwaltetes System.
    • ACCOUNT und TARGETACCOUNT werden im Schema-JSON generiert.
    • Identität wird in Oracle Access Governance basierend auf den Werten von ACCOUNT erstellt.
    • Account wird in Oracle Access Governance basierend auf den Werten von TARGETACCOUNT erstellt.
Hinweis

Alle Berechtigungen, die direkt in den Datenbanktabellen erteilt werden und dann in Oracle Access Governance geladen werden, können nicht von Oracle Access Governance verwaltet werden, wenn das orchestrierte System im Modus "Verwaltete Systeme" konfiguriert ist. Nur Berechtigungen, die aus einer Provisioning-Anforderung von Oracle Access Governance stammen, können von Oracle Access Governance verwaltet werden.

Kernidentitätsattribute

Wenn Sie Datenbankanwendungstabellen im Authoritative-Source-Modus ausführen, können Sie Benutzerdaten aus der integrierten Datenbank in Oracle Access Governance integrieren, mit der eine Oracle Access Governance-Identität erstellt wird.

Die Liste der Kernattribute, die einer Oracle Access Governance-Identität zugewiesen werden können, wird unten angezeigt. Das Element "nature": ["REQUIRED"] gibt an, dass ein Attribut in der Quelldatenbank NOT NULL sein muss. Dies bedeutet nicht, dass das Attribut in der Schema-Discovery enthalten sein muss. Sie können es in das Schema aufnehmen, das Sie integrieren möchten.
[
  {
    "name": "uid",
    "dataType": "TEXT",
    "nature": [
      "REQUIRED"
    ],
    "usage": [
      "READ"
    ]
  },
  {
    "name": "name",
    "dataType": "TEXT",
    "nature": [
      "REQUIRED"
    ],
    "usage": [
      "READ"
    ]
  },
  {
    "name": "email",
    "dataType": "TEXT",
    "nature": [
      "REQUIRED"
    ],
    "usage": [
      "READ"
    ]
  },
  {
    "name": "firstName",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "middleName",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "lastName",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "displayName",
    "dataType": "TEXT",
    "nature": [
      "REQUIRED"
    ],
    "usage": [
      "READ"
    ]
  },
  {
    "name": "employeeType",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "title",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "empNo",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "status",
    "dataType": "FLAG",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "jobCode",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "state",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "risk",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "location",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "department",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "managerUid",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "managerLogin",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "organizationUid",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "organizationName",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "country",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "postalCode",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  },
  {
    "name": "territory",
    "dataType": "TEXT",
    "usage": [
      "READ"
    ]
  }
]

Benutzerstatus

Wenn Sie Datenbankanwendungstabellen im Authoritative-Source-Modus ausführen, können Sie Benutzerdaten aus der integrierten Datenbank in Oracle Access Governance integrieren, mit der eine Oracle Access Governance-Identität erstellt wird.

Wenn Sie das orchestrierte System konfigurieren, werden Sie zur Eingabe der Datenbankspalte aufgefordert, die den Status eines Benutzerdatensatzes enthält. Diese Spalte gibt an, ob der Benutzer in Oracle Access Governance aktiviert oder deaktiviert ist. Diese Informationen werden immer während des vollständigen Dataloads erfasst, unabhängig vom konfigurierten Modus (autoritative Quelle oder verwaltetes System).

Außerdem konfigurieren Sie die folgenden booleschen Werte für den Status "Aktiviert/Deaktiviert":
  • Statuswert für aktivierten Benutzeraccount: Dieser Wert wird standardmäßig auf ACTIVE gesetzt oder kann als beliebiger Textwert aus der Datenbank definiert werden, der einem Status "Aktiviert" in Oracle Access Governance zugeordnet ist. Einige Beispiele sind Y, Yes, true usw.
  • Statuswert "Benutzeraccount deaktiviert": Dieser Wert ist standardmäßig INACTIVE oder kann als beliebiger Textwert aus der Datenbank definiert werden, der dem Status "Deaktiviert" in Oracle Access Governance zugeordnet ist. Einige Beispiele sind N, No, false usw.
Für die Zuordnung vom Datenbankwert zum Status "Oracle Access Governance aktiviert/deaktiviert" wird die folgende Logik verwendet:
  • Wenn der Benutzer einen Status hat, der dem Wert für den Status Benutzeraccount deaktiviert entspricht, wird der Benutzer in Oracle Access Governance als deaktiviert markiert.
  • Wenn der Benutzer einen anderen Wert hat, wird davon ausgegangen, dass der Benutzer aktiviert ist und der Benutzer in Oracle Access Governance als solcher markiert ist.

JSON-Datei für Zwischenschema aktualisieren

Sie können die JSON-Zwischenschemadatei aktualisieren, um Attribute in das Oracle Access Governance-Schema aufzunehmen.

Um Oracle Access Governance-Schemaattribute ein- oder auszuschließen, betrachten Sie die folgende Beispielentität, die ein Beispiel für eine ACCOUNT-Entity zeigt:

    "type" : "ACCOUNT",
    "name" : "ACCOUNT",
    "displayName" : "Account",
    "attributes" : [ {
      "name" : "joiningDate",
      "targetName" : "JOININGDATE",
      "displayName" : "",
      "dataType" : "DATE",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "",
      "targetName" : "LASTUPDATED",
      "displayName" : "",
      "dataType" : "DATE",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "firstName",
      "targetName" : "FIRSTNAME",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "email",
      "targetName" : "EMAIL",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "REQUIRED" ],
      "usage" : [ "READ" ]
    }, {
      "name" : "name",
      "targetName" : "__NAME__",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "REQUIRED" ],
      "usage" : [ "READ" ]
    }, {
      "name" : "uid",
      "targetName" : "__UID__",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "REQUIRED" ],
      "usage" : [ "READ" ]
    }, {
      "name" : "status",
      "targetName" : "__ENABLE__",
      "displayName" : "",
      "dataType" : "FLAG",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "salary",
      "targetName" : "SALARY",
      "displayName" : "",
      "dataType" : "DECIMAL_NUMBER",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "password",
      "targetName" : "__PASSWORD__",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "SENSITIVE" ],
      "usage" : [ ]
    }, {
      "name" : "country",
      "targetName" : "COUNTRYCODE",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ],
      "relationship" : {
        "relatedTo" : "A_COUNTRY",
        "relatedBy" : "COUNTRYCODE"
      }
    }, {
      "name" : "",
      "targetName" : "DESCRIPTION",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }, {
      "name" : "lastName",
      "targetName" : "LASTNAME",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ]
    } ]
  }, {

Attribute in das Schema aufnehmen

Beachten Sie die Parameter name und targetName für die im Beispiel aufgeführten Attribute. Sie sehen, dass in allen Fällen der Parameter targetName aufgefüllt ist. Dies liegt daran, dass dieser Parameter dem Spaltennamen in der Oracle-Datenbank zugeordnet ist, der die Benutzerinformationen enthält, die Sie integrieren. Beispiel: FIRSTNAME, LASTNAME, DESCRIPTION usw. Der Parameter name wird jedoch nicht immer aufgefüllt. Der Grund dafür ist, dass der Parameter name mit dem Attribut im Schema auf der Oracle Access Governance-Seite korreliert. Wenn name aufgefüllt ist, ist dieser Parameter im Oracle Access Governance-Schema enthalten. Beispiel:
"name" : "firstName",
"targetName" : "FIRSTNAME",
Wenn name nicht aufgefüllt ist, ist dieser Parameter nicht im Oracle Access Governance-Schema enthalten. Im Beispiel oben ist der Parameter DESCRIPTION nicht enthalten:
"name" : "",
"targetName" : "DESCRIPTION",

Lookup-Tabellen einschließen

Um Lookup-Tabellen in Ihr Schema einzuschließen, verwenden Sie dieselbe Methode wie oben, indem Sie den Parameter name in Ihrer Schema-JSON-Datei festlegen. Wenn Sie den Parameter name festlegen, werden alle Lookup-Daten eingeschlossen und dem entsprechenden Oracle Access Governance-Attribut zugeordnet. Wenn Sie außerdem eine Lookup-Tabelle einschließen, werden die Werte beim Erstellen eines neuen Zugriffs-Bundles in einer Werteliste angezeigt.

    "type" : "LOOKUP",
    "name" : "COUNTRY",
    "displayName" : "Country",
    "attributes" : [ {
      "name" : "uid",
      "targetName" : "__UID__",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "REQUIRED" ],
      "usage" : [ "READ" ]
    }, {
      "name" : "name",
      "targetName" : "__NAME__",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ "REQUIRED" ],
      "usage" : [ "READ" ]
    } ]
  }
Außerdem sollten Sie ein Feld in Ihrer Haupt-ACCOUNT-Tabelle erstellen, das den Wert aus Ihrem Lookup enthält. In diesem Beispiel können Sie ein Attribut wie account.homeCountry verwenden, das diesen Wert enthält. Dieses Attribut muss eine Fremdschlüsselbeziehung zu Ihrer ACCOUNT-Tabelle aufweisen. Beispiel:
    "type" : "ACCOUNT",
    "name" : "ACCOUNT",
    "displayName" : "Account",
    "attributes" : ...
{
      "name" : "country",
      "targetName" : "COUNTRYCODE",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ],
      "relationship" : {
        "relatedTo" : "COUNTRY",
        "relatedBy" : "COUNTRYCODE"
      }

Core- und benutzerdefinierte Attribute zuordnen

Sie können bestimmen, ob ein Parameter einem Core-Attribut oder einem benutzerdefinierten Attribut zugeordnet ist. Wenn Sie den Core-Attributnamen in der name verwenden, wird der entsprechende targetName-Wert dem Core-Attribut zugeordnet. Wenn name nicht der Name eines Core-Attributs ist, wird der Wert targetName einem benutzerdefinierten Attribut zugeordnet. Beispiel: Im Folgenden wird die Datenbankspalte FIRSTNAME dem Core-Attribut firstName zugeordnet.
{
      "name" : "firstName",
      "targetName" : "FIRSTNAME",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }
während Folgendes FIRSTNAME einem benutzerdefinierten Attribut mit dem Namen foreName zuordnen würde
{
      "name" : "foreName",
      "targetName" : "FIRSTNAME",
      "displayName" : "",
      "dataType" : "TEXT",
      "nature" : [ ],
      "usage" : [ "READ" ]
    }
.