19 Configuring Oracle Identity Governance Using WDT
Install and configure an initial domain to use as the starting point for an enterprise deployment. Later, configure this domain.
A complete Oracle Identity and Access Management uses a split domain deployment, where there is a single domain for Oracle Access Management and a different domain for Oracle Identity Governance.
In version 4.1.2 of the WebLogic Kubernetes Operator, two different methods to create Oracle WebLogic domains are available. The traditional WLST method uses WLST scripts to create the domain which is the method employed in the Enterprise Deployment Guide for several releases.
Starting with this release, the Enterprise Deployment Guide will use the Weblogic Deployment Tools (WDT) to create the domains. The WDT uses templates to create domains which simplifies the installation procedure. For more information about WebLogic deployment tools, see WebLogic Deploy Tooling
This chapter includes the following topics:
- Synchronizing the System Clocks
Before you deploy Oracle Identity Governance, verify that the system clocks on each host computer are synchronized. You can do this by running thedate
command simultaneously on all the hosts in each cluster. - About the Initial Infrastructure Domain
Before you create the initial Infrastructure domain, ensure that you review the key concepts. - Prerequisites
Before creating the Oracle Identity Governance (OIG) on the kubernetes infrastructure, you should have downloaded the Oracle Identity Governance container image and installed the Oracle WebLogic Operator. - Creating a Namespace for Oracle Identity Governance
Create a namespace to contain all the Oracle Identity Governance Kubernetes objects. - Creating a Container Registry Secret
If you are using a container registry and want to pull the Oracle container images on demand, you must create a secret which contains the login details of the container registry. - Creating a Kubernetes Secret for Docker Hub Images
This secret allows Kubernetes to pull an image fromhub.docker.com
which contains third-party images such ashelm
,kubectl
, andlogstash
commands. - Creating the Database Schemas for Oracle Identity Governance
Oracle Fusion Middleware components require schemas in a database, these schemas are handled by the WebLogic Deployment Tools at the time of deployment. - Creating the Oracle Identity Governance Domain
To create the Oracle Identity Governance domain, you should configure the WebLogic Kubernetes Operator for the domain namespace, create the Kubernetes secrets, and then create the Governance domain. - Creating the Kubernetes Services
By default, the OIG domain gets created with all the components (except the Administration Server) configured as ClusterIP services. This means that the Oracle Identity Governance components are visible only within the Kubernetes cluster. - Tuning JMS Queues
To ensure maximum throughput, tune the JMS queues. - Installing the Connector Bundle
After you create the domain, you need to copy any connectors you require, to the Kubernetes container. These connectors must be stored on the persistent volume. - Performing the Post-Configuration Tasks for Oracle Identity Management Domain
The post-configuration tasks for the OIG domain include creating the server overrides file and updating the data sources. - Validating Identity Governance
Perform a few tests to validate your installation. - Analyzing the Bootstrap Report
When you start the Oracle Identity Governance server, the bootstrap report is generated at$DOMAIN_HOME/servers/oim_server1/logs/BootStrapReportPreStart_XXXX.html
. - Configuring the Web Tier for the Domain
If you have not already done so, configure the web server instances on the web tier so that the instances route requests for both public and internal URLs to the proper clusters in the extended domain. - Integrating Oracle Identity Governance with Oracle SOA Suite
You can integrate Oracle Identity Governance with Oracle SOA suite using the load balancer entry points to maintain high availability. - Managing the Notification Service
An event is an operation that occurs in Oracle Identity Manager, such as user creation, request initiation, or any custom event created by the user. These events are generated as part of the business operations or through the generation of errors. Event definition is the metadata that describes the event. - Configuring the Messaging Drivers
Each messaging driver needs to be configured. You have to configure this service if you want to enable OAM's forgotten password functionality. - Increasing Database Connection Pool Size
The default database connection pool size needs to be increased when Oracle Identity Governance is used in conjunction with a connector that allows interactions with an LDAP directory. - Integrating Oracle Identity Governance with LDAP
Before you integrate OIG with LDAP, you should configure the connector for LDAP and add the required object classes if any are missing. - Integrating Oracle Identity Governance and Oracle Access Manager
You have to complete several tasks to integrate Oracle Identity Governance and Oracle Access Manager. These tasks include creating the WLS authentication providers, deleting OIMSignatureAuthenticator and recreating OUDAuthenticator, adding the administration role to the new administration group, and so on. - Running the Reconciliation Jobs
Run the Oracle Identity Governance domain to import the LDAP user names into the Oracle Identity Governance database. - Configuring OIM Workflow Notifications to be Sent by Email
OIM uses the human workflow, which is integrated with the SOA workflow. The SOA server configures email to receive the notifications that are delivered to the user mailbox. The user can accept or reject the notifications. - Adding the wsm-pm Role to the Administrators Group
After you configure a new LDAP-based Authorization Provider and restart the Administration Server, add the enterprise deployment administration LDAP group (WLSAdministrators
) as a member to thepolicy.Updater
role in thewsm-pm
application stripe. - Adding the WebLogic Administration Group to SOA Administrators
To manage SOA using the users in the LDAP administration group 'WLSAdministrators', you should add the name of the group to the SOA Administrators group. - Adding the Oracle Access Manager Load Balancer Certificate to the Oracle Keystore Service
The Oracle Identity Governance to Business Intelligence Reports link inside of the Self Service application requires that the SSL certificate used by the load balancer be added to the Oracle Keystore Service Trusted Certificates. - Setting the Initial Server Count
When you first created the domain, you specified that only one Managed Server has to be started. This value ensured that the OIG bootstrap process was completed successfully. After you complete the configuration, you can increase the initial server count to the actual number you require. - Setting Challenge Questions
If you have integrated OAM and OIM, then after the environment is ready, you need to set up the challenge questions for your system users. - Integrating Oracle Identity Manager with Oracle Business Intelligence Publisher
Oracle Identity Manager comes with a number of prebuilt reports that can be used to provide information about Oracle Identity and Access Management. - Enabling Design Console Access
You cannot access the Design Console that is installed as part of the installation because it is inside a container and requires access to an external X Window environment. - Centralized Monitoring Using Grafana and Prometheus
If you are using a centralized Prometheus and Grafana deployment to monitor your infrastructure, you can send Oracle Identity Governance data to this application. - Centralized Log File Monitoring Using Elasticsearch and Kibana
If you are using Elasticsearch and Kibana, you can configure a Logstash pod to send the log files to the centralized Elasticsearch/Kibana console. Before you configure the Logstash pod, ensure that you have access to a centralized Elasticsearch deployment. - Backing Up the Configuration
As a best practice, Oracle recommends you to back up the configuration after you have successfully extended a domain or at another logical point. Back up only after you have verified that the installation is successful so far. This is a quick backup to enable immediate restoration in case of problems in later steps. - Running the OIM Bulkload Utility from a Container
If you want to run theoimbulkload
utility from a container, create a new container image based on the Oracle Database Instant Client which also has a JDK and theoimbulkload
utility installed.
Parent topic: Configuring the Enterprise Deployment
Synchronizing the System Clocks
Before you deploy Oracle Identity Governance, verify
that the system clocks on each host computer are synchronized. You can do this by running
the date
command simultaneously on all the hosts in each
cluster.
Alternatively, there are third-party and open-source utilities you can use for this purpose.
Parent topic: Configuring Oracle Identity Governance Using WDT
About the Initial Infrastructure Domain
Before you create the initial Infrastructure domain, ensure that you review the key concepts.
- About the Software Distribution
- Characteristics of the Domain
- Variables Used in this Chapter
- Kubernetes Services
Parent topic: Configuring Oracle Identity Governance Using WDT
About the Software Distribution
You create the initial Infrastructure domain for an enterprise deployment by using the Oracle WebLogic Operator. The Oracle Identity Governance software is distrubted as a pre-built container image. See Identifying and Obtaining Software Distributions for an Enterprise Deployment. This distribution contains all of the necessary components to install and configure Oracle Identity Governance.
See Understanding Oracle Fusion Middleware Infrastructure in Understanding Oracle Fusion Middleware.
Parent topic: About the Initial Infrastructure Domain
Characteristics of the Domain
The following table lists some of the key characteristics of the domain that you are about to create. Reviewing these characteristics helps you to understand the purpose and context of the procedures that are used to configure the domain.
Many of these characteristics are described in more detail in Understanding a Typical Enterprise Deployment.
Characteristic of the Domain | More Information |
---|---|
Places each WebLogic domain in a Kubernetes cluster. |
|
Each WebLogic Server is placed into a pod in the Kubernetes cluster. |
|
Places each Kubernetes domain object in a dedicated Kubernetes namespace. |
|
Uses Kubernetes NodePort Services to interact with the WebLogic Managed servers. |
|
Uses Kubernetes persistent volumes to hold the domain configuration. |
See unresolvable-reference.html#GUID-CF07EE44-34D9-4F36-97BE-6B3FBB4FCEA8. |
Each Kubernetes pod is built from a pre-built Oracle container image. |
See Identifying and Obtaining Software Distributions for an Enterprise Deployment. |
Uses a per domain Node Manager configuration. |
See About the Node Manager Configuration in a Typical Enterprise Deployment. |
Requires a separately installed LDAP-based authentication provider. |
|
Certificates are stored in the Oracle Keystore Service. |
|
JMS and TLOGS are stored in the database. |
See Using a JDBC Store. |
Parent topic: About the Initial Infrastructure Domain
Variables Used in this Chapter
The later sections of this chapter provide instructions to create a number of files. These sample files contain variables which you need to substitute with values applicable to your deployment.
Variables are formatted as <VARIABLE_NAME>. The following table provides the values you should set for each of these variables.
Table 19-1 The Variables to be Changed
Variable | Sample Value(s) | Description |
---|---|---|
<REGISTRY_ADDRESS> |
|
The location of the registry. |
<REGISTRY_SECRET_NAME> |
|
The name of the Kubernetes secret containing the container registry credentials. Required only if you are pulling images directly from a container registry. See Creating a Container Registry Secret. |
<REG_USER> |
|
The name of the user you use to log in to the registry. |
<REG_PASSWORD> |
|
The registry user password. |
<OIG_REPOSITORY> |
|
The name of the OIG software repository. If you have downloaded and staged a container image,
this value will be: If you use the oracle container registry, the value
will be
If you use a container registry, the value will be
the name of the registry with the product name:
|
<OIG_VER> |
|
The version of the image you want to use. This will be the version you have downloaded and staged either locally or in the container registry. |
<PVSERVER> |
|
The name or IP address of the NFS server Note: This name should be resolvable inside the Kubernetes cluster. |
<OIGNS> |
oigns |
The name of the OIG domain namespace. |
<WORKDIR> |
|
The location where you want to create the working directory for OAM. |
<K8WORKER> |
|
One of the Kubernetes hosts where the external WebLogic Administration Server Kubernetes service is resolvable. |
<OIG_SHARE> |
|
The NFS export for the persistence store. |
<OID_BULK_SHARE> |
|
The persistent volume used for storing data to be loaded through the bulk load utility. |
<OIG_DB_SCAN> |
|
The SCAN address of the RAC database. |
<OIG_DB_LISTENER> |
|
The listener port number of the RAC database . |
<OIG_DB_SERVICE> |
|
The name of the database service. If you are using a PDB, specify the name of the PDB service. |
<OIG_DB_SYS_PWD> |
|
The SYS password for the database. |
<OIG_RCU_PREFIX> |
|
The prefix used when the database schemas are created. |
<OIG_SCHEMA_PWD> |
|
The password you want to set for the product schemas being created. |
<OIG_WEBLOGIC_USER> |
|
The name of the administration user for IAMGovernance domain. |
<OIG_WEBLOGIC_PWD> |
|
The password for the WebLogic user. |
<OIG_DOMAIN_NAME> |
|
The name of the domain to be created. |
<OIG_DOMAIN_SECRET> |
|
The name of the secret you want to create, for the
namespace that is used. The name of the secret must be
|
<OIG_RCU_SECRET> |
|
The name of the RCU secret. The name of the secret
must be
|
<OIG_LBR_HOST> |
|
The load balancer entry point for OIM. |
<OIG_LBR_PORT> |
|
The load balancer port for OIM. |
<OIM_SERVER_NAME> |
|
The name of the OIM server. |
<OIG_EMAIL_DOMAIN> |
|
The email domain. |
<OIG_ADMIN_PORT> |
|
The internal port assigned to the OIG Administration Server. |
<WG_CONNECTIONS> |
|
The maximum number of connections supported by the WebGate agent. |
<LDAP_TYPE> |
|
It is the type of directory you are using: OUD or OID. |
<LDAP_OAMADMIN_USER> |
oamadmin |
The name of the user you want to administer OAM. See Creating a Configuration File. |
<LDAP_OAMLDAP_USER> |
oamLDAP |
The name of a user that OAM will use to connect to the directory for validating logins. |
<LDAP_XELSYSADM_USER> |
|
The OIM administrator account. |
<LDAP_HOST> |
|
The load balancer name for the LDAP directory. If your LDAP directory is inside the Kubernetes
cluster, then you can use the Kubernetes service name, which has
this format: If you are wiring to an LDAP directory external to the Kubernetes cluster, then you should specify the name of the external load balancer. |
<LDAP_PORT> |
|
It is the LDAP port of the load balancer. |
<LDAP_ADMIN_USER> |
|
The credential used to connect to the directory to perform administrative actions. |
<LDAP_OIGLDAP_USER> |
oimLDAP |
The name of the user that OIM uses to connect to LDAP for validating logins. |
<LDAP_SYSTEMIDS> |
cn=systemids |
The name of a container where you want to store system ids. The user names placed in this container are not subject to OIM reconciliation or password aging. This container is reserved for users such as <LDAP_OAMLDAP_USER> and <LDAP_OIGLDAP_USER>. |
<LDAP_SEARCHBASE> |
dc=example,dc=com |
The directory tree for your organization. This is where all the data is stored. |
<LDAP_USER_SEARCHBASE> |
cn=Users,dc=example,dc=com |
The location in the directory where names of users are stored. |
<LDAP_GROUP_SEARCHBASE> |
|
The location in the directory where user groups are stored. |
<LDAP_USER_PWD> |
|
Contains the password of the <LDAP_OAMADMIN_USER> account. |
<OAM_LOGIN_LBR_HOST> |
|
The listen address of the front end load balancer for the OAM cluster. |
<OAM_LOGIN_LBR_PORT> |
|
The port of the front end load balancer for the OAM cluster. |
<OAM_WEBLOGIC_USER> |
|
The administration user of the OAM Administration Server. |
<OAM_WEBLOGIC_PWD> |
< |
The optional password for <OAM_WEBLOGIC_USER>. |
<OAM_OAP_PORT> |
|
The internal OAP port number. If you are using the Kubernetes service, this value can be the internal port number. |
<OAP_SERVICE_PORT> |
|
The Kubernetes service port which fronts the OAM OAP cluster nodes. If you are using the Kubernetes service, this value can be the internal port number. |
<GLOBAL_PASSPHRASE> |
|
Set this to the global passphrase. For obtaining the value, see Obtaining a Global Passphrase. |
<OIG_SERVER_COUNT> |
|
The number of Managed Servers required. Oracle highly recommends you to set this value to a number greater than the anticipated need in the system's lifetime. It creates a number of server definitions in the WebLogic domain and ensures that you have a simple mechanism to scale up the system when the demand increases. This value does not reflect the number of server instances you actually start with; it just enables you to start additional servers if your needs change. Adding additional server definitions post domain creation is a complex task and should be avoided, if possible. |
<OIG_INITIAL_SERVERS> |
|
The number of Managed Servers to start. Oracle recommends you to set this value to 1 for the duration of the configuration. |
<OIM_MAX_CPU> |
|
Maximum number of CPUs each |
<OIM_CPU> |
|
The initial number of CPUs each |
<SOA_MAX_CPU> |
|
Maximum number of CPUs each |
<SOA_CPU> |
|
The initial number of CPUs each
|
<OIM_MAX_MEMORY> |
|
The maximum amount of memory that the
|
<OIM_MEMORY> |
|
The initial amount of memory that the
|
<OIMSERVER_JAVA_PARAMS> |
|
The maximum (Xmx) and minimum heap size to allocate to each
Note: The maximum amount of heap size must be less than the maximum amount allowed to be used by the pod <OIM_MAX_MEMORY>. |
<SOASERVER_JAVA_PARAMS> |
|
The maximum (Xmx) and minimum heap size to allocate to each
Note: The maximum amount of heap size must be less than the maximum amount allowed to be used by the Pod <SOA_MAX_MEMORY>. |
<OIG_OIM_T3_PORT_K8> |
|
The Kubernetes service port you want to use. |
<OIG_ADMIN_K8> |
|
The external Kubernetes service port for the external WebLogic Administration Server. |
<ELK_HOST> |
|
The host and port of the centralized Elasticsearch deployment. This host can be inside the Kubernetes cluster or external to it. This host is used only when Elasticsearch is used. |
<ELK_VER> |
|
The version of Elasticsearch you want to use. |
Parent topic: About the Initial Infrastructure Domain
Kubernetes Services
If you are using NodePort Services, the following Kubernetes services are created as part of this deployment:
Table 19-2 Kubernetes NodePort Services
Service Name | Type | Service Port | Mapped Port |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Table 19-3 Ingress Services
Service Name | Host Name |
---|---|
|
|
|
|
|
|
Parent topic: About the Initial Infrastructure Domain
Prerequisites
Before creating the Oracle Identity Governance (OIG) on the kubernetes infrastructure, you should have downloaded the Oracle Identity Governance container image and installed the Oracle WebLogic Operator.
- To download the Oracle Governance Manager Image and load it into the Docker image repository (this repository must be visible to each Kubernetes node), see Identifying and Obtaining Software Distributions for an Enterprise Deployment.
- To install the Oracle WebLogic Operator, see Installing and Configuring WebLogic Kubernetes Operator.
Parent topic: Configuring Oracle Identity Governance Using WDT
Setting Up a Product Specific Work Directory
Before you begin the installation, you should have downloaded and staged the Oracle Identity Governance container image and the code repository. See Downloading Images from a Container Registry and Staging the Code Repository. You must also have deployed the Oracle WebLogic Operator as described in Installing the WebLogic Kubernetes Operator.
This section describes copying the downloaded sample deployment scripts to a temporary working directory on the configuration host for OIG.
- Create a temporary working directory as the install user. The install
user should have
kubectl
access to the Kubernetes cluster.mkdir -p /<WORKDIR>
For example:mkdir -p /workdir/OIG
- Change directory to this
location:
cd /workdir/OIG
- Copy the sample scripts to the work
directory.
cp -R <WORKDIR>/fmw-kubernetes/OracleIdentityGovernance/kubernetes <WORKDIR>/samples
For example:cp -R /workdir/OIG/fmw-kubernetes/OracleIdentityGovernance/kubernetes /workdir/OIG/samples
Parent topic: Prerequisites
Creating a Namespace for Oracle Identity Governance
Create a namespace to contain all the Oracle Identity Governance Kubernetes objects.
- To create a namespace, use the following
command:
kubectl create namespace <OIGNS>
For example:kubectl create namespace oigns
The output appears as follows:namespace/oigns created
- Tag the namespace so that the WebLogic Kubernetes Operator can manage
it.
kubectl label namespaces oamns weblogic-operator=enabled
Parent topic: Configuring Oracle Identity Governance Using WDT
Creating a Container Registry Secret
If you are using a container registry and want to pull the Oracle container images on demand, you must create a secret which contains the login details of the container registry.
Note:
If you are not using a container registry, you still need to create the registry secret. However, the user name and password need not contain meaningful data.kubectl create secret -n <OIGNS> docker-registry <REGISTRY_SECRET_NAME> --docker-server=<REGISTRY_ADDRESS> --docker-username=<REG_USER> --docker-password=<REG_PWD>
kubectl create secret -n oigns docker-registry regcred --docker-server=iad.ocir.io/mytenancy --docker-username=mytenancy/oracleidentitycloudservice/myemail@email.com --docker-password=<password>
Parent topic: Configuring Oracle Identity Governance Using WDT
Creating a Kubernetes Secret for Docker Hub Images
This secret allows Kubernetes to pull an image from
hub.docker.com
which contains third-party images such as helm
, kubectl
, and
logstash
commands.
Note:
If you are pulling the images from your own container registry, then this step is not required.You should have an account on hub.docker.com
. If you
want to stage the images in your own repository, you can do so and modify the
helm
override file as appropriate.
To create a Kubernetes secret for hub.docker.com
, use the following
command:
$ kubectl create secret docker-registry dockercred --docker-server="https://index.docker.io/v1/" --docker-username="<DH_USER>" --docker-password="<DH_PWD>" --namespace=<OIGNS>
$ kubectl create secret docker-registry dockercred --docker-server="https://index.docker.io/v1/" --docker-username="username" --docker-password="<mypassword>" --namespace=oigns
Parent topic: Configuring Oracle Identity Governance Using WDT
Creating the Database Schemas for Oracle Identity Governance
Oracle Fusion Middleware components require schemas in a database, these schemas are handled by the WebLogic Deployment Tools at the time of deployment.
- Metadata Services (MDS)
- Audit Services (IAU)
- Audit Services Append (IAU_APPEND)
- Audit Services Viewer (IAU_VIEWER)
- Oracle Platform Security Services (OPSS)
- User Messaging Service (UMS)
- WebLogic Services (WLS)
- Common Infrastructure Services (STB)
For more information about RCU and how the schemas are created and stored in the database, see Preparing for Schema Creation in Creating Schemas with the Repository Creation Utility.
Complete the following steps to install the required schemas:
Parent topic: Configuring Oracle Identity Governance Using WDT
Installing and Configuring a Certified Database
Make sure that you have installed and configured a certified database, and that the database is up and running.
See Preparing an Existing Database for an Enterprise Deployment.
Configuring OIM Schemas for Transactional Recovery
After you have installed the Oracle Identity Governance successfully, use the procedure in this section to configure the schemas for transactional recovery.
This procedure sets the appropriate database privileges so that the Oracle WebLogic Server transaction manager can query the schemas for transaction state information and issue the appropriate commands, such as commit and rollback, during recovery of in-flight transactions after a WebLogic Server is unexpectedly unavailable.
These privileges should be granted to the owner of the OIM schema, which you defined when you created the schemas with the Repository Creation Utility.
To configure the OIM schemas for transactional recovery privileges:
Creating the Oracle Identity Governance Domain
To create the Oracle Identity Governance domain, you should configure the WebLogic Kubernetes Operator for the domain namespace, create the Kubernetes secrets, and then create the Governance domain.
Parent topic: Configuring Oracle Identity Governance Using WDT
Creating the Kubernetes Secrets
Rather than passing the credentials directly into the domain creation process, you can use the Kubernetes secrets to store the credentials in the encrypted format. The WebLogic Operator reads these secrets instead of asking for credentials.
Parent topic: Creating the Oracle Identity Governance Domain
Creating the Domain Secret
The domain secret contains information about the WebLogic Administration user who creates the domain.
Parent topic: Creating the Kubernetes Secrets
Creating the RCU Secret
The RCU secret is used by the WebLogic Operator to determine how to connect to the database schemas that you have already created. See Creating the Database Schemas for Access Manager.
To create the RCU secret, perform the following steps:
Parent topic: Creating the Kubernetes Secrets
Creating the Governance Domain
The procedure to create the Oracle Identity Governance domain includes creating the domain configuration file, creating the domain using the WebLogic Kubernetes Operator, setting the memory parameters, initializing the domain, and verifying the domain.
- Creating the Domain Configuration File
- Generate WDT Auxiliary Image
- Updating domain.yaml
- Creating the Domain Using the WebLogic Operator
- Verifying the Domain
Parent topic: Creating the Oracle Identity Governance Domain
Creating the Domain Configuration File
A configuration file is used to tell the WebLogic Operator how to create
the domain. This configuration file is named
create-domain-wdt.yaml
and is located in
<WORKDIR>/samples/create-oim-domain/domain-home-on-pv
.
Parent topic: Creating the Governance Domain
Generate WDT Auxiliary Image
When creating a domain using the WebLogic deployment tool, a dedicated image is created which describes the deployment. This is based on the domain creation file described in Creating the Domain Configuration File. This image is then stored in a local container registry.
The benefit of using an auxiliary image with the configuration is that it can be used repeatedly to create multiple environments with slightly different properties. For example, the same image file can be used to create a development, testing, and production environment where only the database connection details vary. You need not create a new image each time you create a similar environment. This image must be stored in a registry where images are loaded, and you need have access to this registry.
The following sections describe how to generate the WDT model files, create an auxiliary image, and upload it to your repository.
Generating WDT Model Files
Perform the following steps to generate the WDT model files from the Domain Configuration file:
- Change the directory to WDT utils directory of the samples
download.
cd <WORKDIR>/samples/create-oim-domain/domain-home-on-pv/wdt-utils/generate_models_utils
For Example:
cd /workdir/OIG//samples/create-oim-domain/domain-home-on-pv/wdt-utils/generate_models_utils
- Generate the model files using the
generate_wdt_models.sh
utility../generate_wdt_models.sh -i <WORKDIR>/create-domain-wdt.yaml -o <WORKDIR>
Use
-i
to specify the location of the Domain configuration file you created in Creating the Domain Configuration File.Use
-o
to specify where the WDT Model files and templates should be created.For example:
./generate_wdt_models.sh -i /workdir/OIG/create-domain-wdt.yaml -o /workdir/OIG
After running the utility, a directory is created called
weblogic-domains
which contain the generated files.
Sample Output with Input Parameters
export version="create-weblogic-sample-domain-inputs-v1"
export adminPort="7101"
export domainUID="governancedomain"
export configuredManagedServerCount="5"
export initialManagedServerReplicas="1"
export productionModeEnabled="true"
export t3ChannelPort="30012"
export datasourceType="agl"
export edgInstall="true"
export domainHome="/u01/oracle/user_projects/domains/governancedomain"
export image="iad.ocir.io/mytenancyoig:12.2.1.4-jdk8-ol8-apr24"
export imagePullSecretName="regcred"
export logHome="/u01/oracle/user_projects/domains/logs/governancedomain"
export exposeAdminT3Channel="false"
export adminNodePort="30711"
export exposeAdminNodePort="false"
export namespace="oigns"
javaOptions=-Dweblogic.StdoutDebugEnabled=false
export domainPVMountPath="/u01/oracle/user_projects"
export weblogicDomainStorageType="NFS"
export weblogicDomainStorageNFSServer="mynfsserver.example.com"
export weblogicDomainStoragePath="/exports/IAMPVS/oigpv"
export weblogicDomainStorageReclaimPolicy="Retain"
export weblogicDomainStorageSize="10Gi"
export frontEndHost="prov.example.com"
export frontEndPort="443"
export oimServerJavaParams="-Xms8192m -Xmx8192m "
export soaServerJavaParams="-Xms4096m -Xmx8192m"
export oimMaxCPU="1"
export oimCPU="500m"
export oimMaxMemory="8Gi"
export oimMemory="4Gi"
export soaMaxCPU="1"
export soaCPU="1000m"
export soaMaxMemory="10Gi"
export soaMemory="4Gi"
validateWlsDomainName called with governancedomain
WDT model file, property file and sample domain.yaml are genereted successfully at /workdir/OIG/weblogic-domains/governancedomain
Create Image Property File
After the model files are created, they need to be added to an image, and uploaded to your registry which begins with describing the target registry in a property file.
Perform the following steps to create an image property file:
- Run the following command to ensure java is installed on your
machine:
which java
- Copy the property file to your work
directory.
cp <WORKDIR>/samples/create-oim-domain/domain-home-on-pv/wdt-utils/build-domain-creation-image/properties/build-domain-creation-image.properties <WORKDIR>
For Example:
cp /workdir/OIG/samples/create-oim-domain/domain-home-on-pv/wdt-utils/build-domain-creation-image/properties/build-domain-creation-image.properties /workdir/OIG
- Edit the file
build-domain-creation-image.properties
and add the following values:JAVA_HOME
set this to the location of your JAVA installation found in Step 1.For Example:/usr
-
REPOSITORY
set this to the location in your registry where the image file is to reside.For example,
.iad.ocir.io/<mytenancy>/idm/oig_wdt
Where
oig_wdt
is the name of the image you wish to create. -
IMAGE_TAG
used to assign a tag to the uploaded image, you can use anything here. In case of this example, we can use <OIG_DOMAIN_NAME>. -
IMAGE_PUSH_REQUIRES_AUTH
must be set to true if you do not allow non-authenticated uploads to your registry. -
REG_USER
must be set to the user in your registry where you wish to upload the image. This user must have upload privileges. -
WDT_MODEL_FILE
must be set to the fileoam.yaml
which was generated in the step above. For Example,<WORKDIR>/weblogic-domains/<OIG_DOMAIN_NAME>/oim.yaml
. -
WDT_VARIABLE_FILE
must be set to the fileoam.properties
which was generated in the step above. For example,<WORKDIR>/weblogic-domains/<OIG_DOMAIN_NAME/>oim.properties
. -
REG_PWD
must be set to the password of the above user and placed in a separate file inbuiidpwd
in the<WORKDIR>
as shown below:REG_PASSWORD="<mypwd>"
Sample
build-domain-creation-image.properties
# Copyright (c) 2024, Oracle and/or its affiliates. # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # Input Property file for build-domain-creation-image.sh script # # set the JAVA_HOME environment variable to match the location of your Java installation. Java 8 or newer is required # JAVA_HOME=/usr # # Image Details # #Set the IMAGE_TAG, default oam-aux-v1 if not set. IMAGE_TAG=governancedomain # Set the BASE_IMAGE, default ghcr.io/oracle/oraclelinux:8-slim if not set. BASE_IMAGE=ghcr.io/oracle/oraclelinux:8-slim # # Container Registry # #Image will be created with REPOSITORY:IMAGE_TAG REPOSITORY=iad.ocir.io/<mytenancy>idm/oig_wdt # Container registry username REG_USER=<mytenancy>/oracleidentitycloudservice/my.user@example.com #Set it to false if authentication is not required for pushing the image to registry, for example docker login already done in the host before invoking the script. IMAGE_PUSH_REQUIRES_AUTH=true # # WDT and WIT Variables # #Full path to wdt model files WDT_MODEL_FILE=/workdir/OIG/weblogic-domains/governancedomain/oim.yaml #Full path to wdt variable files WDT_VARIABLE_FILE=/workdir/OIG/weblogic-domains/governancedomain/oim.properties #Full path to wdt archive files WDT_ARCHIVE_FILE="" #If not set, Latest version will be used. WDT_VERSION="3.5.3" #If not set, latest will be used during every fresh run WIT_VERSION="1.12.1" #In Most cases, no need to use these parameters. Please refer https://oracle.github.io/weblogic-image-tool/userguide/tools/create-aux-image/ for details about them. TARGET="" CHOWN=""
-
Uploading WDT Auxiliary Image
Use the utility build-domain-creation-image.sh
to
create and upload the Auxiliary image:
For Example:
cd <WORKDIR>/samples/create-oim-domain/domain-home-on-pv/wdt-utils/build-domain-creation-image
./build-domain-creation-image.sh -i <WORKDIR>/build-domain-creation-image.properties -p <WORKDIR>/.buildpwd
For Example:
cd /workdir/OIG/samples/create-oim-domain/domain-home-on-pv/wdt-utils/build-domain-creation-image
./build-domain-creation-image.sh -i /workdir/OIG/build-domain-creation-image.properties -p /workdir/OIG/.buildpwd
Extract from Sample Output
Getting image source signatures
Copying blob sha256:d56869e2b34f592d78b05cce249e0130a52fb73209bbb394bb329b1fed54a652
Copying blob sha256:ba40a64765a65573fb1b9cfc9e175bd53c420c7ce8ec1424fda55835efbb7055
Copying blob sha256:0b458bb8ab4506598a0a925a3110c079ffbf77f85e3b97713e4592a2cb47a97f
Copying blob sha256:9aa2b64b3e6fefe00a04b52511ffda5b5ab3018538a1c7b11c4af4300e9220e0
Copying blob sha256:8b4d3bacf0d79476c744efb9d80fc05c5e1298b2ce8c5ed88edc9a4a01198ba9
Copying blob sha256:3ae779ed2d0c15ccbf8b31ae75afcbb857bb731618e9bde89108e8079ed4e9fe
Copying blob sha256:306ac5e1f9589c0be83dfa010d3bc53097c7acb7ef0fd51d054d1e6545c35c84
Copying blob sha256:5002f0067a2f325a4e67415b2e6889568719d0020b1df7b07af6be945c332210
Copying blob sha256:97acec59a7dd3180feaa8c2257fa8ed8027e5763d6aedb1c8a4df1a740e1ecb7
Copying blob sha256:5778e746ec78114f3569e4729dc11cc746dc6af9b5ebcf577ae9fe94867b495d
Copying blob sha256:6e841a878721c1c37fc0885152697674be097dc5d81004188a2e1dd647850e3e
Copying config sha256:ff14e6503d9efa8858512e8e7401e9c1b7d532acf11ffc44fb866ed5f4de00f1
Writing manifest to image destination
Storing signatures
Pushed image iad.ocir.io/mytenancy/oig_wdt:governancedomain to image repository
Parent topic: Creating the Governance Domain
Updating domain.yaml
domain.yaml
was created in the directory
<WORKDIR>/weblogic-domains/<OIG_DOMAIN_NAME>
. This
file is used to create the WebLogic domain. Before using this file the auxiliary image
you create must be added to the file by editing domain.yaml
Locate the variable in the file %DOMAIN_CREATION_IMAGE%
and replace it with the name of your image as
<REPOSITORY>:<IMAGE_TAG>
obtained from the file
build-domain-creation-image.properties
.
iad.ocir.io/mytenancy/idm/oig_wdt:accessdomain
Note:
If the registry where your image is located is different to the registry where your OIG image is stored then create a new secret with the credentials for the Auxiliary image registry using a different name to the main registry.
For example:
kubectl create secret -n oigns docker-registry regcred2 --docker-server=iad.ocir.io/mytenancy2 --docker-username=mytenancy/oracleidentitycloudservice/myemail@email.com --docker-password=<password>
Update the file domain.yaml
and replace the lines with
the name of your new secret.
Add additional secret name if you are using a different registry for domain creation image.
Identify which secret contains the credentials for pulling an image.
imagePullSecrets:
- name: regcred2
Parent topic: Creating the Governance Domain
Creating the Domain Using the WebLogic Operator
cd <WORKDIR>/weblogic-domains/<OIG_DOMAIN_NAME>
kubectl create -f <WORKDIR>/weblogic-domains/<OIG_DOMAIN_NAME>/domain.yaml
cd /workdir/OIG/weblogic-domains/governancedomain
kubectl create -f /workdir/OIG/weblogic-domains/governancedomain/domain.yaml
Use the following to monitor the domain creation:
kubectl logs -n <OIGNS> <OIG_DOMAIN_DOMAIN>-introspector
kubectl describe domain -n <OIGNS> <OIG_DOMAIN_NAME>
For Example:
kubectl logs -n oigns governancedomain-introspector
kubectl describe domain -n oigns governancedomain
For more information, see the WebLogic operator logs.
For Example:
kubectl logs -n opns weblogic-operator-688f5dcdc4-qxnnz | grep <OIG_DOMAIN_NAME>
After the domain is created, the OAM Kubernetes pods is started automatically and can be viewed using the command:
kubectl get pods -n <OIGNS>
Parent topic: Creating the Governance Domain
Verifying the Domain
To verify the creation of the domain, perform the following steps:
- To confirm that the domain is created, use the following
command:
kubectl describe domain <domain_uid> -n <namespace>
For example:kubectl describe domain governancedomain -n oigns
- Verify that the domain pods and services have been created and started,
using the following
command:
kubectl get all,domains -n oigns
The output appears as follows:NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES pod/governancedomain-adminserver 1/1 Running 0 17h 192.168.14.205 slc09byd <none> <none> pod/governancedomain-create-fmw-infra-sample-domain-job-45mwk 0/1 Completed 0 23h 192.168.14.203 slc09byd <none> <none> pod/governancedomain-soa-server1 1/1 Running 0 16h 192.168.14.206 slc09byd <none> <none> pod/helper 1/1 Running 0 45h 192.168.14.202 slc09byd <none> <none> NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR service/governancedomain-adminserver ClusterIP None <none> 7101/TCP 17h weblogic.createdByOperator=true,weblogic.domainUID=governancedomain,weblogic.serverName=AdminServer service/governancedomain-adminserver-external NodePort 10.96.33.206 <none> 7101:30711/TCP 17h weblogic.createdByOperator=true,weblogic.domainUID=governancedomain,weblogic.serverName=AdminServer service/governancedomain-cluster-oim-cluster ClusterIP 10.103.195.154 <none> 14002/TCP,14000/TCP 16h weblogic.clusterName=oim_cluster,weblogic.createdByOperator=true,weblogic.domainUID=governancedomain service/governancedomain-cluster-soa-cluster ClusterIP 10.106.89.77 <none> 8001/TCP 16h weblogic.clusterName=soa_cluster,weblogic.createdByOperator=true,weblogic.domainUID=governancedomain service/governancedomain-soa-server1 ClusterIP None <none> 8001/TCP 16h weblogic.createdByOperator=true,weblogic.domainUID=governancedomain,weblogic.serverName=soa_server1 NAME COMPLETIONS DURATION AGE CONTAINERS IMAGES SELECTOR job.batch/governancedomain-create-fmw-infra-sample-domain-job 1/1 9m9s 23h create-fmw-infra-sample-domain-job oracle/oig:12.2.1.4.0 controller-uid=a724d3ea-cbf0-43e1-9743-61a4f753c8b7
Note:
It will take several minutes before all the services listed above appear. A pod with a STATUS of 0/1 indicates that the pod has already started but the SOA server associated with the pod is just starting. While the pods are starting, you can check the startup status in the pod logs by using the following commands:
kubectl logs governancedomain-adminserver -n oigns
kubectl logs governancedomain-soa-server1 -n oigns
kubectl patch cluster -n <OIGNS> <OIG_DOMAIN_NAME>-oim-cluster --type=merge -p '{"spec":{"replicas":1}}"'
kubectl patch cluster -n signs governancedomain-oim-cluster --type=merge -p '{"spec":{"replicas":1}}"'
Verify that the domain has been initialized, using the following command:
kubectl get all,domains -n oigns
NAME READY STATUS RESTARTS AGE
pod/governancedomain-adminserver 1/1 Running 0 13h
pod/governancedomain-create-fmw-infra-sample-domain-job-ks2rj 0/1 Completed 0 14h
pod/governancedomain-oim-server1 1/1 Running 0 12h
pod/governancedomain-oim-server2 1/1 Running 0 12h
pod/governancedomain-soa-server1 1/1 Running 0 12h
pod/governancedomain-soa-server2 1/1 Running 0 12h
pod/helper 1/1 Running 0 14h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/governancedomain-adminserver ClusterIP None <none> 7101/TCP 13h
service/governancedomain-cluster-oim-cluster ClusterIP 10.98.52.6 <none> 14002/TCP,14000/TCP 14h
service/governancedomain-cluster-soa-cluster ClusterIP 10.104.237.225 <none> 8001/TCP 14h
service/governancedomain-oim-server1 ClusterIP None <none> 14002/TCP,14000/TCP 12h
service/governancedomain-oim-server2 ClusterIP None <none> 14002/TCP,14000/TCP 12h
service/governancedomain-oim-server3 ClusterIP 10.107.107.116 <none> 14002/TCP,14000/TCP 12h
service/governancedomain-oim-server4 ClusterIP 10.98.134.71 <none> 14002/TCP,14000/TCP 12h
service/governancedomain-oim-server5 ClusterIP 10.103.64.15 <none> 14002/TCP,14000/TCP 12h
service/governancedomain-soa-server1 ClusterIP None <none> 8001/TCP 12h
service/governancedomain-soa-server2 ClusterIP None <none> 8001/TCP 12h
service/governancedomain-soa-server3 ClusterIP 10.111.204.234 <none> 8001/TCP 12h
service/governancedomain-soa-server4 ClusterIP 10.107.90.229 <none> 8001/TCP 12h
service/governancedomain-soa-server5 ClusterIP 10.97.72.84 <none> 8001/TCP 12h
NAME COMPLETIONS DURATION AGE
job.batch/governancedomain-create-fmw-infra-sample-domain-job 1/1 5m41s 14h
NAME AGE
domain.weblogic.oracle/governancedomain 14h
NAME AGE
cluster.weblogic.oracle/governancedomain-oim-cluster 14h
cluster.weblogic.oracle/governancedomain-soa-cluster 14h
Note:
It will take several minutes before all the services listed above show up. When a pod has a STATUS of 0/1, the pod is started but the OIM server associated with it is just starting. While the pods are starting, you can check the startup status in the pod logs, by running the following commands:
kubectl logs governancedomain-oim-server1 -n oigns
Parent topic: Creating the Governance Domain
Creating the Kubernetes Services
By default, the OIG domain gets created with all the components (except the Administration Server) configured as ClusterIP services. This means that the Oracle Identity Governance components are visible only within the Kubernetes cluster.
In an enterprise deployment, all interactions with the WebLogic components take place through the Oracle HTTP Server which sits outside of the Kubernetes cluster. You expose the WebLogic components to the outside world by creating Kubernetes additional services. You can use either NodePort Services or an Ingress controller.
- Creating NodePort Services
- Creating a SOA NodePort Service
- Validating the Services
- Creating the Ingress Services
Parent topic: Configuring Oracle Identity Governance Using WDT
Creating NodePort Services
Parent topic: Creating the Kubernetes Services
Creating a SOA NodePort Service
Parent topic: Creating the Kubernetes Services
Validating the Services
kubectl -n oigns get all -o wide
Parent topic: Creating the Kubernetes Services
Creating the Ingress Services
To create Ingress services, you must first create an Ingress controller. For more information about the installation procedure, see Installing and Configuring Ingress Controller.
The Ingress service is created inside the product namespace. It tells the Ingress controller how to direct requests inside the namespace.
Note:
The example below creates three Ingress services, one for each of the OIG virtual hosts.igdadmin.example.com
prov.example.com
igdinternal.example.com
To create an Ingress service:
Parent topic: Creating the Kubernetes Services
Tuning JMS Queues
To ensure maximum throughput, tune the JMS queues.
Parent topic: Configuring Oracle Identity Governance Using WDT
Installing the Connector Bundle
After you create the domain, you need to copy any connectors you require, to the Kubernetes container. These connectors must be stored on the persistent volume.
To install the connector bundle, this example uses the Oracle Internet Directory connector bundle, which is used to integrate Oracle Identity Governance with Oracle Unified Directory.
Parent topic: Configuring Oracle Identity Governance Using WDT
Performing the Post-Configuration Tasks for Oracle Identity Management Domain
The post-configuration tasks for the OIG domain include creating the server overrides file and updating the data sources.
Parent topic: Configuring Oracle Identity Governance Using WDT
Limiting Pods to Specific Worker Nodes
If you want to ensure that the OIG servers start only on a specific set of worker servers, complete the following steps:
Labeling the Kubernetes Worker Nodes
Label the worker nodes you want to include in scheduling. This can
be as granular as you need. For example, if you want to schedule the OIG
processes to run on a set of nodes, then label that set with a label such as
oigservers
. If you want to dictate that the
Administration Server runs on a specific set of worker nodes and the
oim_server
on a different set, then create two
labels, oigadmin
and oimservers
.
kubectl label node worker1 name=oimservers
Parent topic: Limiting Pods to Specific Worker Nodes
Restricting Processes to Labels
domain.yaml
file located in the following
path:<WORKDIR>/samples/create-oim-domain/domain-home-on-pv/output/weblogic-domains/<OIG_DOMAIN_NAME>/
/workdir/OIG/samples/create-oim-domain/domain-home-on-pv/output/weblogic-domains/accessdomain/
Alter the Managed Servers section for all the Managed Servers configured in the cluster and ensure that only the labeled worked nodes are used for scheduling.
oim_server1
and oim_server2
, the entries will
look similar
to: managedServers:
- serverName: oim_server1
serverPod:
nodeSelector:
name: oimservers
- serverName: oim_server2
serverPod:
nodeSelector:
names: oimservers
Parent topic: Limiting Pods to Specific Worker Nodes
Creating the Server Overrides File
The serverOverrides
file is used to set
specific Java values when the containers start. The parameters are appended
to the configuration in the setDomainEnv.sh
file but
unlike the setDomainEnv.sh
file, the
serverOverrides
file is not overwritten during
the upgrade.
Disabling the Derby Database
Parent topic: Creating the Server Overrides File
Enabling the Managed Servers to Use IPv4 Networking
If the Managed Server is configured to use IPv6 networking, then you may encounter issues when you start the Managed Server. Therefore, you must enable the Managed Servers to use IPv4 networking.
Parent topic: Creating the Server Overrides File
Setting the Memory Parameters in IAMGovernanceDomain
The initial startup parameter in the IAMGovernanceDomain, which defines the memory usage, is insufficient. You must increase the value of this parameter.
Parent topic: Creating the Server Overrides File
Copying Server Overrides to the Kubernetes Containers
In a Kubernetes environment, there is no editior inside the container. To work around this issue, create the file on the master node and copy it to the Kubernetes container using the following commands:
chmod 755 /workdir/OIG/setUserOverrides.sh
kubectl cp /workdir/OIG/setUserOverrides.sh oigns/governancedomain-adminserver:/u01/oracle/user_projects/domains/governancedomain/bin/setUserOverrides.sh
Where oigns
is the OIG namespace and governancedomain
is the DOMAIN_NAME/UID
.
Parent topic: Creating the Server Overrides File
Validating Identity Governance
Perform a few tests to validate your installation.
- Validating OIM by Logging in to the Identity Console
- Validating the SOA Application
- Validating the Fusion Middleware Control Application
Parent topic: Configuring Oracle Identity Governance Using WDT
Validating OIM by Logging in to the Identity Console
You can validate the Oracle Identity Manager Server instance by bringing up the Oracle Identity Manager Console in a web browser.
- Launch the Oracle Identity Manager Console in a web browser
at:
http://k8worker1.example.com:30140/identity/
http://k8worker1.example.com:30140/sysadmin/
- Log in using the xelsysadm user name and password.
Parent topic: Validating Identity Governance
Validating the SOA Application
http://k8worker1.example.com:30801/soa-infra
Log in using the weblogic user name.
Parent topic: Validating Identity Governance
Validating the Fusion Middleware Control Application
You can access the Fusion Middleware Control application after you execute the bootstrap process and validate it.
Note:
Provide the challenge questions if you are prompted to enter them.To navigate to the Fusion Middleware Control application, enter the following URL, and log in with the Oracle WebLogic Server administrator credentials:
http://k8worker1.example.com:30711/em
Parent topic: Validating Identity Governance
Analyzing the Bootstrap Report
When you start the Oracle Identity Governance
server, the bootstrap report is generated at
$DOMAIN_HOME/servers/oim_server1/logs/BootStrapReportPreStart_XXXX.html
.
BootStrapReportPreStart_XXXX.html
is an
HTML file that contains information about the topology that you have deployed, the system
level details, the connection details like the URLs to be used, the connectivity check, and
the task execution details. You can use this report to check if the system is up, and also to
troubleshoot the issues, post-configuration.
Every time you start the Oracle Identity Governance server, the bootstrap report is updated.
Sections in the Bootstrap Report
-
Topology Details
This section contains information about your deployment. It shows whether you have configured a cluster setup, SSL enabled, or upgraded an Oracle Identity Manager environment from 11g to 12c.
-
System Level Details
This section contains information about the JDK version, Database version, JAVA_HOME, DOMAIN_HOME, OIM_HOME, and MIDDLEWARE_HOME.
-
Connection Details
This section contains information about the connect details like the Administration URL, OIM Front End URL, SOA URL, and RMI URL.
This also shows whether the Administration Server, Database, and SOA server is up or not.
-
Execution Details
This section lists the various tasks and their statuses.
- Connect to the Oracle Identity
Governance Administration Server by using the
command:
kubectl exec -n <OIGNS> -ti <OIG_DOMAIN_NAME>-adminserver –- /bin/bash
cat /u01/oracle/user_projects/domains/<OIG_DOMAIN_NAME>/servers/oim_server1/logs/BootStrapReportPreStart_XXXX.html
For example:kubectl exec -n oigns -ti governancedomain-adminserver –- /bin/bash
cat /u01/oracle/user_projects/domains/governancedomain/servers/oim_server1/logs/BootStrapReportPreStart_XXXX.html
- If you have mounted the IAMPVS on
your configuration host, you can simply point a browser
at:
/nfs_volumes/oigpv/domains/governancedomain/servers/oim_server1/logs/BootStrapReportPreStart_XXXX.html
Parent topic: Configuring Oracle Identity Governance Using WDT
Configuring the Web Tier for the Domain
If you have not already done so, configure the web server instances on the web tier so that the instances route requests for both public and internal URLs to the proper clusters in the extended domain.
For more information about configuring Oracle HTTP Server, see Installing and Configuring Oracle HTTP Server.
For additional steps in preparation for possible scale-out scenarios, see Updating Cross Component Wiring Information.
Parent topic: Configuring Oracle Identity Governance Using WDT
Integrating Oracle Identity Governance with Oracle SOA Suite
You can integrate Oracle Identity Governance with Oracle SOA suite using the load balancer entry points to maintain high availability.
Updating the OIM Integration URLs
This section describes how to update the SOA integration URLs to use the load balanced URLs. If you want to integrate Oracle Identity Governance with Oracle SOA suite, use the Enterprise Manager Console.
You need to perform certain tasks in order to configure the newly created domain with the Oracle Identity Governance. These tasks are post-domain creation tasks.
To integrate Oracle Identity Governance with Oracle SOA Suite, do the following:
Managing the Notification Service
An event is an operation that occurs in Oracle Identity Manager, such as user creation, request initiation, or any custom event created by the user. These events are generated as part of the business operations or through the generation of errors. Event definition is the metadata that describes the event.
To define the metadata for events, you must identify all event types supported by a functional component. For example, as a part of the scheduler component, metadata is defined for a scheduled job execution failure and shutting down of the scheduler. Every time a job fails or the scheduler shuts down, the associated events get triggered, and the notifications associated with the event get sent.
The data available in the event is used to create the content of the notification. The different parameters defined for an event help the system to select the appropriate notification template. The various parameters defined for an event help the system decide which event variables should be made available at template design time.
A notification template is used to send notifications. These templates contain variables that refer to available data to provide more context to the notifications. The notification is sent through a notification provider. Examples of such channels are e-mail, Instant Messaging (IM), Short Message Service (SMS), and voice. To use these notification providers, Oracle Identity Manager uses Oracle User Messaging Service (UMS).
At the back end, the notification engine is responsible for generating the notification and utilizing the notification provider to send the notification.
Parent topic: Configuring Oracle Identity Governance Using WDT
Using Oracle Unified Messaging for Notification
Using Oracle Unified Messaging (UMS) for notification involves configuring the UMS email notification provider properties and adding the CSF key.
Parent topic: Managing the Notification Service
Configuring the Messaging Drivers
Each messaging driver needs to be configured. You have to configure this service if you want to enable OAM's forgotten password functionality.
Configuring the Email Driver
To configure the driver to send and emails then you need to perform the following steps:
Parent topic: Configuring the Messaging Drivers
Increasing Database Connection Pool Size
The default database connection pool size needs to be increased when Oracle Identity Governance is used in conjunction with a connector that allows interactions with an LDAP directory.
Parent topic: Configuring Oracle Identity Governance Using WDT
Integrating Oracle Identity Governance with LDAP
Before you integrate OIG with LDAP, you should configure the connector for LDAP and add the required object classes if any are missing.
Note:
The following sections require that you edit the property files and use those
property files with the ./OIGOAMIntegration.sh
script.
kubectl cp <OIGNS>/<OIG_DOMAIN_NAME>-adminserver:<SOURCE FILENAME> <DESTINATION_FILENAME>
Edit the file, and then copy it back. The syntax to copy a file back to Kubernetes is:
kubectl cp /workdir/OIG/configureLDAPConnector.config oigns/governancedomain-adminserver:/u01/oracle/idm/server/ssointg/config/configureLDAPConnector.config
Parent topic: Configuring Oracle Identity Governance Using WDT
Configuring the Oracle Connector for LDAP
The Oracle Connector for LDAP enables you to store users and passwords in a certified LDAP directory. Configure the connector before using it. Perform the following steps to configure the connector:
-
Change directory to
/u01/oracle/idm/server/ssointg/config
. -
Edit the
configureLDAPConnector.config
file.Following is the template file:## [configureLDAPConnector] IDSTORE_DIRECTORYTYPE=<LDAP_TYPE> OIM_HOST=<OIG_DOMAIN_NAME>-cluster-oim-cluster.<OIGNS>.svc.cluster.local OIM_PORT=14000 OIM_SERVER_SYSADMIN_USER=<LDAP_XELSYSADM_USER> OIM_WLSHOST=<OIG_DOMAIN_NAME>-adminserver-external.<OIGNS>.svc.cluster.local OIM_WLSPORT=<OIG_ADMIN_PORT> OIM_WLSADMIN=<OIG_WEBLOGIC_USER> OIM_WLSADMIN_PWD=<OIG_WEBLOGIC_PWD> IDSTORE_HOST=<LDAP_HOST> IDSTORE_PORT=<LDAP_PORT> IDSTORE_BINDDN=<LDAP_ADMIN_USER> IDSTORE_OIMADMINUSERDN=cn=<LDAP_OIGLDAP_USER>,cn=<LDAP_SYSTEMIDS>,<LDAP_SEARCHBASE> IDSTORE_SEARCHBASE=<LDAP_SEARCHBASE> IDSTORE_USERSEARCHBASE=<LDAP_USER_SEARCHBASE> IDSTORE_GROUPSEARCHBASE=<LDAP_GROUP_SEARCHBASE> IDSTORE_USERSEARCHBASE_DESCRIPTION=Default user container IDSTORE_GROUPSEARCHBASE_DESCRIPTION=Default group container IDSTORE_EMAIL_DOMAIN=<OIG_EMAIL_DOMAIN> ## For ActiveDirectory use the values of "yes" or "no". i.e. IS_LDAP_SECURE=yes/no IS_LDAP_SECURE=false SSO_TARGET_APPINSTANCE_NAME=SSOTarget ## Path to expanded connector bundle: e.g. for OID and OUD CONNECTOR_MEDIA_PATH=/u01/oracle/user_projects/domains/ConnectorDefaultDirectory/OID-12.2.1.3.0 WLS_OIM_SYSADMIN_USER_PWD=<LDAP_USER_PWD> IDSTORE_BINDDN_PWD=<LDAP_ADMIN_PWD> IDSTORE_OIMADMINUSER_PWD=<LDAP_USER_PWD>
This is a sample of the file, as an example:
##-----------------------------------------------------------## ## [configureLDAPConnector] IDSTORE_DIRECTORYTYPE=OUD OIM_HOST=governancedomain-cluster-oim-cluster.oigns.svc.cluster.local OIM_PORT=14000 OIM_SERVER_SYSADMIN_USER=xelsysadm OIM_WLSHOST=governancedomain-adminserver-external.oigns.svc.cluster.local OIM_WLSPORT=7101 OIM_WLSADMIN=weblogic OIM_WLSADMIN_PWD=<Password1> IDSTORE_HOST=edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local IDSTORE_PORT=1389 IDSTORE_BINDDN=cn=oudadmin IDSTORE_OIMADMINUSERDN=cn=oimLDAP,cn=systemids,dc=example,dc=com IDSTORE_SEARCHBASE=dc=example,dc=com IDSTORE_USERSEARCHBASE=cn=Users,dc=example,dc=com IDSTORE_GROUPSEARCHBASE=cn=Groups,dc=example,dc=com IDSTORE_USERSEARCHBASE_DESCRIPTION=Default user container IDSTORE_GROUPSEARCHBASE_DESCRIPTION=Default group container IDSTORE_EMAIL_DOMAIN=example.com ## For ActiveDirectory use the values of "yes" or "no". i.e. IS_LDAP_SECURE=yes/no IS_LDAP_SECURE=false SSO_TARGET_APPINSTANCE_NAME=SSOTarget ## Path to expanded connector bundle: e.g. for OID and OUD CONNECTOR_MEDIA_PATH=/u01/oracle/user_projects/ConnectorDefaultDirectory/OID-12.2.1.3.0 WLS_OIM_SYSADMIN_USER_PWD=<PASSWORD> IDSTORE_BINDDN_PWD=<PASSWORD> IDSTORE_OIMADMINUSER_PWD=<PASSWORD>
Note:
You can also specify the passwords directly in the file, if required. If you do not specify the passwords, you will be prompted for them at runtime.
Parameters are:
- OIM_WLSADMIN_PWD
- IDSTORE_BINDDN_PWD
- WLS_OIM_SYSADMIN_USER_PWD
- ADMIN_USER_PWD
- IDSTORE_OIMADMINUSER_PWD
Save the file.
Note:
You should use the same values as you specified for these parameters in Creating Configuration Files. -
Execute the script
OIGOAMIntegration
for configuring the connector.For example:
kubectl exec -n oigns -ti governancedomain-adminserver -- /bin/bash
cd /u01/oracle/idm/server/ssointg/bin
export JAVA_HOME=/u01/jdk
export APPSERVER_TYPE=wls
export ORACLE_HOME=/u01/oracle
export OIM_ORACLE_HOME=/u01/oracle/idm
export WL_HOME=$ORACLE_HOME/wlserver
chmod 750 _OIGOAMIntegration.sh OIGOAMIntegration.sh
./OIGOAMIntegration.sh -configureLDAPConnector
Parent topic: Integrating Oracle Identity Governance with LDAP
Adding Missing Object Classes
Note:
To successfully execute this process, theldapsearch
binary is required to be in your user's PATH and the screen
package is required to be installed on your host.
-
Change directory to
/u01/oracle/idm/server/ssointg/config
. -
Edit the file
addMissingObjectClasses.config
updating the properties as shown below:Following is the template file:IDSTORE_DIRECTORYTYPE=<LDAP_TYPE> IDSTORE_HOST=<LDAP_HOST> IDSTORE_PORT=<LDAP_PORT> IDSTORE_BINDDN=<LDAP_ADMIN_USER> IDSTORE_USERSEARCHBASE=<LDAP_USER_SEARCHBASE>
This is a sample of the file, as an example:
IDSTORE_DIRECTORYTYPE=OUD IDSTORE_HOST=edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local IDSTORE_PORT=1389 IDSTORE_BINDDN=oudadmin IDSTORE_USERSEARCHBASE=cn=Users,dc=example,dc=com
Save the file.
-
Execute the script
OIGOAMIntegration
.For example:
kubectl exec -n oigns -ti governancedomain-adminserver --/bin/bash
cd /u01/oracle/idm/server/ssointg/bin
export JAVA_HOME=/u01/jdk
export APPSERVER_TYPE=wls
export ORACLE_HOME=/u01/oracle
export OIM_ORACLE_HOME=/u01/oracle/idm
export WL_HOME=$ORACLE_HOME/wlserver
./OIGOAMIntegration.sh -addMissingObjectClasses
You will be prompted to enter the password of the LDAP directory administrator account, if you have not provided them as inputs to the parameter file.
Parent topic: Integrating Oracle Identity Governance with LDAP
Integrating Oracle Identity Governance and Oracle Access Manager
You have to complete several tasks to integrate Oracle Identity Governance and Oracle Access Manager. These tasks include creating the WLS authentication providers, deleting OIMSignatureAuthenticator and recreating OUDAuthenticator, adding the administration role to the new administration group, and so on.
- Creating WLS Authentication Providers
- Deleting OIMSignatureAuthenticator
- Recreating OUDAuthenticator
- Adding the Administration Role to the New Administration Group
- Configuring SSO Integration in the Governance Domain
- Enabling OAM Notifications
- Updating the Value of MatchLDAPAttribute in oam-config.xml
- Updating the TapEndpoint URL
Parent topic: Configuring Oracle Identity Governance Using WDT
Creating WLS Authentication Providers
You must configure the WLS authentication providers to set SSO logout and security providers in the OIG domain. This enables both the SSO login and OIM client-based login to work appropriately.
Deleting OIMSignatureAuthenticator
The createWLSAuthenticator
script creates a new security
provider called OIMSignatureAuthenticator
. This security provider
is not required in Oracle Identity Manager 12c.
To delete the security provider:
- Log in to the WebLogic Server Administration Console, if not already logged in.
- Click Lock & Edit.
- Click Security Realms on the left navigation pane.
- Click the myrealm default realm entry.
- Click the Providers tab.
- Select the security provider OIMSignatureAuthenticator.
- Click Delete.
- Click Yes to confirm the deletion.
- Click Activate Changes to propagate the changes.
Recreating OUDAuthenticator
If your target directory is OUD, then you must delete and recreate the
OUDAuthenticator
security provider.
To delete the security provider:
- Log in to the WebLogic Server Administration Console, if not already logged in.
- Click Lock & Edit.
- Click Security Realms on the left navigation pane.
- Click the myrealm default realm entry.
- Click the Providers tab.
- Select the security provider OUDAuthenticator.
- Click Delete.
- Click Yes to confirm the deletion.
- Click Activate Changes to propagate the changes.
-
Log in to the WebLogic Server Administration Console using the URL.
http://k8worker1.example.com:30711/console
-
Click Security Realms in the left navigational bar.
-
Click the myrealm default realm entry.
-
Click the Providers tab.
-
Click Lock & Edit in the Change Center.
-
Click the New button below the Authentication Providers table.
-
Enter a name for the provider.
Use one of the following names, based on the LDAP directory service you are planning to use as your credential store:
OUDAuthenticator
for Oracle Unified Directory -
From the Type drop-down list, select the authenticator type OracleUnifiedDirectoryAuthenticator for Oracle Unified Directory.
-
Click OK to return to the Providers screen.
-
On the Providers screen, click the newly created authenticator in the table.
-
Select SUFFICIENT from the Control Flag drop-down menu.
Setting the control flag to SUFFICIENT indicates that if the authenticator can successfully authenticate a user, then the authenticator should accept that authentication and should not continue to invoke any additional authenticators.
If the authentication fails, it will fall through to the next authenticator in the chain. Make sure all subsequent authenticators also have their control flags set to SUFFICIENT; in particular, check the
DefaultAuthenticator
and make sure that its control flag is set to SUFFICIENT. -
Click Save to persist the change of the control flag setting.
-
Click the Provider Specific tab and enter the details specific to your LDAP server, as shown in the following table.
Note:
Only the required fields are discussed in this procedure. For information about all the fields on this page, consider the following resources:
- To display a description of each field, click Help on the Provider Specific tab.
- For more information on setting the User Base DN, User From Name Filter, and User Attribute fields, see Configuring Users and Groups in the Oracle Internet Directory and Oracle Virtual Directory Authentication Providers in Administering Security for Oracle WebLogic Server.
Parameter Sample Value Value Description Host
For example:
edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local
The LDAP server's server ID.
Port
For example:
1389
The LDAP server's port number.
Principal
For example:
cn=
oimLDAP
,cn=systemids,dc=example,dc=comThe LDAP user DN used to connect to the LDAP server.
Credential
Enter LDAP password.
The password used to connect to the LDAP server.
SSL Enabled
Unchecked (clear)
Specifies whether SSL protocol is used when connecting to the LDAP server.
User Base DN
For example:
cn
=users,dc=example,dc=com
Specify the DN under which your users start.
All Users Filter
(&(uid=*)(objectclass=person))
Instead of a default search criteria for All Users Filter, search all users based on the
uid
value.If the User Name Attribute for the user object class in the LDAP directory structure is a type other than
uid
, then change that type in the User From Name Filter field.For example, if the User Name Attribute type is
cn
, then this field should be set to:(&(cn=*)(objectclass=person)))
User From Name Filter
For example:
(&(uid=%u)(objectclass=person))
If the User Name Attribute for the user object class in the LDAP directory structure is a type other than
uid
, then change that type in the settings for the User From Name Filter.For example, if the User Name Attribute type is
cn
, then this field should be set to:(&(cn=%u)(objectclass=person)))
.User Name Attribute
For example:
uid
The attribute of an LDAP user object that specifies the name of the user.
Use Retrieved User Name as Principal
Checked
Must be turned on.
Group Base DN
For example:
cn
=groups,dc=example,dc=com
Specify the DN that points to your Groups node.
All Groups Filter
(&(cn=*)(objectclass=groupOfUniqueNames))
Specify the group filter.
GUID Attribute
entryuuid
This value is prepopulated with
entryuuid
whenOracleUnifiedDirectoryAuthenticator
is used for OUD. Check this value if you are using Oracle Unified Directory as your authentication provider. -
Click Save to save the changes.
-
Return to the Providers page by clicking Security Realms in the right navigation pane, clicking the default realm name (myrealm), and then Providers.
-
Click Reorder and use the resulting page to reorder the list of providers so that they match the order given below:
List of Authentication Providers- OAMIDAsserter
- OUDAuthenticator
- DefaultAuthenticator
- OIMAuthenticationProvider
- Trust Service Identity Asserter
- DefaultIdentityAsserter
-
Click OK.
-
In the Change Center, click Activate Changes.
-
You have to restart the domain for the changes to take effect. You can restart by using the following commands:
kubectl -n <OIGNS> patch domains <OIG_DOMAIN_NAME> --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "Never" }]'
After everything is stopped, it can be restarted using the following command:kubectl -n <OIGNS> patch domains <OIG_DOMAIN_NAME> --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IfNeeded" }]'
For example:kubectl -n oigns patch domains governancedomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "Never" }]' kubectl -n oigns patch domains governancedomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IfNeeded" }]'
-
After the restart, review the contents of the
AdminServer.log
file, available in the following location:/u01/oracle/user_projects/domains/logs/governancedomain
Verify that no LDAP connection errors occurred. For example, look for errors such as the following:
The LDAP authentication provider named "OUDAuthenticator" failed to make connection to ldap server at ...
If you see such errors in the log file, then check the authorization provider connection details to verify they are correct and try saving and restarting the Administration Server again.
-
After you restart and verify that no LDAP connection errors are in the log file, try browsing the users and groups that exist in the LDAP provider:
In the Administration Console, navigate to the Security Realms > myrealm > Users and Groups page. You should be able to see all users and groups that exist in the LDAP provider structure.
Adding the Administration Role to the New Administration Group
This enables all users that belong to the group to be administrators for the domain.
To assign the Administration role to the new enterprise deployment administration group:
Configuring SSO Integration in the Governance Domain
After deploying the connector, the next step in the process is the configuration of SSO in the domain. To configure SSO, perform the following steps:
-
Change directory to
/u01/oracle/idm/server/ssointg/config
-
Edit the file
configureSSOIntegration.config
to update the properties in the section configureSSOIntegration, as shown below:This is the template file:
NAP_VERSION=4 COOKIE_EXPIRY_INTERVAL=120 OAM_HOST=<OAM_LOGIN_LBR_HOST> OAM_PORT=<OAM_LOGIN_LBR_PORT> ACCESS_SERVER_HOST=<OAM_DOMAIN_NAME>-oap.<OAMNS>.svc.cluster.local ACCESS_SERVER_PORT=<OAM_OAP_PORT> OAM_SERVER_VERSION=12c WEBGATE_TYPE=ohsWebgate12c ACCESS_GATE_ID=Webgate_IDM ACCESS_GATE_PWD=<PASSWORD> COOKIE_DOMAIN=example.com OAM_TRANSFER_MODE=open OIM_LOGINATTRIBUTE=uid SSO_ENABLED_FLAG=true SSO_INTEGRATION_MODE=CQR OAM11G_WLS_ADMIN_HOST=<OAM_DOMAIN_NAME>-adminserver.<OAMNS>.svc.cluster.local OAM11G_WLS_ADMIN_PORT=30012 OAM11G_WLS_ADMIN_USER=<OAM_WEBLOGIC_USER> OAM11G_WLS_ADMIN_PASSWD=<OAM_WEBLOGIC_PWD> OAM11G_IDSTORE_NAME=OAMIDSTORE ## Required if OAM_TRANSFER_MODE is not OPEN SSO_KEYSTORE_JKS_PASSWORD=<GLOBAL_PASSPHRASE> SSO_GLOBAL_PASSPHRASE=<GLOBAL_PASSPHRASE> OIM_WLSHOST=<OIG_DOMAIN_NAME>-adminserver.<OIGNS>.svc.cluster.local OIM_WLSPORT=<OIG_ADMIN_PORT> OIM_WLSADMIN=<OIG_WEBLOGIC_USER> IDSTORE_OAMADMINUSER_PWD=<LDAP_USER_PWD> OIM_SERVER_NAME=<OIM_SERVER_NAME> IDSTORE_OAMADMINUSER=<LDAP_OAMADMIN_USER>
This is a sample file:NAP_VERSION=4 COOKIE_EXPIRY_INTERVAL=120 OAM_HOST=login.example.com OAM_PORT=443 ACCESS_SERVER_HOST=accessdomain-oap.oamns.svc.cluster.local ACCESS_SERVER_PORT=5575 OAM_SERVER_VERSION=12c WEBGATE_TYPE=ohsWebgate12c ACCESS_GATE_ID=Webgate_IDM ACCESS_GATE_PWD=<password> COOKIE_DOMAIN=example.com OAM_TRANSFER_MODE=Simple OIM_LOGINATTRIBUTE=uid SSO_ENABLED_FLAG=true SSO_INTEGRATION_MODE=CQR OAM11G_WLS_ADMIN_HOST=accessdomain-adminserver.oamns.svc.cluster.local OAM11G_WLS_ADMIN_PORT=30012 OAM11G_WLS_ADMIN_USER=weblogic OAM11G_WLS_ADMIN_PASSWD=<PASSWORD> OAM11G_IDSTORE_NAME=OAMIDSTORE ## Required if OAM_TRANSFER_MODE is not OPEN SSO_KEYSTORE_JKS_PASSWORD=<GLOBAL_PASSPHRASE> SSO_GLOBAL_PASSPHRASE=<GLOBAL_PASSPHRASE> OIM_WLSHOST=governancedomain-adminserver.oigns.svc.cluster.local OIM_WLSPORT=7101 OIM_WLSADMIN=weblogic IDSTORE_OAMADMINUSER_PWD=<password> OIM_SERVER_NAME=oim_server1 IDSTORE_OAMADMINUSER=oamadmin
Save the file when done.
Note:
Substitute the variables with values applicable to your deployment. See Variables Used in this Chapter. The other specified values should be used as is. -
Execute the
OIGOAMIntegration
script for configuring SSO Integration.For example:
kubectl exec -n oigns -ti governancedomain-adminserver -- /bin/bash
cd /u01/oracle/idm/server/ssointg/bin
export JAVA_HOME=/u01/jdk
export APPSERVER_TYPE=wls
export ORACLE_HOME=/u01/oracle
export OIM_ORACLE_HOME=/u01/oracle/idm
export WL_HOME=$ORACLE_HOME/wlserver
chmod 750 _OIGOAMIntegration.sh OIGOAMIntegration.sh
./OIGOAMIntegration.sh -configureSSOIntegration
-
Restart the domains IAMAccessDomain and IAMGovernanceDomain.
Enabling OAM Notifications
After deploying the connector, the next step in the process is to tell OIM how to interact with OAM for terminating a user session after a user name expires or gets terminated. To complete this activity, you need to perform the following steps:
-
Change directory to
/u01/oracle/idm/server/ssointg/config
. -
Edit the
enableOAMSessionDeletion.config
file to update the properties in the enableOAMNotifications section.This is the template of the file:
OIM_WLSHOST: <OIG_DOMAIN_NAME>-adminserver.<OIGNS>.svc.cluster.local OIM_WLSPORT=<OIG_ADMIN_PORT> OIM_WLSADMIN=<OIG_WEBLOGIC_USER> OIM_WLSADMIN_PWD=<OIG_WEBLOGIC_PWD> IDSTORE_DIRECTORYTYPE=<LDAP_TYPE> IDSTORE_HOST=<LDAP_HOST> IDSTORE_PORT=<LDAP_PORT> IDSTORE_BINDDN=<LDAP_ADMIN_USER> IDSTORE_GROUPSEARCHBASE=<LDAP_GROUP_SEARCHBASE> IDSTORE_SYSTEMIDBASE: cn=<LDAP_SYSTEMIDS>,<LDAP_SEARCHBASE> IDSTORE_OAMADMINUSER: <LDAP_OAMADMIN_USER> IDSTORE_OAMSOFTWAREUSER: <LDAP_OAMLDAP_USER> IDSTORE_USERSEARCHBASE: <LDAP_USER_SEARCHBASE> OIM_SERVER_NAME: <OIM_SERVER_NAME>
Here is the sample file:OIM_WLSHOST: governancedomain-adminserver.oigns.svc.cluster.local OIM_WLSPORT: 7101 OIM_WLSADMIN: weblogic OIM_WLSADMIN_PWD: <password> IDSTORE_DIRECTORYTYPE: OUD IDSTORE_HOST: edg-oud-ds-rs-lbr-ldap.oudns.svc.cluster.local IDSTORE_PORT: 1389 IDSTORE_BINDDN: cn=oudadmin IDSTORE_GROUPSEARCHBASE: cn=Groups,dc=example,dc=com IDSTORE_SYSTEMIDBASE: cn=systemids,dc=example,dc=com IDSTORE_OAMADMINUSER: oamAdmin IDSTORE_OAMSOFTWAREUSER: oamLDAP IDSTORE_USERSEARCHBASE: cn=Users,dc=example,dc=com OIM_SERVER_NAME: oim_server1
-
Execute the script
OIGOAMIntegration
for enabling notifications.For example:
kubectl exec -n oigns -ti governancedomain-adminserver -- /bin/bash
cd /u01/oracle/idm/server/ssointg/bin
export JAVA_HOME=/u01/jdk
export APPSERVER_TYPE=wls
export ORACLE_HOME=/u01/oracle
export OIM_ORACLE_HOME=/u01/oracle/idm
export WL_HOME=$ORACLE_HOME/wlserver
chmod 750 _OIGOAMIntegration.sh OIGOAMIntegration.sh
./OIGOAMIntegration.sh -enableOAMSessionDeletion
Updating the Value of MatchLDAPAttribute in oam-config.xml
To complete the Oracle Identity Governance integration with Oracle Access Manager, one of
the settings in the Oracle Access Manager's oam-config.xml
file needs
to be changed. As of version 12c, this file is stored in the database and should not be
edited directly.
oam-config.xml
file:
Note:
Ensure that the cURL package has been added to the host by executingwhich curl
at the command line.
If the package is not installed, an administrator must install the package by executing
yum install curl
.
Updating the TapEndpoint URL
For OAM/OIM integration to work you must update the OAM TapEndpoint URL you do this by performing the following steps.
-
Log in to Oracle Fusion Middleware Control using the following URL:
http://igdadmin.example.com/em
Or
http://k8worker1.example.com:30711/em
The Administration Server host and port number were in the URL on the End of Configuration screen (Writing Down Your Domain Home and Administration Server URL). The default Administration Server port number is 7101.
-
Click WebLogic Domain, and click System MBean Browser.
In the search box, enter SSOIntegrationMXBean, and click Search. The mbean is displayed.
-
Set the value of TapEndpointURL to
https://login.example.com/oam/server/dap/cred_submit
-
Click Apply.
Running the Reconciliation Jobs
Run the Oracle Identity Governance domain to import the LDAP user names into the Oracle Identity Governance database.
To run the reconciliation jobs:
- Log in to the OIM System Administration Console as the user
xelsysadm
. - Click Scheduler under System Configuration.
- Enter
SSO*
in the search box. - Click the arrow for the Search Scheduled Jobs to list all the schedulers.
- Select SSO User Full Reconciliation.
- Click Run Now to run the job.
- Repeat for SSO Group Create And Update Full Reconciliation.
- Log in to the OIM Identity Console and verify that the user
weblogic_iam
is visible.
Parent topic: Configuring Oracle Identity Governance Using WDT
Configuring OIM Workflow Notifications to be Sent by Email
OIM uses the human workflow, which is integrated with the SOA workflow. The SOA server configures email to receive the notifications that are delivered to the user mailbox. The user can accept or reject the notifications.
Both incoming and outgoing email addresses and mailboxes dedicated to the portal workflow are required for the full functionality. See Configuring Human Workflow Notification Properties in Administering Oracle SOA Suite and Oracle Business Process Management Suite.
To configure the OIM workflow notifications:
- Log in to the Fusion Middleware Control by using the administrators account. For example,
weblogic_iam
. - Expand the Target Navigation panel and navigate to SOA > soa-infra (soa_server1) service.
- From the SOA infrastructure drop-down, select SOA Administration > Workflow Properties.
- Set the Notification mode to Email. Provide the correct e-mail address for the notification service.
- Click Apply and confirm when prompted.
- Verify the changes.
- Expand Target Navigation, select User Messaging Service, and then usermessagingdriver-email (soa_servern). Each SOA Managed Server that is running will have a driver. Only one of these entries should be selected.
- From the User Messaging Email Driver drop-down list, select Email Driver Properties.
- Click Create if the email driver does not exist already.
- Click Test and verify the changes.
- Click OK to save the email driver configuration.
- Restart the SOA cluster. No configuration or restart is required for OIM.
Parent topic: Configuring Oracle Identity Governance Using WDT
Adding the wsm-pm Role to the Administrators Group
After you configure a new LDAP-based Authorization Provider and restart the
Administration Server, add the enterprise deployment administration LDAP group (WLSAdministrators
) as a member to the
policy.Updater
role in the wsm-pm
application
stripe.
Parent topic: Configuring Oracle Identity Governance Using WDT
Adding the WebLogic Administration Group to SOA Administrators
To manage SOA using the users in the LDAP administration group 'WLSAdministrators', you should add the name of the group to the SOA Administrators group.
- Sign in to the Fusion Middleware Control by using the administrator's account. For example: weblogic.
- In the navigation pane, click WebLogic Domain and from the Security menu, select Application Roles.
- From the drop-down list, select soa-infra to set the application stripe. Click Search.
- Click SOAAdmin. Ensure that you see Administrators in the membership box.
- Click Edit. The Edit page is displayed.
- Click Add in the Members box. The
Add Principal search box is displayed.
Parent topic: Configuring Oracle Identity Governance Using WDT
Adding the Oracle Access Manager Load Balancer Certificate to the Oracle Keystore Service
The Oracle Identity Governance to Business Intelligence Reports link inside of the Self Service application requires that the SSL certificate used by the load balancer be added to the Oracle Keystore Service Trusted Certificates.
Parent topic: Configuring Oracle Identity Governance Using WDT
Setting the Initial Server Count
When you first created the domain, you specified that only one Managed Server has to be started. This value ensured that the OIG bootstrap process was completed successfully. After you complete the configuration, you can increase the initial server count to the actual number you require.
When the domain is created, two files, namely
domain.yaml
and domain_oim_soa.yaml
are also created. You used these files to initialize the domain in Kubernetes. After
completing the initial configuration and the bootstrap process, you no longer need
to use the domain.yaml
file. The
domain_oim_soa.yaml
file will start the necessary
servers.
domain
file. To increase the server count, use the following
command:kubectl patch cluster -n <OIGNS> <OIG_DOMAIN_NAME>-${CLUSTER_NAME} --type=merge -p '{"spec":{"replicas":<INITIAL_SERVER_COUNT>}}'
kubectl patch cluster -n oigns governancedomain-soa-cluster --type=merge -p '{"spec":{"replicas":2}}'
kubectl patch cluster -n oigns governancedomain-oim-cluster --type=merge -p '{"spec":{"replicas":2}}'
Parent topic: Configuring Oracle Identity Governance Using WDT
Setting Challenge Questions
If you have integrated OAM and OIM, then after the environment is ready, you need to set up the challenge questions for your system users.
To set up the challenge questions, log in to Identity Self Service using the URL: https://prov.example.com/identity.
Log in with your user name and when prompted, add the challenge questions. You should set up these questions for the following users:
xelsysadm
weblogic_iam
oamadmin
Parent topic: Configuring Oracle Identity Governance Using WDT
Integrating Oracle Identity Manager with Oracle Business Intelligence Publisher
Oracle Identity Manager comes with a number of prebuilt reports that can be used to provide information about Oracle Identity and Access Management.
Oracle Identity Manager reports are classified based on the functional areas such as Access Policy Reports, Request and Approval Reports, Password Reports, and so on. It is no longer named Operational and Historical. These reports are not generated through Oracle Identity Manager but by the Oracle Business Intelligence Publisher (BIP). Oracle Identity Manager reports provide a restriction for Oracle BI Publisher.
The setup of a highly available enterprise deployment of Oracle BI Publisher is beyond the scope of this document. For more information, see Understanding the Business Intelligence Enterprise Deployment Topology in the Enterprise Deployment Guide for Business Intelligence.
Note:
During BI configuration for Oracle Identity Manager, you must configure only Business Intelligence Publisher. If you select other components during BI Publisher configuration, such as Business Intelligence Enterprise Edition and Essbase, the integration with Oracle Identity Manager may not work. See Configuring Reports in Developing and Customizing Applications for Oracle Identity Governance- Creating a User to Run BI Reports
- Configuring Oracle Identity Manager to Use BI Publisher
- Assigning the BIServiceAdministrator Role to idm_report
- Storing the BI Credentials in Oracle Identity Governance
- Creating OIM and BPEL Data Sources in BIP
- Deploying Oracle Identity Governance Reports to BI
- Enable Certification Reports
- Validating the Reports
- Adding the Business Intelligence Load Balancer Certificate to Oracle Keystore Trust Service
- Restarting the IAMGovernanceDomain
You have to restart the domain for the changes to take effect.
Parent topic: Configuring Oracle Identity Governance Using WDT
Creating a User to Run BI Reports
You may ignore this section if you already have a user to run reports in your Business Intelligence domain.
If you need to create a user in your BI Publisher domain to run reports, use the
following LDIF
command to create a user in the LDAP
directory.
Configuring Oracle Identity Manager to Use BI Publisher
You can set up Oracle BI Publisher to generate Oracle Identity Manager reports.
To configure Oracle Identity Manager to use the BI Publisher:
Assigning the BIServiceAdministrator Role to idm_report
If you are using LDAP as your identity store in the Business Intelligence (BI) domain, you must have created an LDAP authenticator in the BI domain. You can view the user and group names stored within LDAP.
The Oracle Identity Manager (OIM) system administration account (for example,
idm_report
) needs to be assigned the
BIServiceAdministrator
role, to generate reports.
To assign this role:
Storing the BI Credentials in Oracle Identity Governance
Creating OIM and BPEL Data Sources in BIP
Create OIM Datasource
Oracle BIP must be connected to the OIM and SOA database schemas to run a report.
In order to do this you need to create BIP datasources using the following procedure:
-
Login to the BI Publisher Home page using the URL
https://bi.example.com/xmlpserver
-
Click the Administration link on the top of the BI Publisher Home page. The BI Publisher Administration page is displayed.
-
Under Data Sources, click JDBC Connection link. The Data Sources page is displayed.
-
In the JDBC tab, click Add Data Source to create a JDBC connection to your database. The Add Data Source page is displayed.
-
Enter values in the following fields:
Table 19-8 OIM Add Data Source Attributes
Attributes Value Data Source Name
Specify the Oracle Identity Governance JDBC connection name. For example, OIM JDBC.
Driver Type
Select Oracle 11g for an 11g database and Oracle 12c for a 12c database
Database Driver Class
Specify a driver class to suit your database, such as
oracle.jdbc.OracleDriver
Connection String
Specify the database connection details in the format
jdbc:oracle:thin:@HOST_NAME:PORT_NUMBER/SID
.For example,
jdbc:oracle:thin:@igddbscan:1521/oim.example.com
User name
Specify the Oracle Identity Governance database user name for example IGD_OIM
Password
Specify the Oracle Identity Governance database user password.
-
Click Test Connection to verify the connection.
-
Click Apply to establish the connection.
-
If the connection to the database is established, a confirmation message is displayed indicating the success.
-
Click Apply.
In the JDBC page, you can see the newly defined Oracle Identity Governance JDBC connection in the list of JDBC data sources.
Create BPEL Datasource
-
Login to the BI Publisher Home page using the URL
https://bi.example.com/xmlpserver
. -
Click the Administration link on the BI Publisher home page. The BI Publisher Administration page is displayed.
-
Under Data Sources, click JDBC Connection link. The Data Sources page is displayed.
-
In the JDBC tab, click Add Data Source to create a JDBC connection to your database. The Add Data Source page is displayed.
-
Enter values in the following fields:
Table 19-9 JDBC Add Data Source Attributes
Attributes Value Data Source Name
Specify the Oracle Identity Governance JDBC connection name. For example, BPEL JDBC.
Driver Type
Oracle 12c
Database Driver Class
Specify a driver class to suit your database, such as
oracle.jdbc.OracleDriver
Connection String
Specify the database connection details in the format
jdbc:oracle:thin:@HOST_NAME:PORT_NUMBER/SID
.For example,
jdbc:oracle:thin:@igddbscan:1521/oim.example.com
User name
Specify the Oracle Identity Governance database user name for example IGD_SOAINFRA.
Password
Specify the Oracle Identity Governance database user password.
-
Click Test Connection to verify the connection.
-
Click Apply to establish the connection.
-
If the connection to the database is established, a confirmation message is displayed indicating the success.
-
Click Apply.
In the JDBC page, you can see the newly defined Oracle Identity Governance JDBC connection in the list of JDBC data sources.
Deploying Oracle Identity Governance Reports to BI
Enable Certification Reports
- Log in to the Oracle Identity Self Service using the url:
https://prov.example.com/identity
. - Click the Compliance tab.
- Click the Identity Certification box.
- Select Certification Configuration. The Certification Configuration page is displayed.
- Select the Enable Certification Reports.
- Click Save.
Note:
By default, the Compliance tab is not shown. If you want to enable compliance functionality, you must fist set theOIGIsIdentityAuditorEnabled
property to
true in the Sysadmin Console (located in the
Configuration Properties section).
Validating the Reports
We need to create the sample data source to generate reports against the sample data source.
Creating the Sample Reports
To view an example report data without running a report against the production JDBC Data Source, generate a sample report against the sample data source. Create the sample data source before you can generate the sample reports.
Generating Reports Against the Sample Data Source
- Login to Oracle BI Publisher using the url :
https://bi.example.com/xmlpserver
. - Click Shared Folders.
- Click Oracle Identity Manager Reports.
- Select Sample Reports.
- Click View for the sample report you want to generate.
- Select an output format for the sample report and click View.
The sample report is generated.
Parent topic: Validating the Reports
Generating Reports Against the Oracle Identity Manager JDBC Data Source
Parent topic: Validating the Reports
Generating Reports Against the BPEL-Based JDBC Data Source
Reports With Secondary Data Source
The following four reports have a secondary data source, which connects to the BPEL database to retrieve the BPEL data:
-
Task Assignment History
-
Request Details
-
Request Summary
-
Approval Activity
These reports have a secondary data source (BPEL-based JDBC data source) called BPEL JDBC. To generate reports against the BPEL-based JDBC data source:
Parent topic: Validating the Reports
Adding the Business Intelligence Load Balancer Certificate to Oracle Keystore Trust Service
The Oracle Identity Governance to Business Intelligence Reports link inside of the Self Service application requires that the SSL certificate used by the load balancer be added to the Oracle Keystore Service Trusted Certificates.
To add the certificate:
Restarting the IAMGovernanceDomain
You have to restart the domain for the changes to take effect.
kubectl -n <OIGNS> patch domains <OIG_DOMAIN_NAME> --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "NEVER" }]'
kubectl -n <OIGNS> patch domains <OIG_DOMAIN_NAME> --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IF_NEEDED" }]'
kubectl -n oigns patch domains governancedomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "NEVER" }]'
kubectl -n oigns patch domains governancedomain --type='json' -p='[{"op": "replace", "path": "/spec/serverStartPolicy", "value": "IF_NEEDED" }]'
Enabling Design Console Access
You cannot access the Design Console that is installed as part of the installation because it is inside a container and requires access to an external X Window environment.
If you want to use the Design Console, you must create a standalone installation and point it to the deployment.
The Design Console interacts with OIG using the T3 protocol. This protocol is not enabled by default.
To enable access to the Design Console:
- Expose the OIM servers' T3 port using Ingress or NodePort.
- Update the T3 channel inside the WebLogic Server to allow requests to a named Kubernetes worker node.
- Add a Java switch to allow external access to the T3 port.
- Creating an Ingress Service to Expose the T3 Port
- Creating a NodePort Service to Expose the T3 Port
- Updating the T3 Channel
- Adding the Java Property to the domain_oim_soa.yaml File
- Accessing the OIG Deployment from the Design Console
Parent topic: Configuring Oracle Identity Governance Using WDT
Creating an Ingress Service to Expose the T3 Port
A T3 channel is already created as part of the deployment. To can expose this T3 port using Ingress:
Parent topic: Enabling Design Console Access
Creating a NodePort Service to Expose the T3 Port
A T3 channel is already created as part of the deployment. You need to create a NodePort service to interact with T3 channel.
Note:
T3 is exposed from only one Managed Server/Pod in the cluster at a given time.- Create the
/workdir/OIG/oim_t3_nodeport.yaml
file with the following content:kind: Service apiVersion: v1 metadata: name: <OIG_DOMAIN_NAME>-oim-t3-nodeport namespace: <OIGNS> spec: type: NodePort selector: weblogic.clusterName: oim_cluster weblogic.domainUID: <OIG_DOMAIN_NAME> weblogic.serverName: oim_server1 ports: - targetPort: 14002 port: 14002 nodePort: <OIG_OIM_T3_PORT_K8> protocol: TCP sessionAffinity: ClientIP
For example:
kind: Service apiVersion: v1 metadata: name: governancedomain-oim-t3-nodeport namespace: oigns spec: type: NodePort selector: weblogic.clusterName: oim_cluster weblogic.domainUID: governancedomain weblogic.serverName: oim_server1 ports: - targetPort: 14002 port: 14002 nodePort: 30142 protocol: TCP sessionAffinity: ClientIP
- Create the service using the
command:
kubectl apply -f /workdir/OIG/oim_t3_nodeport.yaml
You can check that the service is created successfully by using the following command:
kubectl get service -n <OIGNS>
For example:kubectl get service -n oigns
The output appears as follows:service/governancedomain-oim-t3-nodeport created
Parent topic: Enabling Design Console Access
Updating the T3 Channel
After you create the NodePort Service, you have to bind WebLogic Server to it.
To bind the service:
- Log in to the WebLogic Console using the
http://igdadmin.example.com/console
URL. - Navigate to Environment, click Servers, and then select oim_server1.
- Click Protocols, and then click Channels.
- Click the default T3 channel called T3Channel.
- Click Lock and Edit.
- Set the External Listen Address to one of the Kubernetes worker node. For example: K8WORKER1.example.com.
- Set the External Listen Port to the Kubernetes service port you defined earlier. See Creating a NodePort Service to Expose the T3 Port. For example: 30142.
- Click Save.
- Click Apply Changes.
Parent topic: Enabling Design Console Access
Adding the Java Property to the domain_oim_soa.yaml File
Parent topic: Enabling Design Console Access
Accessing the OIG Deployment from the Design Console
After you have performed a standalone deployment of the Design Console, you can access the console by using the following URL:
http://K8WORKER1.example.com:30142/
Note:
The http protocol is used rather than the usual T3 protocol because you are using a WebLogic Channel.Parent topic: Enabling Design Console Access
Centralized Monitoring Using Grafana and Prometheus
To use the centralized Prometheus and Grafana for monitoring your infrastructure, perform the following steps:
- Downloading and Compiling the Monitoring Application
- Deploying the Monitoring Application into the WebLogic Domain
- Configuring the Prometheus Operator
- Discovering the Prometheus Service
Parent topic: Configuring Oracle Identity Governance Using WDT
Downloading and Compiling the Monitoring Application
Parent topic: Centralized Monitoring Using Grafana and Prometheus
Deploying the Monitoring Application into the WebLogic Domain
The earlier section created a number of WAR files containing the monitoring application. See Downloading and Compiling the Monitoring Application. These files need to be deployed inside the WebLogic domain. Oracle provides a script to deploy the files. Before you run the script, copy the files to the container containing the WebLogic Administration Server.
To deploy the application:
Parent topic: Centralized Monitoring Using Grafana and Prometheus
Configuring the Prometheus Operator
Prometheus enables you to collect metrics from the WebLogic Monitoring Exporter. The Prometheus Operator identifies the targets by using service discovery. To get the WebLogic Monitoring Exporter end point discovered as a target, you must create a service monitor that points to the service.
The exporting of metrics from wls-exporter
requires
basicAuth
. Therefore, a Kubernetes secret is created with the
user name and password that are base64
encoded. This secret is used
in the ServiceMonitor
deployment. The
wls-exporter-ServiceMonitor.yaml
file has
basicAuth
with credentials as username: <OIG_WEBLOGIC_USER
> and password:
<OIG_WEBLOGIC_PWD
> in
base64
encoded.
Parent topic: Centralized Monitoring Using Grafana and Prometheus
Discovering the Prometheus Service
ServiceMonitor
,
wls-exporter
is discovered by Prometheus and is able to collect the
metrics.
Parent topic: Centralized Monitoring Using Grafana and Prometheus
Centralized Log File Monitoring Using Elasticsearch and Kibana
- OIG persistent volume, so it can be loaded by the Logstash pod to hunt for log files.
- The location of the log files in the persistent volumes.
- The location of the centralized Elasticsearch.
To configure the Logstash pod, perform the following steps. The assumption
is that you have an Elasticsearch running inside the Kubernetes cluster, in a namespace
called elkns
.
- Creating a Secret for Elasticsearch
- Creating a Configuration Map for ELK Certificate
- Creating a Configuration Map for Logstash
- Creating a Logstash Deployment
Parent topic: Configuring Oracle Identity Governance Using WDT
Creating a Secret for Elasticsearch
Logstash requires credentials to connect to the elasticsearch deployment. These credentials are stored in Kubernetes as a secret.
kubectl create secret generic elasticsearch-pw-elastic -n <OIGNS> --from-literal password=<ELK_APIKEY>
kubectl create secret generic elasticsearch-pw-elastic -n oigns --from-literal password=afshfashfkahf5f
kubectl create secret generic elasticsearch-pw-elastic -n <OIGNS> --from-literal password=<ELK_PWD>
kubectl create secret generic elasticsearch-pw-elastic -n oigns --from-literal password=mypassword
kubectl get secret elasticsearch-es-elastic-user -n <ELKNS> -o go-template='{{.data.elastic | base64decode}}'
Creating a Configuration Map for ELK Certificate
If you have configured a production ready Elasticsearch deployment, you would have configured SSL. Logstash needs to trust the Elasticsearch certificate to be able to communicate with it. To enable this trust, you should create a configuration map with the contents of the Elasticsearch certificate.
You would have already saved the Elasticsearch self-signed certificate. See Copying the Elasticsearch Certificate. If you have a production certificate you can use that instead.
Creating a Configuration Map for Logstash
Logstash looks for log files in the OAM installations and sends them to the centralized Elasticsearch. The configuration map is used to instruct Logstash where the log files reside and where to send them.
Backing Up the Configuration
As a best practice, Oracle recommends you to back up the configuration after you have successfully extended a domain or at another logical point. Back up only after you have verified that the installation is successful so far. This is a quick backup to enable immediate restoration in case of problems in later steps.
In a Kubernetes environment, it is sufficient to back up the persistent volume and the database.
The backup destination is the local disk. You can discard this backup when the enterprise deployment setup is complete. After the enterprise deployment setup is complete, you can initiate the regular deployment-specific Backup and Recovery process.
For information about backing up your configuration, see Performing Backups and Recoveries for an Enterprise Deployment.
Parent topic: Configuring Oracle Identity Governance Using WDT
Running the OIM Bulkload Utility from a Container
If you want to run the oimbulkload
utility from a container,
create a new container image based on the Oracle Database Instant Client which also has a
JDK and the oimbulkload
utility installed.
Before you begin you must download a Java Development Kit RPM image.
This section includes the following topics:
- Creating a Working Directory
- Obtaining JDK Release 8
- Compiling the wlfullclient jar File in the Container
- Copying the Bulkload Directory from the OIG Container
- Creating a Dockerfile
- Checking the Working Directory
- Building the Image
- Starting the Image
Parent topic: Configuring Oracle Identity Governance Using WDT
Creating a Working Directory
Create a working directory to hold all of the objects you need to build the image.
mkdir -p /workdir/bulkload
Parent topic: Running the OIM Bulkload Utility from a Container
Obtaining JDK Release 8
- Download the RPM for java JDK release 8 from Java SE 8 Archive Downloads page.
- Copy the downloaded JDK to your working directory
/workdir/bulkload
.
Parent topic: Running the OIM Bulkload Utility from a Container
Compiling the wlfullclient jar File in the Container
The oimbulkload
utility is dependent on the
wlfullclient.jar
file. You should generate this file inside
the OIG Administration Server image by using the following command:
kubectl exec -it -n <OIGNS> <OIG_DOMAIN_NAME>-adminserver -- bash -c 'cd /u01/oracle/wlserver/server/lib ; java -jar wljarbuilder.jar'
kubectl exec -it -n oigns governancedomain-adminserver -- bash -c 'cd /u01/oracle/wlserver/server/lib ; java -jar wljarbuilder.jar'
wlfullclient.jar
.
Note:
This file exists only until the adminserver pod is restarted. It is not required after you create the bulk load image.Parent topic: Running the OIM Bulkload Utility from a Container
Copying the Bulkload Directory from the OIG Container
oimbulkload
utility is made up of a number of files
in the Oracle container image. You should copy these files to your work directory,
in a subdirectory called u01
, by using the following
commands:export MW_HOME=/u01/oracle
kubectl exec -it -n oigns governancedomain-adminserver -- bash -c 'cd /u01/oracle/wlserver/server/lib ; java -jar wljarbuilder.jar'
kubectl cp oigns/governancedomain-adminserver:/u01/oracle/idm/server/db/oim/oracle/Utilities/oimbulkload u01/oracle/idm/server/db/oim/oracle/Utilities/oimbulkload
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/oracle_common/modules/javax.management.j2ee.jar u01/oracle/oracle_common/modules/javax.management.j2ee.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/wlserver/modules/com.bea.core.diagnostics.flightrecorder.jar u01/oracle/wlserver/modules/com.bea.core.diagnostics.flightrecorder.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/wlserver/modules/com.oracle.weblogic.rjvm.jar u01/oracle/wlserver/modules/com.oracle.weblogic.rjvm.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/wlserver/modules/com.oracle.weblogic.security.crypto.utils.jar u01/oracle/wlserver/modules/com.oracle.weblogic.security.crypto.utils.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/oracle_common/modules/clients/com.oracle.webservices.wls.jaxws-owsm-client.jar u01/oracle/oracle_common/modules/clients/com.oracle.webservices.wls.jaxws-owsm-client.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/idm/server/idmdf/idmdf-common.jar u01/oracle/idm/server/idmdf/idmdf-common.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/idm/server/idmdf/event-recording-client.jar u01/oracle/idm/server/idmdf/event-recording-client.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/oracle_common/modules/thirdparty/spring-context-5.1.3.RELEASE.jar u01/oracle/oracle_common/modules/thirdparty/spring-context-5.1.3.RELEASE.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/idm/server/client/oimclient.jar u01/oracle/idm/server/client/oimclient.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/oracle_common/modules/oracle.jrf/jrf-api.jar u01/oracle/oracle_common/modules/oracle.jrf/jrf-api.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/oracle_common/modules/org.apache.commons.logging_1.2.jar u01/oracle/oracle_common/modules/org.apache.commons.logging_1.2.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/wlserver/server/lib/wlthint3client.jar u01/oracle/wlserver/server/lib/wlthint3client.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/wlserver/server/lib/wlfullclient.jar u01/oracle/wlserver/server/lib/wlfullclient.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/idm/server/apps/oim.ear/APP-INF/lib/OIMServer.jar u01/oracle/idm/server/apps/oim.ear/APP-INF/lib/OIMServer.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/idm/server/apps/oim.ear/APP-INF/lib/iam-platform-utils.jar u01/oracle/idm/server/apps/oim.ear/APP-INF/lib/iam-platform-utils.jar
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/idm/server/config u01/oracle/idm/server/config
kubectl cp oigns/governancedomain-adminserver:$MW_HOME/oracle_common/modules/thirdparty/spring-core-5.1.3.RELEASE.jar u01/oracle/oracle_common/modules/thirdparty/spring-core-5.1.3.RELEASE.jar
chmod +x u01/oracle/idm/server/db/oim/oracle/Utilities/oimbulkload/scripts/*.sh
Note:
There is no '/' in front ofu01
by
design.
Parent topic: Running the OIM Bulkload Utility from a Container
Creating a Dockerfile
A Dockerfile
is used to determine how the image is built. This
file resides in the work directory regardless of whether you are using Docker or
podman to build the image. It has the following contents:
FROM ghcr.io/oracle/oraclelinux7-instantclient:21
ADD /jdk-8u202-linux-x64.rpm /jdk-8u202-linux-x64.rpm
RUN yum install -y https://yum.oracle.com/repo/OracleLinux/OL7/oracle/instantclient21/x86_64/getPackage/oracle-instantclient-{basic,tools,jdbc}-21.5.0.0.0-1.x86_64.rpm jdk-8u202-linux-x64.rpm tar
RUN mkdir -p /usr/lib/oracle/21/client64/rdbms /usr/lib/oracle/21/client64/jdbc
RUN cp -r /usr/lib/oracle/21/client64/lib /usr/lib/oracle/21/client64/jdbc
COPY u01 ./u01
ENV PATH=$PATH:/usr/lib/oracle/21/client64/bin
ENV JAVA_HOME=/usr
ENV MW_HOME=/u01/oracle
ENV OIM_ORACLE_HOME=/u01/oracle/idm
ENV ORACLE_HOME=/usr/lib/oracle/21/client64
Save the file.
Parent topic: Running the OIM Bulkload Utility from a Container
Checking the Working Directory
jdk-8u202-linux-x64.rpm
u01
with various subdirectoriesDockerfile
Parent topic: Running the OIM Bulkload Utility from a Container
Building the Image
Parent topic: Running the OIM Bulkload Utility from a Container
Starting the Image
You can now start the image in Kubernetes and use it to perform bulk load activities. The following steps show how to start the image and use an NFS mounted filesystem for your csv files.
Parent topic: Running the OIM Bulkload Utility from a Container
Creating a Pod File
bulkload.yaml
with the
following
contents:apiVersion: v1
kind: Pod
metadata:
name: bulkload
namespace: <OIGNS>
labels:
app: dbclient
spec:
restartPolicy: OnFailure
volumes:
- name: oigbulkpv
nfs:
server: <PVSERVER>
path: <OID_BULK_SHARE>
containers:
- name: bulkload
image: iad.ocir.io/mytenancy/database/bulkload:latest
volumeMounts:
- name: oigbulkpv
mountPath: /u01/oracle/idm/server/db/oim/oracle/Utilities/oimbulkload/csv_files
command: ["/bin/bash", "-ec", "while :; do echo '.'; sleep 5 ; done"]
imagePullSecrets:
- name: <REGISTRY_SECRET_NAME>
apiVersion: v1
kind: Pod
metadata:
name: bulkload
namespace: oigns
labels:
app: dbclient
spec:
restartPolicy: OnFailure
volumes:
- name: oigbulkpv
nfs:
server: nfsserver.example.com
path: /exports/IAMPVS/oigbulkpv
containers:
- name: bulkload
iad.ocir.io/mytenancy/database/bulkload:latest
volumeMounts:
- name: oigbulkpv
mountPath: /u01/oracle/idm/server/db/oim/oracle/Utilities/oimbulkload/csv_files
command: ["/bin/bash", "-ec", "while :; do echo '.'; sleep 5 ; done"]
imagePullSecrets:
- name: regcred
Parent topic: Starting the Image
Starting the Bulkload Pod
kubectl create -f bulkload.yaml
kubectl get pods -n oigns
- Enter the text of the first step here.
- Enter the text of the second step here.
Parent topic: Starting the Image
Running the Bulkload Utility
oimbulkload
utility, you must first
connect to the container by using the
command:kubectl exec -it -n <OIGNS> bulkload –- bash
kubectl exec -it -n oigns bulkload -- bash
The bulk load utility is located at
/u01/oracle/idm/server/db/oim/oracle/Utilities/oimbulkload/
.
oimbulkload
utility, use the
command:cd /u01/oracle/idm/server/db/oim/oracle/Utilities/oimbulkload/
./oim_blkld.sh
- JAVA_HOME=
/usr
- MW_HOME=
/u01/oracle
- OIM_ORACLE_HOME=
/u01/oracle/idm
- ORACLE_HOME=
/usr/lib/oracle/21/client64
- Host where the Governance Server is running =
governancedomain-cluster-oim-cluster.oigns. svc.cluster.local
- Port where the Governance Server is running =
14000
For instructions on running oimbulkload
utility, see Using the Bulk Load Utility in Developing and Customizing Applications for Oracle Identity Governance.
Parent topic: Starting the Image