Application Delivery Management
Application Modernization & Connectivity
CyberRes
IT Operations Management
With the release of NetIQ Identity Manager 4.0 Support Pack 1 (aka IDM 4.01) some bug fixes, and a few new features were added.
Specifically three partner provided drivers were included, an RSA Driver, a Blackboard driver, and a Google Apps driver.
I discussed some of the new features and bugs fixed in IDM 4.01 in this series of articles:
I have been working on a series of articles walking through driver configurations, policy by policy to try and understand what the driver is doing, under the covers.
You can see more of these walk throughs on a Wiki page I maintain to keep them all together: Detailed driver walk through collection.
For this series of articles I would like to start looking at the Google Apps driver in IDM 4.01, that is provided by Consensus Consulting.
In the first article in the series I worked my way through the Subscriber Event transform and half way through the Matching Policy set.
In the second article in the series I worked my way through the rest of the Matching Policy set.
<definition critical-change="false" display-name="Default visibility for Google Groups" hide="false" item-separator="|" multi-line="true" name="gcv.NOVLGGLEGRPS.DefaultVisibility" type="enum">
<description>Owner, Member, Domain, Anyone</description>
<value>Domain</value>
<enum-choice display-name="Owner Only">Owner</enum-choice>
<enum-choice display-name="Members Only">Member</enum-choice>
<enum-choice display-name="Domain Users Only">Domain</enum-choice>
<enum-choice display-name="Anyone-Internet Enabled">Anyone</enum-choice>
</definition>
es:createPassword4(($gcv.NOVLGGLEPSWD.RandomPasswordNumberOfLetters $gcv.NOVLGGLEPSWD.RandomPasswordNumberOfNumbers), $gcv.NOVLGGLEPSWD.RandomPasswordNumberOfLetters, $gcv.NOVLGGLEPSWD.RandomPasswordNumberOfNumbers)
/**
* Create an alphanumeric password.
*
* @param {String} passwordLength length of the password
* @param {Number} numOfAlphabets count of characters in the password
* @param {Number} numOfDigits count of digits in the password
*
* @type String
* @return a string in the format: <PRE>1AB2C3D</PRE>
*/
function createPassword4(passwordLength, numOfAlphabets, numOfDigits)
{
var characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var digits = "0123456789";
if(passwordLength < (numOfAlphabets numOfDigits))
{
throw new Error(pwdExceptionMessage);
}
var password = [];
var charLength = characters.length;
var digitLength = digits.length;
var pwdArrayIndex = 0;
var index = 0;
for(var i = 0; i < numOfAlphabets; i )
{
do
{
pwdArrayIndex = Math.round(Math.random()*(passwordLength - 1));
} while(password[pwdArrayIndex]);
index = Math.round(Math.random()*(charLength - 1));
password[pwdArrayIndex] = characters.charAt(index);
}
for(var i = 0; i < numOfDigits; i )
{
do
{
pwdArrayIndex = Math.round(Math.random()*(passwordLength - 1));
} while (password[pwdArrayIndex]);
index = Math.round(Math.random()*(digitLength - 1));
password[pwdArrayIndex] = digits.charAt(index);
}
for(var i = 0; i < passwordLength; i )
{
if(!password[i])
{
index = Math.round(Math.random()*(digitLength charLength - 1));
if(index < charLength)
{
password[i] = characters.charAt(index);
}
else
{
password[i] = digits.charAt(index - charLength);
}
}
}
return password.join("");
}