Skip to content

Update DBAT OS sample for Oracle DB 19c deployments #1926

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ At the time of writing, this capability is not offered natively in OAG.

The described integration and data can be used for all supported user/account lifecycle operations in OAG, including use in access certification. Note that this simulates a connected system, therefore changes to OS level user access will be reflected in the targeted database tables.

Review Date: 10.02.2025
Review Date: 04.08.2025

# When to use this asset?

Expand All @@ -29,11 +29,20 @@ Please ensure the requirements listed above have been satisfied.

1. Connect to the database as dba (with sysdba role) and create a schema user for the purposes of the integration, by running:

**Note:** Please adjust the provided sample sizes and naming as needed.

```
CREATE TABLESPACE oagts
DATAFILE 'oagts.dat'
SIZE 100M
REUSE
AUTOEXTEND ON NEXT 100M MAXSIZE 500M;

CREATE USER OAG IDENTIFIED BY <your_secure_password>
DEFAULT TABLESPACE oagts
TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON oagts;
DEFAULT TABLESPACE oagts
TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON oagts;

GRANT CREATE SESSION TO OAG;
GRANT SELECT on dba_role_privs TO OAG;
GRANT SELECT on dba_sys_privs TO OAG;
GRANT SELECT on dba_ts_quotas TO OAG;
Expand Down Expand Up @@ -62,7 +71,7 @@ GRANT DROP ANY PROCEDURE TO OAG;
1. Go to **Service Administration -> Manage orchestrated systems**.
2. Click on **+ Add an Orchestrated system**.
3. In the **Select System** step, pick `Database Application Table (Oracle DB)`, and click on Next.
4. In the **Enter Details** step, enter the details provided below. Optionally untick `This is the authoritative source for my identities.` should you want to create the identities through other means, otherwise, for the purposes of this example, the identities will be imported using data from the **OS_ACCOUNT** table. Click on Next.
4. In the **Enter Details** step, enter the details provided below. Ensure the `I want to manage permissions for this system.`option **is ticked**. Optionally, ensure the `This is the authoritative source for my identities.` option remains unticked should you want to create the identities through other means, **otherwise please tick it** to ensure that for the purposes of this example the identities will be imported using data from the **OS_ACCOUNT** table. Click on Next.

```
What do you want to call this system?: OS Account
Expand All @@ -82,9 +91,8 @@ Confirm password: <your_secure_password>
User account table name: OS_ACCOUNT
Permissions tables: OS_HOST
Account permission tables: OS_ACCOUNT_HOST
Lookup tables: OS_COUNTRY
Key column mappings: OS_ACCOUNT:USERID,OS_HOST:HOSTID,OS_COUNTRY:COUNTRYCODE
Name column mappings: OS_ACCOUNT:USERNAME,OS_HOST:HOSTNAME,OS_COUNTRY:COUNTRYNAME
Key column mappings: OS_ACCOUNT:USERID,OS_HOST:HOSTID
Name column mappings: OS_ACCOUNT:USERNAME,OS_HOST:HOSTNAME
User account table password column mapping: OS_ACCOUNT:PASSWORD
User account table status column mapping: OS_ACCOUNT:STATUS
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,6 @@
* SOFTWARE.
*******************************************************************************/

CREATE TABLE OS_COUNTRY
(COUNTRYCODE VARCHAR2(32 BYTE) NOT NULL ENABLE,
COUNTRYNAME VARCHAR2(255 BYTE) NOT NULL ENABLE,
CONSTRAINT OSCOUNTRY_PK PRIMARY KEY (COUNTRYCODE));

CREATE TABLE OS_ACCOUNT
(USERID VARCHAR2(255 BYTE) NOT NULL ENABLE,
USERNAME VARCHAR2(255 BYTE) NOT NULL ENABLE,
Expand All @@ -53,9 +48,7 @@ CREATE TABLE OS_ACCOUNT
EMAIL VARCHAR2(255 BYTE) NOT NULL ENABLE,
PROVISIONDATE DATE,
STATUS VARCHAR2(32 BYTE),
COUNTRYCODE VARCHAR2(32 BYTE),
CONSTRAINT OSACCOUNT_PK PRIMARY KEY (USERID),
CONSTRAINT OSCOUNTRY_FK FOREIGN KEY(COUNTRYCODE) REFERENCES OS_COUNTRY(COUNTRYCODE) ON DELETE CASCADE);
CONSTRAINT OSACCOUNT_PK PRIMARY KEY (USERID));

CREATE TABLE OS_HOST
(HOSTID VARCHAR2(255 BYTE) NOT NULL ENABLE,
Expand All @@ -73,50 +66,48 @@ CREATE TABLE OS_ACCOUNT_HOST
Included names and dates are randomly generated and used fictitiously.
Any resemblance to locales or persons, living or dead, is entirely coincidental. */

INSERT INTO OS_COUNTRY (COUNTRYCODE,COUNTRYNAME) values ('DE', 'Germany');
INSERT INTO OS_COUNTRY (COUNTRYCODE,COUNTRYNAME) values ('AT', 'Austria');
INSERT INTO OS_COUNTRY (COUNTRYCODE,COUNTRYNAME) values ('CH', 'Switzerland');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('BFRANK','BFRANK','Bernd','Frank','','bernd.frank@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('DSTAUSS','DSTAUSS','Dirk','Stauss','','dirk.stauss@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('DJONES','DJONES','Dora','Jones','','dora.jones@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('EBRANDT','EBRANDT','Ewald','Brandt','','ewald.brandt@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('GKLEIN','GKLEIN','Gerrit','Klein','','gerrit.klein@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('GVOGT','GVOGT','Gitta','Vogt','','gitta.vogt@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('HSCHUMACHER','HSCHUMACHER','Helene','Schumacher','','helene.schumacher@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('LSCHULTE','LSCHULTE','Lothur','Schulte','','lothur.schulte@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('LDERICHS','LDERICHS','Lutz','Derichs','','lutz.derichs@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('RPROTZ','RPROTZ','Rosemarie','Protz','','rosemarie.protz@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS) VALUES ('WSCHUBERT','WSCHUBERT','Wolf','Schubert','','wolf.schubert@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE');

INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('BFRANK','BFRANK','Bernd','Frank',,'bernd.frank@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','DE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('DSTAUSS','DSTAUSS','Dirk','Stauss',,'dirk.stauss@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','AT');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('DJONES','DJONES','Dora','Jones',,'dora.jones@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','DE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('EBRANDT','EBRANDT','Ewald','Brandt',,'ewald.brandt@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','CH');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('GKLEIN','GKLEIN','Gerrit','Klein',,'gerrit.klein@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','DE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('GVOGT','GVOGT','Gitta','Vogt',,'gitta.vogt@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','CH');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('HSCHUMACHER','HSCHUMACHER','Helene','Schumacher',,'helene.schumacher@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','DE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('LSCHULTE','LSCHULTE','Lothur','Schulte',,'lothur.schulte@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','AT');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('LDERICHS','LDERICHS','Lutz','Derichs',,'lutz.derichs@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','AT');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('RPROTZ','RPROTZ','Rosemarie','Protz',,'rosemarie.protz@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','DE');
INSERT INTO OS_ACCOUNT (USERID,USERNAME,FIRSTNAME,LASTNAME,PASSWORD,EMAIL,PROVISIONDATE,STATUS,COUNTRYCODE) values ('WSCHUBERT','WSCHUBERT','Wolf','Schubert',,'wolf.schubert@oracledemo.com',to_date('24-OCT-24','DD-MON-RR'),'ACTIVE','DE');
INSERT INTO OS_HOST (HOSTID,HOSTNAME) VALUES ('host001','unixhost1');
INSERT INTO OS_HOST (HOSTID,HOSTNAME) VALUES ('host002','unixhost2');
INSERT INTO OS_HOST (HOSTID,HOSTNAME) VALUES ('host003','linuxhost1');
INSERT INTO OS_HOST (HOSTID,HOSTNAME) VALUES ('host004','linuxhost2');

INSERT INTO OS_HOST (HOSTID,HOSTNAME) values ('host001','unixhost1');
INSERT INTO OS_HOST (HOSTID,HOSTNAME) values ('host002','unixhost2');
INSERT INTO OS_HOST (HOSTID,HOSTNAME) values ('host003','linuxhost1');
INSERT INTO OS_HOST (HOSTID,HOSTNAME) values ('host004','linuxhost2');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('BFRANK','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('BFRANK','host002');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('BFRANK','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('DJONES','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('DJONES','host002');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('DJONES','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('DSTAUSS','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('DSTAUSS','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('EBRANDT','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('EBRANDT','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('GKLEIN','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('GKLEIN','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('GKLEIN','host004');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('GVOGT','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('GVOGT','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('HSCHUMACHER','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('HSCHUMACHER','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('LDERICHS','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('LDERICHS','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('LSCHULTE','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('LSCHULTE','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('RPROTZ','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('RPROTZ','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('RPROTZ','host004');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('WSCHUBERT','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) VALUES ('WSCHUBERT','host003');

INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('BFRANK','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('BFRANK','host002');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('BFRANK','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('DJONES','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('DJONES','host002');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('DJONES','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('DSTAUSS','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('DSTAUSS','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('EBRANDT','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('EBRANDT','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('GKLEIN','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('GKLEIN','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('GKLEIN','host004');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('GVOGT','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('GVOGT','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('HSCHUMACHER','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('HSCHUMACHER','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('LDERICHS','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('LDERICHS','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('LSCHULTE','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('LSCHULTE','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('RPROTZ','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('RPROTZ','host003');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('RPROTZ','host004');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('WSCHUBERT','host001');
INSERT INTO OS_ACCOUNT_HOST (USERID,HOSTID) values ('WSCHUBERT','host003');
COMMIT;
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

A Postman collection of sample SCIM API requests for Oracle Identity Governance (OIG) that showcases the ability to quickly create organizations, managers and users via SCIM API calls. Note that these samples are meant for reference only and are not intended for use in production systems.

Review Date: 28.10.2024
Review Date: 04.08.2024

# When to use this asset?

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@
],
"body": {
"mode": "raw",
"raw": "{\r\n \"schemas\":\r\n [\r\n \"urn:ietf:params:scim:schemas:core:2.0:User\",\r\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\",\r\n \"urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User\"\r\n ],\r\n \"userName\": \"{{login}}\",\r\n \"name\": {\r\n \"familyName\": \"{{lastname}}\",\r\n \"givenName\": \"{{firstname}}\"\r\n },\r\n \"displayName\": \"{{firstname}} {{lastname}}\",\r\n \"emails\":\r\n [\r\n {\r\n \"value\": \"{{email}}\",\r\n \"type\": \"work\"\r\n }\r\n ],\r\n \"userType\": \"{{emptype}}\",\r\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\":\r\n {\r\n \"manager\":\r\n {\r\n \"value\": \"{{manager_id}}\",\r\n \"$ref\": \"http://{{host}}:{{port}}/iam/governance/scim/v1/Users/{{manager_id}}\"\r\n }\r\n },\r\n \"urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User\":\r\n {\r\n \"startDate\": \"{{startdate}}\",\r\n \"homeOrganization\":\r\n {\r\n \"value\": {{organization_id}},\r\n \"$ref\": \"http://{{host}}:{{port}}/iam/governance/scim/v1/Organizations/{{organization_id}}\"\r\n }\r\n }\r\n}"
"raw": "{\r\n \"schemas\":\r\n [\r\n \"urn:ietf:params:scim:schemas:core:2.0:User\",\r\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\",\r\n \"urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User\"\r\n ],\r\n \"userName\": \"{{login}}\",\r\n \"name\": {\r\n \"familyName\": \"{{lastname}}\",\r\n \"givenName\": \"{{firstname}}\"\r\n },\r\n \"displayName\": \"{{firstname}} {{lastname}}\",\r\n \"emails\":\r\n [\r\n {\r\n \"value\": \"{{email}}\",\r\n \"type\": \"work\"\r\n }\r\n ],\r\n \"userType\": \"{{emptype}}\",\r\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\":\r\n {\r\n \"manager\":\r\n {\r\n \"value\": \"{{manager_id}}\",\r\n \"$ref\": \"http://{{host}}:{{port}}/iam/governance/scim/v1/Users/{{manager_id}}\"\r\n }\r\n },\r\n \"urn:ietf:params:scim:schemas:extension:oracle:2.0:OIG:User\":\r\n {\r\n \"startDate\": \"{{startdate}}\",\r\n \"homeOrganization\":\r\n {\r\n \"value\": \"{{organization_id}}\",\r\n \"$ref\": \"http://{{host}}:{{port}}/iam/governance/scim/v1/Organizations/{{organization_id}}\"\r\n }\r\n }\r\n}"
},
"url": {
"raw": "http://{{host}}:{{port}}/iam/governance/scim/v1/Users",
Expand Down