Showing posts with label Oracle Identity Manager 11g R1 Development. Show all posts
Showing posts with label Oracle Identity Manager 11g R1 Development. Show all posts

Tuesday, November 26, 2013

Sample Custom Schedule Task

Version: Oracle Identity Manager 11g R2
Description: This post demonstrates how to develop a custom scheduled task.  Provided here is a sample custom scheduled task that creates a new OIM user with user data being provided through the scheduled task parameters.

Sunday, November 17, 2013

Close Reconciliation Events Through OIM API

Version: Oracle Idenity Manager 11g R1
Description: Reconciliation events are created when you run target user reconciliation. On a target system with a large number of accounts, it is likely to have events that are ophran accounts, which are users who does not exist in OIM but exists on the target system, and events that are in pending state. When you view these reconcilation events through the OIM console, you have the choice to manually link to an OIM user or close the event. Given here is code to close all the reconciliation events that were not linked.

Tuesday, July 9, 2013

Implementing Target Delete Reconciliation

Version: Oracle Identity Manager 11.1.1.5.0
Description: This article demonstrates how to implement a target delete reconciliation using the OIM APIs. The methods from oracle.iam.reconciliation.api.ReconOperationsService are used . The code given here can be further developed to become a schedule task. The Database Application Table Connector is used here. Follow the guide given here to setup the connector in OIM.

Steps for Implementation:
1. Get all the users from your target system along with their attributes, mainly the ones for OIM account rule matching. Users data must be put into an array of hashmaps with each hashmap containing a single user's data. (Key= attributeNameInTarget, Value=attributeValueInTarget)
2. Get the ReconOperationsService service. Call methods from ReconOperationsService.
3. provideDeletionDetectionData(java.lang.String objectName, java.util.Map[] paoAccountDataList)
4. getMissingAccounts(java.lang.String objectName, java.util.Set accountsFound)
5. deleteDetectedAccounts(Thor.API.tcResultSet poDetectedAccounts)
6. processReconciliationEvent(long rceKey)

Tuesday, July 2, 2013

Adding OIM User Defined Attribute through the OIM API

Version: Oracle Identity Manager 11g R1
Description: This post contains java code to add OIM User Profile attribute using the OIM API. The ConfigManager class contains the method to add User Defined (UDF) attribute. The code below is only for demonstration purposes for adding a string attribute. Dealing with other attribute types may require setting additional properties. Also, the value of an attribute property may be dependent on other property values. WARNING: Use at your own risk. This OIM API does some data validation. Creating an invalid attribute can cause a lot of problems (E.g. An error message dialog will prevent you from viewing any OIM user's profile).  If you happen to create a bad attribute, most of the time deleting the attribute will fix the problem.

Tuesday, June 4, 2013

Post-Process EventHandler Example: DecryptedPasswordInProfile

Version: Oracle Identity Manager 11g R1
Description: An example of a custom post-process event handler. This plugin is only for demonstration purposes.  The orchestration object parameter in the execute method contains useful information you may need to utilize. Here are several orchestration methods to make note of for post-process:
getParameters() : This method only gets the new changes made.
getOperation(): Gets the operation that is being performed. Some operations are given below:
  • CREATE = whenever a new user is being created
  • CHANGE_PASSWORD = whenever the user 's password is changed
  • MODIFY = whenever any changes are being made to a user's OIM Profile
getInterEventData(): contains the current state and new state of the entire user's profile. You can even determine the user who is making the changes with the "usr_updateby" attribute  in the new state of the user's profile.

You can find the final plugin package and the source code here.

Summary for Deploying the Plugin
1. Create jar file, plugin.xml, and metadata xml.
2. Create a zip with the following structure:
[NameOfPlugin].zip
     |____plugin.xml
     |____lib/            
           |_____[yourJarFile].jar

3. Modify the ant.properties file located in "[IDM_HOME]/server/plugin_utility".
Then register your plugin by executing "ant -f pluginregistration.xml register".

4. Modify the weblogic.properties located in "[IDM_HOME]/server/bin".
Then push the metadata into MDS by using the weblogicImportMetadata.sh utiltiy.

5. Purge the cache. The utility is in "[IDM_HOME]/server/bin".
./PurgeCache.sh ALL

Sunday, May 19, 2013

OIM 11g R1: Getting OIM User Decrypted Password

Version: Oracle Identity Manager 11g R1
Description:
If you look at the OIM.USR table, you'll notice that the password column is encrypted. There are several ways to get the password decrypted. I'll be showing you how to get the decrypted password by querying from the OIM database using the tcDataBaseClient. This requires you to set the client handle with the OIMClient object. The user who is logged in for the OIMClient needs to be an End-User Administrator in order to use the tcDatabaseClient. The “Design Console Access” attribute on the OIM User Profile determines whether a user is an End-User or an End-User Administrator. Below is a java application to get all the OIM users' passwords in plain text.  Note: You can also query the OIM.PCQ table to get users' challenge questions and answers.

Tuesday, March 5, 2013

Connecting to a WebLogic Data source from Java

Version: WebLogic 10.3.5
Description: You can use Java to connect to any data source defined in WebLogic. An advantage to this is you do not need the database user credential hard-coded in your Java application. All you need to supply in order to establish a connection in your application are the name of the data source and the provider URL.
Requirements: Remote JDBC must be enabled if you are executing the code remotely. The instructions to enable remote JDBC are commented in the code. The data source you are using must be defined in WebLogic. Click here to learn how create a data source in WebLogic Administration Console.

Sunday, February 17, 2013

Connecting to OIM Schema Through the OIMClient In Java

Version: Oracle Identity Manager 11g R1
Description: A Java application to demonstrate how to connect to your OIM Schema provided that you have an OIMClient. The user who is logged in for the OIMClient needs to be an End-User Administrator in order to use the tcDatabaseClient. The “Design Console Access” attribute on the OIM User Profile determines whether a user is an End-User or an End-User Administrator. Accessing the OIM Schema through this method does not need the database user credential.

Friday, February 1, 2013

OIM 11g Deploying a Custom Event Handler

Version: Oracle Identity Manager 11g R1
Description: This guide demonstrates the process of setting up and deploying a custom event handler.  It also shows you how to remove an event handler. Custom event handlers can be developed to extend the functionality of OIM User Management Operations.

Sunday, January 20, 2013

Using the OIM 11g R1 API

Version: Oracle Identity Manager 11g R1
Description: This guide shows how to set up and use the Oracle Identity Manager 11g R1 API in a Java application.