<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>missmiis &#187; ILM &#8220;2&#8243;</title>
	<atom:link href="http://www.wapshere.com/missmiis/category/ilm/ilm-2/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wapshere.com/missmiis</link>
	<description>Adventures in identity management</description>
	<lastBuildDate>Fri, 10 Sep 2010 13:30:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>ILM 2 release date put back &#8211; A WHOLE YEAR!</title>
		<link>http://www.wapshere.com/missmiis/ilm-2-release-date-put-back-a-whole-year</link>
		<comments>http://www.wapshere.com/missmiis/ilm-2-release-date-put-back-a-whole-year#comments</comments>
		<pubDate>Mon, 23 Mar 2009 22:30:05 +0000</pubDate>
		<dc:creator>Carol</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[ILM "2"]]></category>

		<guid isPermaLink="false">http://www.wapshere.com/missmiis/?p=387</guid>
		<description><![CDATA[I&#8217;m at TEC 2009 in Las Vegas at the moment, and it was officially announced by Microsoft today that the release date for ILM 2 is now Q1 2010, as opposed to the previously publicised date of &#8220;any day now&#8221;. We should be getting an RC1 version in Q3 this year. I asked if there [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m at TEC 2009 in Las Vegas at the moment, and it was officially announced by Microsoft today that the release date for ILM 2 is now Q1 2010, as opposed to the previously publicised date of &#8220;any day now&#8221;. We should be getting an RC1 version in Q3 this year.</p>
<p>I asked if there were any technical reasons for this, hoping to hear of some impressive new development that they figured they couldn&#8217;t go to market without - but the answer was no, the features list is set. Why the long delay then? There was something about needing more real-world testing, and the need to develop scenario guidelines (I suppose that means walkthroughs), but that was the only explanation.</p>
<p>There is apparently some way you can get a pre-release license from Microsoft if you&#8217;re really determined to go ahead with ILM 2 in production, but I expect most organisations will not accept this, putting ILM 2 well and truly off the cards for 2009.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wapshere.com/missmiis/ilm-2-release-date-put-back-a-whole-year/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ILM2 RC0 &#8211; Updating Portal objects the no-code way</title>
		<link>http://www.wapshere.com/missmiis/ilm2-rc0-updating-portal-objects-the-no-code-way</link>
		<comments>http://www.wapshere.com/missmiis/ilm2-rc0-updating-portal-objects-the-no-code-way#comments</comments>
		<pubDate>Mon, 02 Mar 2009 15:50:46 +0000</pubDate>
		<dc:creator>Carol</dc:creator>
				<category><![CDATA[ILM "2"]]></category>

		<guid isPermaLink="false">http://www.wapshere.com/missmiis/?p=367</guid>
		<description><![CDATA[I am working on a demo scenario :  Certain information about users (name, department, job title, start date) should come direct from HR or from a simplified User Create form; other account-specific stuff (account name, mail nickname, mail database) should be automatically populated; and the account should be provisioned to AD/Exchange when all information is [...]]]></description>
			<content:encoded><![CDATA[<p>I am working on a demo scenario :  Certain information about users (name, department, job title, start date) should come direct from HR or from a simplified User Create form; other account-specific stuff (account name, mail nickname, mail database) should be automatically populated; and the account should be provisioned to AD/Exchange when all information is present and correct.</p>
<p>Unfortuantely this has been proving trickier than I would have liked, and the main culprit is the Function Evaluator. This little workflow action is supposed to be able to assign values to attributes in the portal but, as it turns out, is completely broken in RC0.</p>
<p>I struggled for some time with the Ensynch guys&#8217; posts on how to build your own replacement for the Function Evaluator (see <a href="http://www.codeplex.com/ILM2WFActivity" target="_blank">here</a> and <a href="http://c--shark.blogspot.com/2009/02/generate-accountname-in-ilm-2-custom.html" target="_blank">here</a>) &#8211; but, not being much of a programmer, this proved too much for me. I have now found myself a satisfactory workaround using a good old fashioned MIIS approach (and some codeless provisioning rules).<span id="more-367"></span></p>
<h2>Overview</h2>
<p>The approach is simply to add an extra SQL table and MA. Using export flow rules I generate the values I want into the table and then import them back in. I can now flow these values back into the portal through the ILM MA.</p>
<p>So an account creation started from the HR database would go like this:</p>
<p>HR -&gt; ILM -&gt; GenerateAttribtes -&gt; ILM -&gt; AD</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-mas.jpg" alt="" /></p>
<p>The rest of this post is really just an example of how to codelessly provision to the GenerateAttributes SQL MA.</p>
<h2>Configuration of the ILM MA</h2>
<p>The ILM MA only allows direct classic flow rules, so that&#8217;s pretty straight forward.You should create both Import and Export flow rules for all the attributes you&#8217;re using.</p>
<p>If you need some extra attributes in the ILM schema then see the <a href="http://technet.microsoft.com/en-us/library/cc561137.aspx" target="_blank">Schema UI</a> document.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-ilm-eaf.jpg" alt="" width="444" height="171" /></p>
<h2>The GenerateAttributes MA</h2>
<p>The table I&#8217;m using is a very simple one (my favourite sort) with an ID field to hold the employeeID, and the various other values I want to generate.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-table.jpg" alt="" /></p>
<p>This table is linked into ILM using a bog standard SQL MA. I&#8217;ve been finding it works better to use classic Import attribute flows, mostly because the precedence works.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-iaf.jpg" alt="" /></p>
<p>And I set that precendence so that the GenerateAttributes values can replace the ILM values.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-precedence.jpg" alt="" /></p>
<h2>The HR MA</h2>
<p>Continuing as above, I created classic import attribute flows for the HR MA.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-hr-iafclassic.jpg" alt="" /></p>
<p>I did make one exception and used a sync rule for flowing the StaffID (number) into the employeeID (string). Using a classic Advanced IAF I would have had to write some code , but with the sync rule it is a simple matter of concatenating the number with a blank string. As I&#8217;m not provisioning there is nothing else to do here, apart from importing the sync rule object in the MIIS metaverse.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-hr-newiaf.jpg" alt="" /></p>
<h2>The Provisioning Sync Rule for GenerateAttributes</h2>
<p>I then created a sync rule called <strong>GenerateAttributes-export-person</strong> for provisioning and EAF for the GenerateAttributes MA. I&#8217;m please to report this worked first go &#8211; I must be getting the hang of it!</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-syncrule.jpg" alt="" /></p>
<p>I defined a Set which I called &#8220;_All Users&#8221; and which finds all the people who should have user accounts. It&#8217;s pretty much the same as the one in <a href="http://www.wapshere.com/missmiis/?p=347">this post</a>.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-set.jpg" alt="" /></p>
<p>Next I created a Workflow called &#8220;_GenerateAttribute Export SyncRule&#8221; which runs the Sync Rule.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-workflow.jpg" alt="" /></p>
<p>And finally I created a Management Policy called &#8220;_Provision GenerateAttributes&#8221; configured as follows:</p>
<ul>
<li>Requesters: &#8220;All People&#8221;</li>
<li>Operation: Create resource, Add/Remove/Modify resource attributes</li>
<li>Target Resource Before/After request: &#8220;_All Users&#8221;</li>
<li>Action: &#8220;_GenerateAttributes Export Sync Rule&#8221;</li>
</ul>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-mpr.jpg" alt="" /></p>
<h2>Generating the Attributes</h2>
<p>Now, as soon as a person is created or changed, and as long as they appear in the Set you defined above, you should see this new sync rule added to their Provisioning ERL.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-erl.jpg" alt="" /></p>
<p>When you run an Import Sync of the ILM MA a new object will be created in the GenerateAttributes MA, complete with the new values.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-provisioned-object.jpg" alt="" /></p>
<p>Export and re-import the values, then export out to ILM, and you now have your generated values.</p>
<h2>Finally, Provisioning to AD</h2>
<p>I have already blogged about how to codelessly provision AD/Exchange 2007 users <a href="http://www.wapshere.com/missmiis/?p=356">here</a>, so I shall refer you to that post.</p>
<p>I will just add that my Workflow for AD provisioning is applied &#8220;Based on attribute value&#8221;, and the attribute is &#8220;Account Status&#8221;. I flow a constant value of &#8220;Approved&#8221; from the HR MA, then I replace that with &#8220;Active&#8221; from the GenerateAttributes MA. Only when the person is updated with the &#8220;Active&#8221; value in ILM does the AD provisioning rule get applied.</p>
<p><img src="http://www.wapshere.com/images/ilm2-genattr-erl2.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wapshere.com/missmiis/ilm2-rc0-updating-portal-objects-the-no-code-way/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ILM2 RC0 &#8211; Provisioning Exchange 2007 Users</title>
		<link>http://www.wapshere.com/missmiis/ilm2-rc0-provisioning-exchange-2007-users</link>
		<comments>http://www.wapshere.com/missmiis/ilm2-rc0-provisioning-exchange-2007-users#comments</comments>
		<pubDate>Wed, 25 Feb 2009 14:10:38 +0000</pubDate>
		<dc:creator>Carol</dc:creator>
				<category><![CDATA[Exchange 2007]]></category>
		<category><![CDATA[ILM "2"]]></category>

		<guid isPermaLink="false">http://www.wapshere.com/missmiis/?p=356</guid>
		<description><![CDATA[This post builds on yesterday&#8217;s which should be read first.  Following are the extra Sync Rule and MA configurations that I made which added the Exchange 2007 support. Workflow I have changed yesterday&#8217;s Workflow a little so that it now uses &#8220;Based on attribute value&#8221; as the Action selection. This seems to give me more control over where [...]]]></description>
			<content:encoded><![CDATA[<p>This post builds on <a href="http://www.wapshere.com/missmiis/?p=347">yesterday&#8217;s</a> which should be <strong>read first</strong>.  Following are the extra Sync Rule and MA configurations that I made which added the Exchange 2007 support.<br />
<span id="more-356"></span></p>
<h3>Workflow</h3>
<p>I have changed yesterday&#8217;s Workflow a little so that it now uses &#8220;Based on attribute value&#8221; as the Action selection. This seems to give me more control over where the sync rule is applied.</p>
<p><img src="http://www.wapshere.com/images/ilm2-exchprov-workflow.jpg" alt="" /></p>
<h3>Synchronization Rule</h3>
<p>The following table shows the configuration of my sync rule.</p>
<table border="1" cellpadding="4">
<tbody>
<tr>
<td><strong>Destination</strong></td>
<td><strong>Source</strong></td>
<td><strong>Initial</strong></td>
<td><strong>Existance</strong></td>
</tr>
<tr>
<td>sAMAccountName</td>
<td>accountName</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>userPrincipalName</td>
<td>accountName<br />
+ &#8220;@mydomain.local&#8221;</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>givenName</td>
<td>firstName</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>sn</td>
<td>lastName</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>department</td>
<td>department</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>displayName</td>
<td>displayName</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>mailNickname</td>
<td>mailNickname</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>dn</td>
<td>&#8220;CN=&#8221;<br />
+ accountName<br />
+ &#8220;,OU=Users,OU=MyOrg,dc=mydomain,dc=local&#8221;</td>
<td>yes</td>
<td> </td>
</tr>
<tr>
<td>employeeID</td>
<td>employeeID</td>
<td>yes</td>
<td>yes</td>
</tr>
<tr>
<td>unicodePwd</td>
<td>&#8220;Password01&#8243;</td>
<td>yes</td>
<td> </td>
</tr>
<tr>
<td>userAccountControl</td>
<td>512</td>
<td>yes</td>
<td> </td>
</tr>
<tr>
<td>homeMDB</td>
<td>&#8220;CN=&#8221;<br />
+ mailDatabase<br />
+ &#8220;,CN=&#8221;<br />
+ mailStorageGroup<br />
+ &#8220;,CN=InformationStore,CN=&#8221;<br />
+ mailServer<br />
+ &#8220;,CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=First Organization,<br />
CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=mydomain,DC=local&#8221;</td>
<td><strong></strong>yes</td>
<td> </td>
</tr>
</tbody>
</table>
<p>Note that I have used a number of custom attributes to construct the homeMDB. Apart from this being a more flexible approach, I actually got an &#8220;unexpected-error&#8221; in MIIS when I hard-coded the entire homeMDB string. For the RC0 documentation on modifying the schema see <a href="http://technet.microsoft.com/en-us/library/cc561137.aspx" target="_blank">here</a>.</p>
<h3>MA Configuration</h3>
<p>The configuration of the ILM MA is as I covered <a href="http://www.wapshere.com/missmiis/?p=347">yesterday</a> &#8211; you just need to make sure you have all the import flow rules in place to get the necessary data into the metaverse &#8211; not forgetting the ExpectedRulesList.</p>
<p>The AD MA should not need any classic flow rules, as you&#8217;ve configured everything you need in the Sychronization Rule object. You do need to tick &#8220;Enable Exchange 2007 provisioning&#8221; on the Extensions page.</p>
<p><img src="http://www.wapshere.com/images/ilm2-exchprov-adma.jpg" alt="" /></p>
<h3>Exchange Management Tools</h3>
<p>And, just like with ILM 2007, you need to have installed the Exchange Management Tools on the ILM server.</p>
<h3>Here&#8217;s one I prepared earlier</h3>
<p>Here&#8217;s what a provisioned user looked like just prior to exporting him from the AD MA.</p>
<p><img src="http://www.wapshere.com/images/ilm2-exchprov-provisioned-object.jpg" alt="" /></p>
<p>Immediately after exporting I was able to login as this user, open Outlook, and send an email. Hooray!</p>
<p>Another nice surprise: as I had gone through the <a href="http://technet.microsoft.com/en-us/library/cc561138.aspx">Password Reset and Registration</a> configuration, and had already installed the ILM client on this workstation, the user was immediately prompted to register for password reset! Now that I <em>do</em> like.</p>
<p><img src="http://www.wapshere.com/images/ilm2-pwreset-prompttoregister.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wapshere.com/missmiis/ilm2-rc0-provisioning-exchange-2007-users/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>ILM2 RC0 &#8211; Codeless Provisioning Step by Step</title>
		<link>http://www.wapshere.com/missmiis/ilm2-rc0-codeless-provisioning-step-by-step</link>
		<comments>http://www.wapshere.com/missmiis/ilm2-rc0-codeless-provisioning-step-by-step#comments</comments>
		<pubDate>Tue, 24 Feb 2009 09:14:54 +0000</pubDate>
		<dc:creator>Carol</dc:creator>
				<category><![CDATA[ILM "2"]]></category>

		<guid isPermaLink="false">http://www.wapshere.com/missmiis/?p=347</guid>
		<description><![CDATA[This post did start with a rant about how much trouble I had getting the codeless provisioning to work &#8211; but I&#8217;ve been working with it a bit more now, and have sufficiently got the hang of it, so I have rewritten the introduction to this post. This is not an attenpt to change history [...]]]></description>
			<content:encoded><![CDATA[<p>This post did start with a rant about how much trouble I had getting the codeless provisioning to work &#8211; but I&#8217;ve been working with it a bit more now, and have sufficiently got the hang of it, so I have rewritten the introduction to this post. This is not an attenpt to change history &#8211; I expect most readers come at my blog through google searches, and really, they don&#8217;t need my soap-boxing.</p>
<p>This post goes through the steps I took to provision user accounts into AD. For the extra configuration need to add Exchange 2007 mailboxes to those users accounts see <a href="http://www.wapshere.com/missmiis/?p=356">this post</a>.<span id="more-347"></span></p>
<h2>All the objects you have to create</h2>
<p><strong>Synchronization Rule</strong></p>
<p>I will say that I do like the <a href="http://www.wapshere.com/missmiis/?p=309">codeless flow rules</a>. All you have to do to get those working is create a <em>Synchronization Rule</em> in the portal, import it into MIIS and you&#8217;re away.</p>
<p>To get the Synchronization Rule to also do provisioning you need a few more bits and pieces.</p>
<p><strong>Set</strong></p>
<p>You must create a <em>Set</em> which will contain only those users which will exist in your target directory. (A tip on naming: start it with an underscore &#8220;_&#8221; so that it appears at the top of the list.)</p>
<p>Don&#8217;t do what I did and use &#8220;All People&#8221; because then it tries to create the Administrator and Built-In Synchronization accounts in your target directory.</p>
<p><strong>Workflow</strong></p>
<p>Next you create a <em>Workflow</em> of type &#8220;Action&#8221; which has, as its action, the Synchronisation Rule you created above.</p>
<p><strong>Management Policy</strong></p>
<p>Finally you create a <em>Management Policy</em>. I am still a little vague on all the things these objects can do, but in terms of provisioning, this is where you tie your Set and your Workflow together.</p>
<p><strong>ILM MA</strong></p>
<p>You also have to make sure you are flowing your data into the metaverse through the ILM MA, so that it will be there ready to be used by your synchronization rule. For unfathomable reasons the ILM MA still relies wholy on &#8220;classic&#8221; flow rules.</p>
<p> </p>
<h2>And now with pictures</h2>
<h3>Create the Synchronization Rule</h3>
<p>In the portal, click on <strong>Administration -&gt;</strong> <strong>Synchronization Rules</strong> -&gt; <strong>New</strong>. The following pictures show how I configured my rule.</p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-syncrule1.jpg" border="1" alt="" /></p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-syncrule2.jpg" border="1" alt="" /></p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-syncrule3.jpg" border="1" alt="" /></p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-syncrule4.jpg" border="1" alt="" /></p>
<p>When creating your attribute flows make sure you include an &#8220;Inital Only&#8221; that sets the DN.</p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-syncrule5.jpg" border="1" alt="" /></p>
<p> </p>
<h3>Create the Set</h3>
<p>Click on <strong>All Sets</strong> -&gt; <strong>New</strong>.</p>
<p>I created a set called &#8220;_All Users&#8221; with the following dynamic rule. Note the cheat on the employee ID &#8211; at the moment there is no &#8220;Is Present&#8221; test, again an inexplicable oversight. As I&#8217;m in a test environment at the moment I&#8217;m just ensuring all my employeeID values have a &#8220;1&#8243; in them. (Note that &#8220;employeeID is *&#8221; does not work.)</p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-set.jpg" border="1" alt="" /></p>
<p> </p>
<h3>Create the Workflow</h3>
<p>Click on <strong>Workflows</strong> -&gt; <strong>New</strong>.</p>
<p>The following pictures show how I created the Workflow &#8220;_AD Create Users&#8221;.</p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-workflow1.jpg" border="1" alt="" /></p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-workflow2.jpg" border="1" alt="" /></p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-workflow3.jpg" border="1" alt="" /></p>
<blockquote><p>Later note: I think maybe &#8220;Add&#8221; was not the right choice here because I had some trouble with not being able to remove ERLs later on. Perhaps I should have chosen &#8220;Based on Attribute Value&#8221; - more testing obviously needed.</p></blockquote>
<h3>Create the Management Policy</h3>
<p>Click on <strong>Management Policies</strong> -&gt; <strong>New</strong>.</p>
<p>The following pictures show how I created the Management Policy &#8220;_AD Create Users&#8221;. As I said above, I&#8217;m still learning about these objects, so I do not claim this is the right way to configure it &#8211; this just shows what I did to get provisioning working, after a fashion.</p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-mpr1.jpg" border="1" alt="" /></p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-mpr2.jpg" border="1" alt="" /></p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-mpr3.jpg" border="1" alt="" /></p>
<p> </p>
<h3>Configure the ILM MA</h3>
<p>You now need to create Import flow rules on the ILM MA to flow all the attributes required by your Synchronization Rule into the metaverse.</p>
<p>Also you must add a flow rule for <strong>expected rules list</strong>. I never would have figured this out without help from people on the Connect news group.</p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-ilmma.jpg" alt="" /></p>
<p> </p>
<h2>Testing</h2>
<p>Start by creating a user directly in the Portal. Make sure you populate whatever you need to so they are eligible for the Set you created above. You also need to populate the <strong>Start Date</strong>, so that it is either today, or a day in the past.</p>
<p>After creating the user, check their Provisioning tab &#8211; and if you&#8217;re really luck you should see that they have an expected rules list with a status of &#8220;Pending&#8221;.</p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-erl-pending.jpg" border="1" alt="" /></p>
<p>You can also check the <strong>Search Requests</strong> page for information about what has (or has not) been going on in the background.</p>
<p><img src="http://www.wapshere.com/images/ilm2-prov-searchreqs.jpg" border="1" alt="" /></p>
<p> </p>
<p>Once you&#8217;ve got that pending ERL in place, you should no be ready to run a Full Import and Full Sync of you ILM MA.</p>
<p>Was a new object created in your target MA?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wapshere.com/missmiis/ilm2-rc0-codeless-provisioning-step-by-step/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>ILM2 RC0 &#8211; Changing group membership to Calculated</title>
		<link>http://www.wapshere.com/missmiis/ilm2-rc0-changing-group-membership-to-calculated</link>
		<comments>http://www.wapshere.com/missmiis/ilm2-rc0-changing-group-membership-to-calculated#comments</comments>
		<pubDate>Mon, 02 Feb 2009 15:11:11 +0000</pubDate>
		<dc:creator>Carol</dc:creator>
				<category><![CDATA[ILM "2"]]></category>

		<guid isPermaLink="false">http://www.wapshere.com/missmiis/?p=328</guid>
		<description><![CDATA[Here&#8217;s my scenario: The groups at my work are currently all populated manually in AD. We did discuss the steps needed to move some of the groups into a SQL table where they could be populated using query statements, but we never did get around to it. So I know that the group management capabilities of [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s my scenario:</p>
<p>The groups at my work are currently all populated manually in AD. We did discuss the steps needed to move some of the groups into a SQL table where they could be populated using query statements, but we never did get around to it. So I know that the group management capabilities of the ILM 2 Portal are going to be very well received.<span id="more-328"></span></p>
<p><strong>ILM MA Export flow rules</strong></p>
<p>I posted last week about doing <a href="http://www.wapshere.com/missmiis/?p=320">an intial import of AD groups into ILM</a>, and I&#8217;m going to continue on from that point now.</p>
<p>The following table shows the flow rules I set up in my ILM MA that allowed me to import all the information I needed about my groups (both Security and Distribution) into the ILM database. Note that they are all EXPORT flow rules because I&#8217;m exporting out of the metaverse.</p>
<p>I had to fabricate values for some of the attributes. While you can actually do the import without such attributes as Owner and MembershipAddWorkflow, you find that you are expected to set values for them when you first edit the group in the Portal. It seemed simpler to flow some sort of intial value into these fields.</p>
<table border="1">
<tbody>
<tr>
<td><strong>Data Source Attribute</strong></td>
<td><strong>Metaverse Attribute</strong></td>
<td><strong>Comments</strong></td>
</tr>
<tr>
<td>Description</td>
<td>description</td>
<td>From <strong>description</strong> in AD</td>
</tr>
<tr>
<td>DisplayName</td>
<td>displayName</td>
<td>From <strong>displayName</strong> in AD</td>
</tr>
<tr>
<td>Email</td>
<td>mail</td>
<td>From <strong>mail</strong> in AD</td>
</tr>
<tr>
<td>Type</td>
<td>type</td>
<td>Calculated from <strong>groupType</strong> &#8211; see <a href="http://www.wapshere.com/missmiis/?p=320">here</a></td>
</tr>
<tr>
<td>Scope</td>
<td>scope</td>
<td>Calculated from <strong>groupType</strong> &#8211; see <a href="http://www.wapshere.com/missmiis/?p=320">here</a></td>
</tr>
<tr>
<td>Domain</td>
<td>domain</td>
<td>NETBIOS domain name flowed in as a constant from AD MA</td>
</tr>
<tr>
<td>MembershipAddWorkflow</td>
<td>membershipAddWorkflow</td>
<td>&#8220;Owner Approval&#8221; or &#8220;None&#8221; &#8211; flow constant value from AD MA (None)</td>
</tr>
<tr>
<td>MembershipLocked</td>
<td>membershipLocked</td>
<td>&#8220;true&#8221; or &#8220;false&#8221; &#8211; flow constant value from AD MA (false)</td>
</tr>
<tr>
<td>Member</td>
<td>member</td>
<td>From <strong>member</strong> in AD</td>
</tr>
<tr>
<td>MailNickname</td>
<td>mailNickname</td>
<td>From <strong>mailNickname</strong> in AD</td>
</tr>
<tr>
<td>Owner</td>
<td>owner-stringDN</td>
<td>I created this metaverse attribute and then flowed the GUID of ILM Portal&#8217;s Administrator account as a constant value from the AD MA. You can find this by searching the metaverse for &#8220;Administrator&#8221; and then using the csObjectID value.</td>
</tr>
<tr>
<td>DisplayedOwner</td>
<td>owner-stringDN</td>
<td>As above</td>
</tr>
</tbody>
</table>
<p><strong>Changing a group to Calculated Membership</strong></p>
<p>What I am most interested in at this point is reconfiguring a number of our Distribution Lists that should have a calculated, rather than a manually assigned, membership. As an example I&#8217;ll use the group that represents all engineers in the Geneva office.</p>
<p>I should add that I have already imported all the information about my users into Person objects in the ILM db.</p>
<p>The first thing I do is to locate the group under Distribution Lists in the Portal, and change the member selection from &#8220;Named&#8221; to &#8220;Calculated&#8221;. This is going to <em>delete the existing members</em> &#8211; but only from the ILM db so far.</p>
<p><img src="http://www.wapshere.com/images/ilm2_group_calculated.jpg" alt="" /></p>
<p> </p>
<p>Next I set the membership select rule. This is nicely intuitive and I think a picture will suffice as explanation.</p>
<p><img src="http://www.wapshere.com/images/ilm2_group_calc_members.jpg" alt="" /></p>
<p> </p>
<p>I can click on the <strong>View Members</strong> button to see a list of the members inserted by this rule. If it all looks good then I save and submit my changes.</p>
<blockquote><p>Note that if you set the MembershipAddWorkflow attribute to &#8220;Owner Approval&#8221; you will need to go through an extra step here to approve the change. See the &#8220;Approve Requests&#8221; page in the Portal.</p></blockquote>
<p><strong>Making ILM Authoritative</strong></p>
<p>When I get round to implementing this in production, I will do a one-time import of group data from AD and then switch the master data source to being the ILM Portal. To achieve this I will <em>reverse the direction</em> of the flow rules I created in the ILM MA above, and I will also <em>set the attribute flow precendence</em> in the Metaverse Designer to ensure that changes made in the ILM Portal will make their way through to AD.</p>
<p><strong>What if a group needs to be calculated and manually updated?</strong></p>
<p>This is an old question &#8211; what do you do if you want to put all the engineers in a group, but you also want to manually add a couple of other people who wish to see the same emails? And actually ILM2 doesn&#8217;t change what the answer to this has been all along: Use nested groups.</p>
<p>So I make my <strong>DL Engineer GE</strong> group contain two groups: <strong>DL Engineer GE Calculated</strong> and <strong>DL Engineer GE Manual</strong>. I can then managed the memberships of these two subgroups through the portal, with the first being &#8220;Calculated&#8221; and the second being &#8220;Named&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wapshere.com/missmiis/ilm2-rc0-changing-group-membership-to-calculated/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ILM2 RC0 &#8211; Importing AD groups into ILM</title>
		<link>http://www.wapshere.com/missmiis/ilm2-rc0-importing-ad-groups-into-ilm</link>
		<comments>http://www.wapshere.com/missmiis/ilm2-rc0-importing-ad-groups-into-ilm#comments</comments>
		<pubDate>Mon, 26 Jan 2009 19:36:37 +0000</pubDate>
		<dc:creator>Carol</dc:creator>
				<category><![CDATA[Groups]]></category>
		<category><![CDATA[ILM "2"]]></category>

		<guid isPermaLink="false">http://www.wapshere.com/missmiis/?p=320</guid>
		<description><![CDATA[I&#8217;d like to be able to manage groups through the Portal but, unlike in the one published walkthrough on group management with ILM2, I don&#8217;t want to start from scratch. I want to start by importing all the existing groups from AD, and then, well we&#8217;ll see how we go. Getting information about my AD [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to be able to manage groups through the Portal but, unlike in the one published walkthrough on <a href="http://technet.microsoft.com/en-au/library/dd239147.aspx">group management with ILM2</a>, I don&#8217;t want to start from scratch. I want to start by importing all the existing groups from AD, and then, well we&#8217;ll see how we go.</p>
<p>Getting information about my AD users into the ILM Portal went well. I just added a bunch of export flow rules to my ILM MA, ran an Export, and voila! all my users were visible in the Portal.</p>
<p>Unfortunately the groups did not go so well. I kept running into the export error <strong>failed-creation-via-web-services</strong>, with no idea as to <em>why</em>. Eventually I found a post on the <a href="https://connect.microsoft.com/community/discussion/richui/default.aspx?SiteID=433">MS Connect newgroup for ILM2</a> which pointed me in the right direction (I can&#8217;t link to the post, but if you search for &#8220;<span id="ctl00_MasterBody_ArticleBodyPanelSubjectLabel">failed-via-web-services tips&#8221; you&#8217;ll find it) &#8211; it was to do with the group object schema in the ILM Portal.<span id="more-320"></span></span></p>
<p><span><strong>Checking the schema requirements</strong></span></p>
<p><span>So what you want to do is find out which attributes are essential for the object type you&#8217;re trying to export, and what restrictions there are on the possible values.</span></p>
<ol>
<li><span>In the ILM Portal, open the <strong>Schema Management</strong> page (found under <strong>Administration</strong>).<br />
</span></li>
<li><span>Click the <strong>All Bindings</strong> icon.<br />
</span></li>
<li><span>Click on <strong>Advanced Search</strong>.<br />
</span></li>
<li><span>Enter the search criteria:</span>
<ul>
<li>The Binding&#8217;s ObjectTypeDescription is Group</li>
<li>Attribute IsRequired is True</li>
</ul>
<p> <br />
<img src="http://www.wapshere.com/images/ilm2_schema_group_attribs.jpg" alt="" /></li>
<li><span>You should now see a list of the required attributes. You can click on each one to find out more about them. In particular you should check for a regular expression on the Validation tab. Your data must pass the regex (note you can change the regex here if you need to add more possible values).<br />
</span><br />
<img src="http://www.wapshere.com/images/ilm2_schema_group_regex.jpg" alt="" /></li>
</ol>
<p> <br />
<strong>Populating the values</strong></p>
<p>Some of the required values, like the display name, you can just flow straight from AD. There are a couple of others you can just flow a constant value to &#8211; though as you don&#8217;t appear to be able to do Advanced rules from the ILM MA you will have to flow the values into the metaverse first from the AD MA.</p>
<p>The Type and Scope will have to be calculated from the groupType attribute in AD, and you will have to set them using the exact terms from the Portal Schema attributes. The following code can be used with advanced import flow rules on the AD MA (<a href="http://www.wapshere.com/missmiis/?p=309">the classic type</a>, which I&#8217;ve gone back to for the time being).<br />
 </p>
<pre> Case "import_type"
     If csentry("groupType").IntegerValue &lt; 0 Then
         mventry("type").Value = "Security"
     Else
         mventry("type").Value = "Distribution"
     End If

 Case "import_scope"
     Dim groupScope As Long
     If csentry("groupType").IntegerValue &lt; 0 Then
         groupScope = csentry("groupType").IntegerValue + 2147483648
     Else
         groupScope = csentry("groupType").IntegerValue
     End If
     Select Case groupScope
         Case 2
            mventry("scope").Value = "Global"
         Case 4
            mventry("scope").Value = "DomainLocal"
         Case 8
            mventry("scope").Value = "Universal"
     End Select</pre>
<p>Once the values are all attached to the group objects in the metaverse it is a simple matter to create the export flow rules on the ILM MA.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wapshere.com/missmiis/ilm2-rc0-importing-ad-groups-into-ilm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ILM2 RC0 &#8211; Getting my head around the new Sync rules</title>
		<link>http://www.wapshere.com/missmiis/ilm2-rc0-getting-my-head-around-the-new-sync-rules</link>
		<comments>http://www.wapshere.com/missmiis/ilm2-rc0-getting-my-head-around-the-new-sync-rules#comments</comments>
		<pubDate>Fri, 23 Jan 2009 15:24:40 +0000</pubDate>
		<dc:creator>Carol</dc:creator>
				<category><![CDATA[ILM "2"]]></category>

		<guid isPermaLink="false">http://www.wapshere.com/missmiis/?p=309</guid>
		<description><![CDATA[I can see I have a lot to learn with ILM2 (and I&#8217;m still in the &#8220;I don&#8217;t wanna change&#8221; phase, so it&#8217;s heavy going), but I&#8217;m starting with something familiar, and that is import and export flow rules. I knew that there was going to be a web portal way of doing flow rules [...]]]></description>
			<content:encoded><![CDATA[<p>I can see I have a lot to learn with ILM2 (and I&#8217;m still in the &#8220;I don&#8217;t wanna change&#8221; phase, so it&#8217;s heavy going), but I&#8217;m starting with something familiar, and that is import and export flow rules.</p>
<p>I knew that there was going to be a web portal way of doing flow rules with ILM2 &#8211; what I didn&#8217;t expect was that this would actually be a <em>completely new type of flow rule</em>. Meanwhile the old way (&#8220;classic&#8221; flow rules) still exists &#8211; so we&#8217;re going to have ourselves a situation where flow rules can be defined in two different ways through two different interfaces, and there&#8217;s no way to view them all together! I can&#8217;t say I think this is a very good thing right now. <span id="more-309"></span></p>
<p><strong>These new fangled Synchronization Rules</strong></p>
<p>I must say, despite an ever-increasing list of reservations, that the Sync Rules concept in the Portal looks like it will be a lot more intuitive that the old way. The filter, join, projection and attribute flow aspects have all been bundled into the one rule &#8211; though of course they&#8217;ve had to mess with all that terminology so we now have Connected Object Scope (filter), Relationship Criteria (join), Object Creation in ILM (projection) and just the Attribute Flows have retained the old nomenclature.</p>
<p><img src="http://www.wapshere.com/images/ilm2_wp_sync_relationship.jpg" alt="" width="800" /></p>
<p><strong>Two types of attribute flow rule</strong></p>
<p>During my first attempt at installing this I <a href="http://www.wapshere.com/missmiis/?p=289">imported the database from an ILM 2007 server</a> along with all the existing MAs and their flow rules. When I went into the Portal I fully expected to find those rules magically displayed for me&#8230;  but it wasn&#8217;t the case. It turns out that our old &#8220;classic&#8221; flow rules can only be accessed through Identity Manager.</p>
<p>But I still assumed that a flow rule created in the Portal would somehow make it&#8217;s way into the MA configuration &#8211; but again this is not the case &#8211; at least not in a visible way. What it does is to create a Synchronization Rule object in your metaverse, which gets sync&#8217;d through like any other object, but which somehow, magically, causes invisible join, project and flow rules to run. If you&#8217;re used to ILM 2007 and MIIS this is quite disconcerting!</p>
<p><img src="http://www.wapshere.com/images/ilm2_syncrule_object.jpg" alt="" /> </p>
<p><strong>Creating flow rules in the Portal</strong></p>
<p>Still, in an attempt to embrace the new I tried to recreate all our import flow rules from our HR source data as Portal rules.</p>
<p><img src="http://www.wapshere.com/images/ilm2_wp_sync_flow.jpg" alt="" /></p>
<p>Immediate plus points:</p>
<ul>
<li>It&#8217;s very easy to do,</li>
<li>You can access multiple source attributes (for example, when concatenating FirstName and LastName),</li>
<li>There are a number of built-in functions available, and</li>
<li>If the functions don&#8217;t meet the need you can wring a bit more flexibility out of the Custom Expression option.</li>
</ul>
<p>Negatives:</p>
<ul>
<li>There were a couple I just couldn&#8217;t do, even using a Custom Expression, for example the Advanced Flow Rule we have that replaces all the characters like è,é,ä and ç with more ascii-friendly alternatives, and</li>
<li>It turns out you can&#8217;t write your own functions!</li>
</ul>
<p><strong>Hybrid Installations</strong></p>
<p>It is possible to run some flow rules via these Synchronization Rule objects and some via the old classic flow rules, and this is what I did to add the couple of flow rules that I couldn&#8217;t do the new way. As you can see it appears that I only have two rules &#8211; even though I actually have another 17 configured through the Portal.</p>
<p><img src="http://www.wapshere.com/images/ilm2_classic_flows.jpg" alt="" /></p>
<p><strong>This is bothering me</strong></p>
<p>I understand that we&#8217;re in a transistion period, and it&#8217;s good that we still can create true Advanced attribute flows&#8230; but I am worried about the troubleshooting and supportability of an installation that has used both types of rule.</p>
<p>The advantage of having the rules in the Portal is clear &#8211; MIIS/ILM has long suffered from being murky and backroom, not visible enough to those who need to see what it is up to &#8230; and yet, should people be able to create these rules and then not have access to the results of their actions? You can create a rule in the Portal, but you can&#8217;t preview it like you can in Identity Manager.</p>
<p>The type of people who I would want to use the Portal &#8211; Account Operators, Helpdesk &#8211; won&#8217;t even think to look for rules in Identity Manager and why should they? They&#8217;ve been given this nice web interface &#8211; why go anywhere else?</p>
<p>Perhaps all of this will become clearer to me when I start to understand the Workflow and Management Policy aspects of the Portal. I certainly hope so&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wapshere.com/missmiis/ilm2-rc0-getting-my-head-around-the-new-sync-rules/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ILM2 RC0 Part 2 &#8211; Migrating configuration from ILM 2007</title>
		<link>http://www.wapshere.com/missmiis/ilm2-rc0-part-2-migrating-configuration-from-ilm-2007</link>
		<comments>http://www.wapshere.com/missmiis/ilm2-rc0-part-2-migrating-configuration-from-ilm-2007#comments</comments>
		<pubDate>Thu, 15 Jan 2009 12:30:55 +0000</pubDate>
		<dc:creator>Carol</dc:creator>
				<category><![CDATA[ILM "2"]]></category>

		<guid isPermaLink="false">http://www.wapshere.com/missmiis/?p=289</guid>
		<description><![CDATA[After successfully installing the ILM2 RC0 server, my next goal was to migrate the data, MAs and extension dlls from a production ILM 2007 server. Copying the database One of the great things about ILM is that all configuration is contained in the MicrosoftIdentityIntegrationServer database. So I need only backup the database and then restore it [...]]]></description>
			<content:encoded><![CDATA[<p>After <a href="http://www.wapshere.com/missmiis/?p=281">successfully installing</a> the ILM2 RC0 server, my next goal was to migrate the data, MAs and extension dlls from a production ILM 2007 server.<span id="more-289"></span></p>
<p><strong>Copying the database</strong></p>
<p>One of the great things about ILM is that all configuration is contained in the MicrosoftIdentityIntegrationServer database. So I need only backup the database and then restore it to the new server. Once the Sync Service has been configured to use the new database I should find all my MAs, data and Extension dlls exactly where they should be.</p>
<p>I also needed a copy of the keyset file from the old server. (If you can&#8217;t remember where you put it then just export a new one using miiskmu.exe.)</p>
<p><strong>Restoring the database</strong></p>
<p>I found that I had to remove the existing database before I could restore the copied one. I also stopped the Microsoft Identity Integration Server service before beginning.</p>
<p><strong>Reinstalling the Sync Service</strong></p>
<p>I may have been able to attach the new database by using miisactivate.exe, but actually I just went the approach of uninstalling and then reinstalling the Sync Service.</p>
<p>I got a couple of error messages about missing reg keys during the uninstall, but it completed nonetheless. The reinstall went fine and was quite happy to accept the restored database.</p>
<p><strong>It all looked ok&#8230;</strong></p>
<p>Everything appeared to be there &#8211; until I tried to Sync an MA and got a <strong>stopped-extension-dll-invalid-assembly</strong>. In the event log is Event 6157 with &#8220;The management agent &#8221;AD&#8221; failed on run profile &#8220;Full Sync&#8221;. The run step stopped because the extension dll &#8220;MVExtension.dll&#8221; is not a valid assembly and could not be loaded.&#8221;</p>
<p><strong>Recompiling the code</strong></p>
<p>I initially tried just recompiling an extension in VS2008, but that wasn&#8217;t enough.</p>
<p>I then created a new extension project and noticed that MicrosoftIdentityIntegrationServer.dll has been replaced by MicrosoftIdentityIntegrationServer<strong>Ex</strong>.dll. I tried updating my references and recompiling, but the dlls would still not load.</p>
<p>In the end I created new extension projects for the Metaverse and all my MAs and then copied the code across from the old files. After compiling these new dlls, and updating the Extension settings in the MAs, the sync jobs ran!</p>
<p><strong>Logging</strong></p>
<p>While fiddling with the extensions I noticed that MicrosoftIdentityIntegrationServer.Logging has gone missing. This is certainly no great loss for me, I much prefer writing to the Event Log, but some of the code I was porting did make use of it. It&#8217;s all commented out now and I will have to put something else in place when I eventually do this migration for real.</p>
<p><strong>Service stopping</strong></p>
<p>The other odd thing was that the MIIS service stopped every time I updated the Extensions folder, and I had to manually restart it. I sincerely hope this is not a new &#8220;feature&#8221;!</p>
<p><strong>Postscript</strong></p>
<p>I may have managed to get this ILM2 installation looking pretty much like the old ILM 2007 one, but when I tried to add an ILM type MA (this is the one that connects it to the ILM Portal database) I&#8217;m getting an error: &#8220;Unable to create the management agent. The XML format of the join rules is invalid.&#8221;</p>
<p>I guess I&#8217;m not there yet&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wapshere.com/missmiis/ilm2-rc0-part-2-migrating-configuration-from-ilm-2007/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>ILM &#8220;2&#8243; RC0 Part 1 &#8211; Installation</title>
		<link>http://www.wapshere.com/missmiis/ilm-2-rc0-part-1-installation</link>
		<comments>http://www.wapshere.com/missmiis/ilm-2-rc0-part-1-installation#comments</comments>
		<pubDate>Wed, 14 Jan 2009 10:18:38 +0000</pubDate>
		<dc:creator>Carol</dc:creator>
				<category><![CDATA[ILM "2"]]></category>

		<guid isPermaLink="false">http://www.wapshere.com/missmiis/?p=281</guid>
		<description><![CDATA[So,  I have a bit of time this week while the year gets started, and thought I would spend it playing with the latest evaluation version of ILM &#8220;2&#8243;. I hope to upgrade my company&#8217;s system at some point, so my first plan is to see if I can import the existing ILM 2007 database into it &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>So,  I have a bit of time this week while the year gets started, and thought I would spend it playing with the <a href="http://technet.microsoft.com/en-au/evalcenter/cc872861.aspx">latest evaluation version of ILM &#8220;2&#8243;</a>. I hope to upgrade my company&#8217;s system at some point, so my first plan is to see if I can import the existing ILM 2007 database into it &#8211; but before I can get there, I obviously need to install the thing.</p>
<p><span id="more-281"></span></p>
<p><strong>First I had to decide where to install it</strong></p>
<p>The office ESX farm is awaiting a capacity upgrade so I figured I&#8217;d use my demo laptop which is, for the spec nuts, a Lenovo T61 Thinkpad with 4GB of RAM, a dual-core 2.20GHz proc, and 150GB of disk.</p>
<p>I wasted a whole day installing Windows Server 2008 into a VM, using VMWare Workstation running on Vista, but the performance was appalling. I then decided to jump in, boots and all, and rebuild the laptop with Windows 2008 Server. And I must say, I was pleasantly surprised by how effortless this was &#8211; the performance bears no comparison as well!</p>
<p>One thought was to skip all the hard stuff and just download <a href="http://www.microsoft.com/downloads/details.aspx?familyid=7117b168-e71d-47cc-9739-35f1a68a5e43&amp;displaylang=en&amp;Hash=5d8Ck8oEmFefXFadNyI4vK%2fNMzgIgOM%2bd119qWCg7eJOq6%2fl7A%2bPNu3NubCHT3DZc3II3NOAj4wrdMA5iUm8Og%3d%3d#filelist">the ready-made VM</a>, which should run using Hyper-V on my newly built server/laptop. I may still try this, but the resource requirements are pretty steep &#8211; 4GB recommended for the VM, and I only have 4GB available to the whole machine!</p>
<p>So I went ahead with the manual installation, starting by installing SQL 2008, Sharepoint Services 3.0 and all the IIS components, as per <a href="http://technet.microsoft.com/en-au/library/cc561135.aspx">this ILM &#8220;2&#8243; installation doc</a>, directly onto the laptop&#8217;s core OS.</p>
<p><strong>Creating the Service Account</strong></p>
<p>The document stresses the need for a mail-enabled domain account to run the ILM service. This must be a dedicated account &#8211; which I think just means the mailbox shouldn&#8217;t be used by anything else. Presumably this mailbox will become important in the Workflows.</p>
<p>I created a regular Domain Users account, then added it to local Administrators. In SQL 2008, I created it as a Login and gave it the <em>sysadmin</em> right.</p>
<p><strong>Installing the Sychronization Service</strong></p>
<p>The &#8220;MIIS bit&#8221; is now called the Synchronization Service. I installed it and, guess what? It looks exactly the same as it always has.</p>
<p>Along the way I encountered this error: &#8220;Identity Lifecycle Manager Evaluation Release Candidate requires a running instance of Microsoft SQL Server&#8230;&#8221;   I was running the installation as an account which belonged to the local Admins, but which I had not yet added as a login in SQL Server &#8211; and in fact the installation doc convered this. The installing account must be a SQL Login <em>and</em> it must have the sysadmin right.</p>
<p>Whenever asked for a service account I gave it the domain account I created above. I was unsure whether this was the right thing to do, but so far so good.</p>
<p><strong>Installing the ILM Server</strong></p>
<p>Supposedly this bit will do all the Sharepoint Portal stuff, and the seperate &#8220;Object Store&#8221; database (are they still calling it that?)</p>
<p>I was again confused by the different accounts requested &#8211; you are asked for two during the installation, though it doesn&#8217;t ask for a password for the second account (so why ask for the account?).</p>
<p>I attempted to create and use different accounts &#8211; during which I got this delightful error from the installation program: &#8220;Error -2147217900: failed to execute SQL string, error detail: Specified collection: &#8216;ReferenceSchemaCollection&#8217; cannot be dropped because it is in use by object &#8216;dbo.GetMembersNotInSet&#8217;.&#8221;</p>
<p>In the end I used the same domain account as I had in the Sync Service installation above, and this time it completed.</p>
<p><strong>Post-Install Steps</strong></p>
<p>When I say &#8220;completed&#8221; I don&#8217;t mean &#8220;working&#8221;. The ILM Portal attempts to open at the end of the installation, and the message was &#8220;Error: Access denied&#8221;. Nice. I hoped that the post-installation steps from the doc would sort this out.</p>
<p>Firstly, the doc says you may have to manually start the &#8220;Microsoft ILM Common Services&#8221; &#8211; I don&#8217;t have this service. Instead I have &#8220;Microsoft Identity Manager Lifecycle Services &#8221; (in addition to the familar &#8220;Microsoft Identity Integration Server&#8221;) so I&#8217;m guessing they mean that? It was already started.</p>
<p>The doc also said you might have to manually add the ILM service account into the MIISAdmins group <em>if installing on a different server to the Sync Engine</em>. I installed it all on the same server &#8211; but I still had to make the manual group addition.</p>
<p>Next I followed the instructions in the doc to run the stsadm command and give access to the Sharepoint page &#8211; however the stsadm command itself refused to run with &#8221;Access denied&#8221;. In troubleshooting stsadm:</p>
<ul>
<li>I <a href="http://social.technet.microsoft.com/Forums/en-US/sharepointadmin/thread/2ad2e471-998c-4089-a633-116bf600a418/">disabled UAC</a>, which didn&#8217;t help.</li>
<li>I then ran the command from the local Administrator account, which did work. Note that I was fully logged in as Administrator &#8211; just using &#8220;Run As administrator&#8221; did <em>not</em> work.</li>
</ul>
<p>I also spent some fruitless time chasing DCOM errors in the System Event Log.</p>
<p><strong>Reinstall</strong></p>
<p>But I was still seeing that old &#8220;Access denied&#8221; error. In the end what sorted things out was doing a reinstall of both Sharepoint Services and ILM Server (not the Sync Service &#8211; that seemed to be working so I left it alone) and doing it all <em>as local Administrator</em>.  The first time round I had used a domain account that was a member of the local Administrators group. I don&#8217;t really see why it should be different, but there you go. Also, when using local Administrator, you&#8217;ll have to make up a plausible sounding email address when prompted &#8211; I don&#8217;t yet know whether this will be a problem later.</p>
<p><strong>We have Portal</strong></p>
<p>So I can see the Portal now, but only when logged in as local Administrator. It&#8217;s a start at least!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wapshere.com/missmiis/ilm-2-rc0-part-1-installation/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The ILM &#8220;2&#8243; beta 3</title>
		<link>http://www.wapshere.com/missmiis/the-ilm-2-beta-3</link>
		<comments>http://www.wapshere.com/missmiis/the-ilm-2-beta-3#comments</comments>
		<pubDate>Wed, 25 Jun 2008 09:09:10 +0000</pubDate>
		<dc:creator>Carol</dc:creator>
				<category><![CDATA[ILM "2"]]></category>

		<guid isPermaLink="false">http://www.wapshere.com/missmiis/?p=119</guid>
		<description><![CDATA[I recently downloaded the ILM &#8220;2&#8243; beta 3. I&#8217;ve had a bit of a play with it, but this post is not going to be in-depth at all &#8211; just some random thoughts. First a big thank you to the team at Microsoft for releasing a ready-made VM! After completely failing to get the beta [...]]]></description>
			<content:encoded><![CDATA[<p>I recently downloaded the ILM &#8220;2&#8243; beta 3. I&#8217;ve had a bit of a play with it, but this post is not going to be in-depth at all &#8211; just some random thoughts.</p>
<p><span id="more-119"></span></p>
<p>First a big thank you to the team at Microsoft for releasing a ready-made VM! After completely failing to get the beta 2 version working, with all its complicated software requirements, it was a joy to be able to get the beta 3 up and running so quickly.</p>
<p>The big change with &#8220;2&#8243; is the Sharepoint Portal. It has its own database (not sure if they&#8217;re still calling this the &#8220;Object Store&#8221;) which syncs to the familiar MIIS component using it&#8217;s own &#8220;ILM&#8221; MA. You do all your user/group creation and modification in this database, via the Sharepoint Portal. Because it&#8217;s built on Sharepoint you can add custom workflows &#8211; such as an approval process for group membership requests.</p>
<p>The VM also includes the promised end-user add ons &#8211; self-service Password Reset (from the logon splash screen) and self-service Distribution Lists (from an Outlook plugin). I can&#8217;t say what the impact will be of adding these in organisations with a lot of desktops, and different versions of Outlook, but they certainly would be useful to have.</p>
<p>The big change is definitely the Sharepoint Portal &#8211; it makes ILM look like a whole new product. It certainly makes my job easier when presenting ILM to potential customers &#8211; you can really do some nice demonstations: create a user in the portal, sync it through to AD, get the new user to request some mail lists, show the approval cycle&#8230; It sure makes a nicer looking demo than showing connector space objects in Identity Manager!</p>
<p>I still have more playing to do &#8211; I&#8217;m interested in how extensible the Object Store is, and whether I can modify the Sharepoint components. I also want to have a look at the codeless provisioning &#8230; but just on immediate impressions - I&#8217;m feeling very positive about the new developments.</p>
<p> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.wapshere.com/missmiis/the-ilm-2-beta-3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
