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:
-
Day0: Wenn Sie das orchestrierte System der Datenbankanwendungstabellen erstellen, wird die anfängliche Datei
schema.jsonbasierend 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 Dateischema.jsonbearbeiten:-
UID:
__UID__ -
Name:
__NAME__ -
Status:
__ENABLE__ -
Kennwort:
__PASSWORD__
-
UID:
-
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.jsonverfügbar sind, finden Sie unter Schema-JSON-Dateireferenz.HinweisDie DayN-Aktivitäten können Folgendes umfassen:
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.- 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.
-
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
namefü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.
- Sie möchten Attribute zusätzlich zu den standardmäßigen UID-, Name-, Status- und Kennwortattributen integrieren. Legen Sie dazu die Eigenschaft
- 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.
- Um die ausgehende Transformation anzuwenden, müssen Sie sie über die Oracle Access Governance-Konsole aktualisieren. In
Schema.jsonangewendete 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 inSchema.jsonlöschen, werden die Transformationsregeln, die sich auf dieses bestimmte Accountattribut beziehen, während des Schema-Discovery-Vorgangs gelöscht. - 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
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
]
}
}
]
}
]
}
Das Attribut
uiProperties ist nur für TARGETACCOUNT-Entitytypen im Geltungsbereich. Sie darf nicht für ACCOUNT-, ENTITLEMENT- oder LOOKUP-Entitytypen verwendet werden.- 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.
- 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.
- 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.
- 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.
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.
"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).
- 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.
- 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
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" ]
} ]
}
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
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" ]
}.