Riferimento file JSON schema
Alla creazione di un sistema orchestrato per le tabelle dell'applicazione di database, l'agente crea un schema.json nella directory dell'agente (<agent-volume>/data/schema) che mappa i dati di identità tra le tabelle di database integrate e Oracle Access Governance. Questo file può essere accettato così com'è o modificato dall'utente per configurare le entità e gli attributi mappati a Oracle Access Governance da considerare nelle campagne e nelle revisioni.
Flusso di ricerca automatica schema
Il flusso di ricerca automatica dello schema per le tabelle dell'applicazione di database è il seguente:
-
Day0: quando si crea il sistema orchestrato Tabelle applicazioni di database, il file
schema.jsoniniziale viene creato in base alle impostazioni di integrazione immesse. Il file dello schema viene creato con i dettagli delle tabelle e delle colonne contenenti i dati utente per le entità Account, Entitlement e Lookup. Le informazioni sulle relazioni vengono caricate dalla configurazione fornita, insieme a eventuali vincoli impostati nel database (chiavi principali ed estere). Il file JSON dello schema intermedio conterrà il mapping per i seguenti attributi per impostazione predefinita, se sono definiti. Per mappare attributi aggiuntivi è necessario modificare il fileschema.json:-
UID:
__UID__ -
Nome:
__NAME__ -
Stato:
__ENABLE__ -
Password:
__PASSWORD__
-
UID:
-
DayN: le attività DayN vengono eseguite in qualsiasi momento dopo aver generato il file JSON dello schema intermedio. Il file predefinito creato dall'agente può essere utilizzato per i test, ma non supporta il caricamento completo dei dati poiché porta solo UID e attributi di nome. Per il caricamento completo dei dati, è necessario modificare il file per determinare quali entità e attributi vengono passati a Oracle Access Governance. Per informazioni complete sulla struttura e sulle opzioni disponibili durante la modifica di
schema.json, fare riferimento a Riferimento file JSON schema.NotaDayN le attività possono includere quanto segue:
Dopo Day0 non è possibile eseguire di nuovo la ricerca automatica dello schema nel database di origine e generare un nuovo file di schema. Il file JSON dello schema che si trova con l'agente è l'origine della verità per le attività DayN e qualsiasi aggiornamento deve essere effettuato nel file.- Eseguire il caricamento dei dati con lo schema limitato. È possibile eseguire un caricamento dati di test con lo schema limitato generato in Day0. Ciò includerà solo, se disponibili, l'UID, il nome, lo stato e la password degli attributi.
-
Modifica file schema: è possibile modificare il file
schema.jsonper aggiornare i dettagli di account, abilitazione e ricerca, se necessario. Ecco alcuni motivi per cui potresti farlo:- Si desidera inserire attributi aggiuntivi a quelli predefiniti per uid, nome, stato e password. A tale scopo, impostare la proprietà
nameper qualsiasi attributo che si desidera includere. - Se si verifica una modifica nel database di origine, ciò dovrebbe riflettersi nel file di schema. Ad esempio, se si aggiunge una nuova colonna nella tabella ACCOUNT, tale colonna deve essere aggiunta al file di schema come attributo.
- Si desidera inserire attributi aggiuntivi a quelli predefiniti per uid, nome, stato e password. A tale scopo, impostare la proprietà
- È necessario eseguire un'operazione di ricerca automatica dello schema che recupererà le informazioni sugli attributi personalizzati più recenti. Per informazioni dettagliate sull'esecuzione di questa attività, vedere Recupera attributi personalizzati più recenti.
- Per applicare la trasformazione in uscita, è necessario aggiornarla dalla console di Oracle Access Governance. Qualsiasi regola di trasformazione applicata all'interno di
Schema.jsonnon verrà considerata. Per applicare la regola di trasformazione, vedere Applica trasformazioni in uscita per attributi di identità. Tuttavia, se si modifica l'attributo o si elimina un attributo inSchema.json, le regole di trasformazione, correlate a quel particolare attributo account, vengono eliminate durante l'operazione Ricerca automatica schema. - Eseguire le operazioni di caricamento e provisioning dei dati: utilizzando lo schema trovato, caricare i dati utente in Oracle Access Governance dal database integrato e consentire a Oracle Access Governance di eseguire il provisioning di account e autorizzazioni nel database integrato.
JSON schema intermedio
schema.json intermedio viene generato utilizzando tutte le informazioni disponibili dalla configurazione fornita durante la creazione del sistema orchestrato. Questo funge da modello a cui è possibile apportare modifiche che influiscono sui dati utente che è possibile inserire. La struttura del file schema.json intermedio è la seguente:{
"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
]
}
}
]
}
]
}
L'attributo
uiProperties è valido solo per i tipi di entità TARGETACCOUNT. Non deve essere utilizzato per i tipi di entità ACCOUNT, ENTITLEMENT o LOOKUP.- ACCOUNT: il tipo di entità ACCOUNT viene mappato all'entità Identità di Oracle Access Governance. Gli attributi del tipo di entità ACCOUNT vengono utilizzati per popolare un'identità in Oracle Access Governance.
- TARGETACCOUNT: il tipo di entità TARGETACCOUNT mappa l'entità Conto di Oracle Access Governance. Quando si esegue il provisioning di un conto nell'applicazione di database, gli attributi del tipo di entità ACCOUNT Oracle Access Governance verranno utilizzati per popolare l'entità di database TARGETACOUNT.
- ENTITLEMENT: ENTITLEMENT è mappato alla autorizzazione di Oracle Access Governance.
- LOOKUP: LOOKUP esegue il mapping alle informazioni di ricerca in Oracle Access Governance.
- La modalità selezionata è solo Origine autore:
- ACCOUNT e TARGETACCOUNT vengono generati nel file JSON dello schema.
- In Oracle Access Governance viene creata solo un'identità in base ai valori di ACCOUNT.
- TARGETACCOUNT può essere ignorato.
- La modalità selezionata è solo Managed System:
- ACCOUNT e TARGETACCOUNT vengono generati nel file JSON dello schema.
- In Oracle Access Governance viene creato solo un conto in base ai valori di TARGETACCOUNT.
- ACCOUNT può essere ignorato.
- La modalità selezionata è Origine affidabile e Sistema gestito.
- ACCOUNT e TARGETACCOUNT vengono generati nel file JSON dello schema.
- L'identità viene creata in Oracle Access Governance in base ai valori di ACCOUNT.
- L'account viene creato in Oracle Access Governance in base ai valori di TARGETACCOUNT.
Le abilitazioni concesse direttamente nelle tabelle di database, che vengono quindi caricate in Oracle Access Governance, non possono essere gestite da Oracle Access Governance quando il sistema orchestrato è configurato in modalità sistemi gestiti. Oracle Access Governance può gestire solo le abilitazioni che hanno origine in una richiesta di provisioning da Oracle Access Governance.
Attributi identità di base
Quando si eseguono le tabelle dell'applicazione di database in modalità di origine affidabile, è possibile inserire i dati utente dal database integrato in Oracle Access Governance, che viene utilizzato per creare un'identità Oracle Access Governance.
"nature": ["REQUIRED"] indica che un attributo deve essere NOT NULL nel database di origine. Ciò non significa che l'attributo debba essere incluso nella ricerca automatica dello schema, che è possibile includere o meno nello schema che si desidera integrare.[
{
"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"
]
}
]
Stato utente
Quando si eseguono le tabelle dell'applicazione di database in modalità di origine affidabile, è possibile inserire i dati utente dal database integrato in Oracle Access Governance, che viene utilizzato per creare un'identità Oracle Access Governance.
Quando si configura il sistema orchestrato, viene richiesta la colonna di database con lo stato di un record utente. Lo stato abilitato o disabilitato dell'utente in Oracle Access Governance. Queste informazioni vengono sempre acquisite durante il caricamento completo dei dati, indipendentemente dalla modalità configurata (origine autorevole o sistema gestito).
- Valore di stato abilitato per l'account utente: questo valore verrà impostato automaticamente su ACTIVE o può essere definito come qualsiasi valore di testo del database mappato allo stato abilitato in Oracle Access Governance. Alcuni esempi includono Y, Yes, true e così via.
- Valore di stato disabilitato per l'account utente: questo valore verrà impostato automaticamente su INACTIVE o può essere definito come qualsiasi valore di testo del database mappato allo stato disabilitato in Oracle Access Governance. Alcuni esempi includono N, No, false e così via.
- Se l'utente dispone di uno stato uguale al valore Conto utente disabilitato, l'utente verrà contrassegnato come disabilitato in Oracle Access Governance.
- Se l'utente ha un altro valore, si presume che sia abilitato e che l'utente sia contrassegnato come tale in Oracle Access Governance.
Aggiornamento del file JSON dello schema intermedio
È possibile aggiornare il file JSON dello schema intermedio per includere gli attributi nello schema di Oracle Access Governance.
Per includere o escludere gli attributi dello schema di Oracle Access Governance, considerare l'entità di esempio riportata di seguito, che mostra un esempio di entità ACCOUNT.
"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" ]
} ]
}, {
Inclusione di attributi nello schema
name e targetName per gli attributi elencati nell'esempio. Si noterà che in tutti i casi il parametro targetName viene popolato. Questo parametro viene mappato al nome della colonna nel database Oracle che contiene le informazioni sull'utente che si sta integrando. Quindi, ad esempio, abbiamo FIRSTNAME, LASTNAME, DESCRIPTION e così via. Tuttavia, il parametro name non viene sempre popolato. Questo perché il parametro name è correlato all'attributo nello schema sul lato di Oracle Access Governance. Se name è popolato, tale parametro viene incluso nello schema di Oracle Access Governance, ad esempio:"name" : "firstName",
"targetName" : "FIRSTNAME",Se name non viene popolato, il parametro non viene incluso nello schema di Oracle Access Governance. Nell'esempio sopra il parametro DESCRIPTION non è incluso:"name" : "",
"targetName" : "DESCRIPTION",
Inclusione delle tabelle di ricerca
Per includere tabelle di ricerca nello schema, utilizzare lo stesso metodo indicato in precedenza, impostando il parametro name nel file JSON dello schema. L'impostazione del parametro name includerà i dati di ricerca e li mapperà all'attributo Oracle Access Governance pertinente. Inoltre, se si include una tabella di ricerca, i valori verranno visualizzati in un elenco di valori quando si crea un nuovo bundle accessi.
"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 che contiene questo valore. Questo attributo deve avere una relazione di chiave esterna con la tabella ACCOUNT. Di seguito è riportato un esempio. "type" : "ACCOUNT",
"name" : "ACCOUNT",
"displayName" : "Account",
"attributes" : ...
{
"name" : "country",
"targetName" : "COUNTRYCODE",
"displayName" : "",
"dataType" : "TEXT",
"nature" : [ ],
"usage" : [ "READ" ],
"relationship" : {
"relatedTo" : "COUNTRY",
"relatedBy" : "COUNTRYCODE"
}
Mapping agli attributi principali e personalizzati
name, il valore targetName corrispondente viene mappato all'attributo core. Se name non è il nome di un attributo di base, il valore targetName viene mappato a un attributo personalizzato. Ad esempio, la colonna di database FIRSTNAME viene mappata all'attributo core firstName.{
"name" : "firstName",
"targetName" : "FIRSTNAME",
"displayName" : "",
"dataType" : "TEXT",
"nature" : [ ],
"usage" : [ "READ" ]
}mentre quanto segue mapperebbe FIRSTNAME a un attributo personalizzato denominato foreName
{
"name" : "foreName",
"targetName" : "FIRSTNAME",
"displayName" : "",
"dataType" : "TEXT",
"nature" : [ ],
"usage" : [ "READ" ]
}.