Description:
This Technical Document is a supplement for Technical Document TEC520582. Since IM r12.5 SP7, an all-new JIAM has been introduced. This version of JIAM differs significantly from previous SP's and its internal architectural changes have made some of the steps in Technical Document TEC520582 no longer applicable. Most of the steps are still applicable and this Technical Document provides the steps for those that aren't.
Solution:
Follow the steps as ordered below:
- Install Provisioning SDK IM r12.5 SP6 and take a copy of the entire folder <Provisioning SDK>\admin\jars, and all its files. Uninstall Provisioning SDK IM r12.5 SP6.
- Install Provisioning SDK IM r12.5 SP7 (or whichever SP that you're upgrading to). Rename the original folder <Provisioning SDK>\admin\jars to some other name, i.e. iars_org. Copy the jars folder from SP6 into <Provisioning SDK>\admin.
- Refer to Technical Document TEC520582 and perform all the steps as described, except those under the following headings:
- Relationship Mapping Issue
- Update jndimap file
- Change Attribute Member Field Type
- Implement Getter and Setter for New Attribute
- Tell JIAM Old Attribute Value is Provided By the New Attribute
- Configure Identity Manager Environments to load JIAM Extension jar
- Discovering the JiamObjectType
- For the SDK endpoint type this results in the following names: EndPoint, NativeGroup, Account, Policy. For relating an account to a group you would pick out the name NativeGroup.Setup Metadata to allow object to be linked to
- Running the RoleDefGenerator tool (we will do this at the end)
- At this point, you should have:
- Got your custom C++ connector working with IM Provisioning Manager (WIN 32 GUI). You should be able to acquire endpoint and provision accounts. If not, please review the previous steps before continue.
- Built jiamSDKExt.jar, although we won't need this jar file. You should also have performed the manual changes on sdk_jndimap.xml as described in Technical Document TEC520582.
- Built metadata using the ptconvert tool. You should also have performed the manual changes on the metadata as described in Technical Document TEC520582.
- sdk_Jndimap changes:
Edit sdk_jndimap.xml and change the class for the following beans:
- com.ca.jiam.customconnector.sdk.impl.SDKEndPointImpl
to
com.ca.iam.model.impl.IAMEndPointImpl
- com.ca.jiam.customconnector.sdk.impl.SDKAccountImpl
to
com.ca.iam.model.impl.IAMAccountImpl
- com.ca.jiam.customconnector.sdk.impl.SDKGroupImpl
to
com.ca.iam.model.impl.IAMObjectImpl
- com.ca.jiam.customconnector.sdk.impl.SDKPolicyImpl
to
com.ca.iam.model.impl.IAMPolicyImpl
There is no need to change the class for container beans as these should have already been commented out following the previous Technical Document.
- Metadata changes:
- Rename your metadata XML file to "SDK Namespace.xml"
- Add jiamObjectType and imIsCapabilityObject to class eTSDKGroup so it becomes:
<class name="eTSDKGroup"> <extends>CommonObjects.COS_comobject</extends> <metadata name="jiamObjectType"> <value> <strValue>SDKGroup</strValue> </value> </metadata> (other metadata)
- Change the baseType of eTSDKGroupMembers (for both Account and Policy) from strValue to flexiStrValue of type DN:
<property name="eTSDKGroupMembers"> <doc>Group Memberships</doc> <value default="false"> <setValue> <baseType default="false"> <flexiStrValue type="DN"/> </baseType> </setValue> </value> (other metadata)
- Update jiam.jar
The jiam.jar from your IMS installation needs to be updated. Follow the steps below:
- Create a temp folder and create a directory structure as follows:
<TEMP_ROOT>|- jiam.jar|-[ com]|- [ca] |-[ iam] |- [model] |- [impl] |- [datamodel] |- SDK Namespace.xml |- [options] |- [sdk] |- [impl] |- sdk_jndimap.xml
- Copy <IAM_IM.EAR>\library\jiam.jar to <TEMP_ROOT> as depicted above. Also keep another copy of this jiam.jar in somewhere safe as back-up.
- Copy metadata "SDK Namespace.xml" to <TEMP_ROOT>\com\ca\iam\model\impl\datamodel as depicted above
- Copy sdk_jndimap.xml to <TEMP_ROOT>\com\ca\iam\model\options\sdk\impl as depicted above
- Open a Command Prompt and change directory to <TEMP_ROOT>. Execute the following command:
jar -uvf jiam.jar "com\ca\iam\model\impl\datamodel\SDK Namespace.xml" "com\ca\iam\model\options\sdk\impl\sdk_jndimap.xml"
This will add the 2 XML files into jiam.jar.
- Copy this updated copy of jiam.jar back into <IAM_IM.EAR>\library and replace the original (make sure you have already made a back-up copy).
- Generate and deploy custom roledef:
- Run the Roledef generator (more info on this tool can be found in the user guide):
RoleDefGenerator.bat -m "SDK Namespace.xml" "SDK Namespace"
- Refer to the IM Programming Guide on how to deploy the generated SDK_Namespace.jar
Note: When adding SDK Group to an Account or Template, you will find that the Group search screen does not have a column for the group name. You can make a copy of the Group search screen and add the name column. Refer to the User guide on how to do this.