<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://myitforum.com/cs2/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Forefront Security at myITForum : FIM 2010</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx</link><description>Tags: FIM 2010</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 SP2 (Build: 31113.47)</generator><item><title>FIM 2010 – Automatically Generate the DisplayName during the creation of a new user in the Portal</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/12/01/fim-2010-automatically-generate-the-displayname-during-the-creation-of-a-new-user-in-the-portal.aspx</link><pubDate>Thu, 01 Dec 2011 10:19:16 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:160309</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=160309</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/12/01/fim-2010-automatically-generate-the-displayname-during-the-creation-of-a-new-user-in-the-portal.aspx#comments</comments><description>&lt;p&gt;Like me, you certainly want to generate automatically the DisplayName or other information during the creation of a user in the Portal. We have FirstName and LastName, why would we fill the DisplayName ? &lt;/p&gt;  &lt;p&gt;If you let the DisplayName empty, after the creation you will see your user as (No DisplayName).&lt;/p&gt;  &lt;p&gt;Here is a solution. &lt;/p&gt;  &lt;p&gt;First, customize you RCDC for User Creation to not display the DisplayName uocTextBox. We don’t need it anymore.&lt;/p&gt;  &lt;p&gt;Then before any other workflow, execute an action workflow that will evaluate the value of the DisplayName. It’s very easy : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create a new workflow, and choose a function evaluator workflow&lt;/li&gt;    &lt;li&gt;Provide a name, and specify the attribute you want to populate. In our example : [//Target/DisplayName]&lt;/li&gt;    &lt;li&gt;Then create the value using the concatenation of LastName, “ “, FirstName&lt;/li&gt;    &lt;li&gt;Save and Launch this workflow with a MPR&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;That’s it. Now, when a user is created in the Portal, DisplayName is automatically generated. Pretty cool isn’t it ? &lt;/p&gt;  &lt;p align="right"&gt;&lt;strong&gt;Published by Olivier DETILLEUX&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=160309" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Portal/default.aspx">Portal</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/WorkFlow/default.aspx">WorkFlow</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/DisplayName/default.aspx">DisplayName</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Display+Name/default.aspx">Display Name</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Function+Evaluator/default.aspx">Function Evaluator</category></item><item><title>Implementing Office 365 in a multi-forest context</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/08/21/implementing-office-365-in-a-multi-forest-context.aspx</link><pubDate>Sun, 21 Aug 2011 17:06:01 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:158962</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=158962</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/08/21/implementing-office-365-in-a-multi-forest-context.aspx#comments</comments><description>&lt;p&gt;Single Sign-On (SSO) is one of the new features brought by Office 365. This relies on the following Microsoft technologies:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The Directory Synchronization tool (DirSync) based on Identity Lifecycle Manager (ILM) 2007 to sync your on-premises directory with Office 365. &lt;/li&gt;    &lt;li&gt;Active Directory Federation Services (AD FS) 2.0 to provide authentication between your environment and Office 365.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If the benefits are important, one main limitation still exists: you cannot synchronize multiple forests. To address this scenario, Microsoft recommends to consolidate your forests or to use your primary logon forest only. This requires a deep Active Directory cleanup prior to beginning your Office 365 deployment.&lt;/p&gt;  &lt;p&gt;To overcome this issue, I worked with &lt;a href="http://whatdouc.biz/" target="_blank"&gt;Julien Peigné&lt;/a&gt; – Unified Communications Consultant at &lt;a href="http://vnext.fr"&gt;vNext&lt;/a&gt; – to develop a unique approach to sync and federate your forests with Office 365. Here is how it works in 3 main steps:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Consolidation&lt;/strong&gt;: A new, dedicated forest is created to provide a clean and consolidated directory. This directory will be synced with Office 365 using DirSync. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Synchronization&lt;/strong&gt;: User accounts are synced between the existing forests and the new resource forest using Forefront Identity Manager (FIM) 2010. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Federation&lt;/strong&gt;: AD FS 2.0 is setup and configured in each forest to provide a transparent authentication between your environment and Office 365.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The following figure summarizes the solution:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_59BA0634.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_2460CE02.png" width="244" height="98" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This provides some interesting benefits:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;All types of directories&lt;/strong&gt;: using FIM 2010, we can provide Office 365 accounts to all your users no matter their directory (Active Directory, LDAP, SQL…). &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Step-by-step migration&lt;/strong&gt;: using FIM 2010, we can filter and gradually fund accounts from your existing forests to the new resource one. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Deployment accelerator&lt;/strong&gt;: there is no need to cleanup your existing directories. Malformed, inactive or disabled accounts can simply be ignored with FIM 2010. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;No impact&lt;/strong&gt;: No change is required on your existing directories. We only sync the attributes that DirSync needs using FIM 2010.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Feel free to &lt;a href="http://www.vnext.fr" target="_blank"&gt;contact us&lt;/a&gt; for more information about this solution. Please also note that this has not been tested by the Office 365 team and is consequently not supported by Microsoft. However, we tested it and validated it in our test labs at vNext.&lt;/p&gt;  &lt;p align="right"&gt;&lt;strong&gt;Published by Olivier DETILLEUX&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=158962" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/ADFS/default.aspx">ADFS</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/ADFS+V2/default.aspx">ADFS V2</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/vNext/default.aspx">vNext</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Office+365/default.aspx">Office 365</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/whatdouc.biz/default.aspx">whatdouc.biz</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Julien+Peign_E900_/default.aspx">Julien Peigné</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/multi+forest/default.aspx">multi forest</category></item><item><title>FIM - Management Agent Creation Error–Index was out of range</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/28/fim-management-agent-creation-error-index-was-out-of-range.aspx</link><pubDate>Thu, 28 Jul 2011 08:19:42 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:158635</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=158635</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/28/fim-management-agent-creation-error-index-was-out-of-range.aspx#comments</comments><description>&lt;p&gt;Hi All,&lt;/p&gt;  &lt;p&gt;Last week, I have encountered a strange issue with a multi Active Directory Domain Management Agent. This management agent was created initially to import users from a specific domain in a multi domain forest. All was working fine, and we wanted to add an other domain in the import flow. &lt;/p&gt;  &lt;p&gt;We decided to create an temporary MA, to test the import. The validation of the MA failed with this error : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_71A68B53.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index" border="0" alt="Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_77ED61E1.png" width="244" height="92" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We made a network trace with Wireshark, and see that at the end of the creation, there is an ldap search : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_302BD8FA.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_1657A2CB.png" width="244" height="93" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The answer is : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_63879C56.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_22E54FE7.png" width="244" height="103" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Finally, we discover that an Exchange Schema Update was done in the forest (in order to create some ExtensionAttribute), but no DomainPrep. That’s why there was no msExchOrganizationContainer in the Configuration Partition. &lt;/p&gt;  &lt;p&gt;The final solution was to manually create some fake object in the Configuration Partition.&lt;/p&gt;  &lt;p align="right"&gt;&lt;strong&gt;Published by Olivier DETILLEUX&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=158635" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/index+was+out+of+range/default.aspx">index was out of range</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/error/default.aspx">error</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/msexchorganizationcontainer/default.aspx">msexchorganizationcontainer</category></item><item><title>Management Policy Rules and portal Security</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/22/management-policy-rules-and-portal-security.aspx</link><pubDate>Fri, 22 Jul 2011 08:45:57 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:158556</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=158556</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/22/management-policy-rules-and-portal-security.aspx#comments</comments><description>&lt;p&gt;As you might now, security and permissions are set on the forefront portal through MPRs.&lt;/p&gt;  &lt;p&gt;Those MPR will determine which user or which set has what right on what resource!&lt;/p&gt;  &lt;p&gt;This is a quick post giving you a few hints on how to work with these.&lt;/p&gt;  &lt;p&gt;In my previous post I briefly explained to you how to use MPRs to allow a group of people to change values of others,&lt;/p&gt;  &lt;p&gt;I will now show you how to user MPR to grant access for a Set of users to a portal Resource.&lt;/p&gt;  &lt;p&gt;Suppose that like me you created a new search scope Called Custom Search Scope, and you would like to show this search scope to a set of privileged users, here is how you do it:&lt;/p&gt;  &lt;p&gt;First of all this is my search Scope: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image002_453E8940.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image002" border="0" alt="clip_image002" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image002_thumb_46BFA554.jpg" width="244" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The keyword here is the main input you will need, in your usage keywords type some custom word, I put my name there.&lt;/p&gt;  &lt;p&gt;Finish up creating you search scope and save it.&lt;/p&gt;  &lt;p&gt;Next step is to create a set that represent your resource.&lt;/p&gt;  &lt;p&gt;I called my set Custom Search Scope and as you can see in my search filter I chose search scope and looked for my custom search scope by looking for the keyword I added earlier to it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image004_7F89D954.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image004" border="0" alt="clip_image004" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image004_thumb_7DD90D80.jpg" width="244" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now create a set containing the users you want to give permission to, I’ll skip this step as it is simple enough.&lt;/p&gt;  &lt;p&gt;Let’s go to the MPR that will control my search scopes’ display:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image006_75E16B1E.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image006" border="0" alt="clip_image006" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image006_thumb_45D7199D.jpg" width="244" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Set the requestor to be the group you wish to give permission to &lt;/p&gt;  &lt;p&gt;The operation is a simple read and of course Grants permission because it’s a portal security issue.&lt;/p&gt;  &lt;p&gt;And finally in your target resource:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image008_72EC066B.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image008" border="0" alt="clip_image008" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image008_thumb_469F59BA.jpg" width="244" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Your target resource is the custom search scope set you created earlier.&lt;/p&gt;  &lt;p&gt;Note tat you can play with permissions the same way with all of the portal’s resources which is pretty cool.&lt;/p&gt;  &lt;p&gt;Cheers&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Published By Hicham Bardawil&lt;/b&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=158556" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Management/default.aspx">Forefront Identity Management</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Manager/default.aspx">Forefront Identity Manager</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Customization/default.aspx">Customization</category></item><item><title>User Creation Approval Workflow Part 3</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/21/user-creation-approval-workflow-part-3.aspx</link><pubDate>Thu, 21 Jul 2011 13:48:11 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:158539</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=158539</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/21/user-creation-approval-workflow-part-3.aspx#comments</comments><description>&lt;p&gt;You now would like to add a search filter that will show you all of the users that need to be approved.&lt;/p&gt;  &lt;p&gt;This is done by creating a new search scope:&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image002_5CE36D72.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image002" border="0" alt="clip_image002" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image002_thumb_5B32A19E.jpg" width="244" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The usage keyword defines the place where the new search scope is displayed&lt;/p&gt;  &lt;p&gt;Putting the “person” value in there will display this search scope in the Users context &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image004_6F4BBE27.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image004" border="0" alt="clip_image004" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image004_thumb_557787F8.jpg" width="244" height="72" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The search definition will allow you to define your search parameters my parameters allow me to search for users that are active or that are not approved to export&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image006_7FE3B915.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image006" border="0" alt="clip_image006" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image006_thumb_4CA77FAC.jpg" width="244" height="191" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;That and a small IISRESET and you’ll have your new search scope ready to go !&lt;/p&gt;  &lt;p&gt;cheers&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Published By Hicham Bardawil&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=158539" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront/default.aspx">Forefront</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Management/default.aspx">Forefront Identity Management</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Manager/default.aspx">Forefront Identity Manager</category></item><item><title>User Creation Approval Workflow Part 2</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/21/user-creation-approval-workflow-part-2.aspx</link><pubDate>Thu, 21 Jul 2011 13:45:24 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:158538</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=158538</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/21/user-creation-approval-workflow-part-2.aspx#comments</comments><description>&lt;p&gt;Now let’s see how to deal with the approval workflow:&lt;/p&gt;  &lt;p&gt;First of all you have to set the value of this attribute to your negative value so that you can later create a search scope that will show all of the users that need to be approved.&lt;/p&gt;  &lt;p&gt;And you must do this to newly created users in the portal only:&lt;/p&gt;  &lt;p&gt;To do that, in you user creation Workflow (from your source sql DB) add a function evaluator activity and tell it to set your value to “No”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image002_4DE91A91.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image002" border="0" alt="clip_image002" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image002_thumb_2BB10F0B.jpg" width="244" height="135" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then, create you user sets for users that are not approved and another user set for users that are approved.&lt;/p&gt;  &lt;p&gt;The sets must be criteria based and the criteria must be the value of your approval attribute.&lt;/p&gt;  &lt;p&gt;And the last step is to create your transition MPRs that will activate the workflow when your users transition from the unapproved User set to the approved user Set.&lt;/p&gt;  &lt;p&gt;And you now have an approval workflow for your user creation.&lt;/p&gt;  &lt;p&gt;You might also add to you user creation workflow a notification action informing the admins that there are new users that need to be approved.&lt;/p&gt;  &lt;p&gt;In my case I have to create an approval workflow for user disabling also but you get the idea J pretty flexible once you get the hang of it !&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Published By Hicham Bardawil&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=158538" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront/default.aspx">Forefront</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Management/default.aspx">Forefront Identity Management</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Manager/default.aspx">Forefront Identity Manager</category></item><item><title>User Creation Approval Workflow Part 1</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/21/user-creation-approval-workflow-part-1.aspx</link><pubDate>Thu, 21 Jul 2011 13:42:20 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:158537</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=158537</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/21/user-creation-approval-workflow-part-1.aspx#comments</comments><description>&lt;p&gt;Let’s take an example where you have an SQL DB containing the source users and you would like to export them to an active directory domain.&lt;/p&gt;  &lt;p&gt;And you have client that would like to approve that users must be created in Active directory before the export takes place.&lt;/p&gt;  &lt;p&gt;FIM does not allow you to have approval workflows for user creation.&lt;/p&gt;  &lt;p&gt;The best way I found to do it was to add to the user object in the FIM portal an approve for export dropdown menu . users will only be exported to AD when the value of this new attribute is set to “yes”. And this is how it was done:&lt;/p&gt;  &lt;p&gt;First you need to create the new attribute in the FIM, Schema Management menu.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image002_47DFDD3D.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image002" border="0" alt="clip_image002" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image002_thumb_337A17B2.jpg" width="244" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Create a new attribute as a Boolean or a string depending on the number of values you wich to propose to the User.&lt;/p&gt;  &lt;p&gt;I chose Boolean and Forced the User choice by using this validation string pattern “^(yes|no)?$”&lt;/p&gt;  &lt;p&gt;Once the attribute is created link it to the user object.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image004_6BB88ECA.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image004" border="0" alt="clip_image004" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image004_thumb_63C0EC68.jpg" width="244" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And add permissions to this attribute in:&lt;/p&gt;  &lt;p&gt;a. Administrator and non-administrator filter permissions&lt;/p&gt;  &lt;p&gt;b. Administrators can read and update Users MPR&lt;/p&gt;  &lt;p&gt;You now which to display this object in the user properties:&lt;/p&gt;  &lt;p&gt;This is how I displayed my two new attributes &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image006_70BACC79.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image006" border="0" alt="clip_image006" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image006_thumb_2FAC4D15.jpg" width="244" height="192" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you can see, I created a new tab ad added my new attributes to it.&lt;/p&gt;  &lt;p&gt;This is done by changing the RCDC (resource control display configuration) of the &lt;a&gt;Configuration for User Editing&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Just export the current configuration &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image008_60CB87B5.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image008" border="0" alt="clip_image008" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image008_thumb_74787149.jpg" width="244" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You’ll get and XML file edit it by adding the link to the attributes you want to add and import it back to the portal. &lt;/p&gt;  &lt;p&gt;Here is what my new tab and attributes look like in xml&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Grouping my:Name=&amp;quot;ADStatus&amp;quot; my:Caption=&amp;quot;Status in AD&amp;quot; my:Description=&amp;quot;Confirm User Creation or User Disable in ADROOT&amp;quot; my:Enabled=&amp;quot;true&amp;quot; my:Visible=&amp;quot;true&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Control my:Name=&amp;quot;EmployeeStatus&amp;quot; my:TypeName=&amp;quot;UocLabel&amp;quot; my:Caption=&amp;quot;{Binding Source=schema, Path=EmployeeStatus.DisplayName}&amp;quot; my:Description=&amp;quot;{Binding Source=schema, Path=EmployeeStatus.Description}&amp;quot; my:RightsLevel=&amp;quot;{Binding Source=rights, Path=EmployeeStatus}&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Properties&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;Required&amp;quot; my:Value=&amp;quot;{Binding Source=schema, Path=EmployeeStatus.Required}&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;Text&amp;quot; my:Value=&amp;quot;{Binding Source=object, Path=EmployeeStatus, Mode=TwoWay}&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/my:Properties&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/my:Control&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Control my:Name=&amp;quot;ApprovedforExport&amp;quot; my:TypeName=&amp;quot;UocDropDownList&amp;quot; my:Caption=&amp;quot;{Binding Source=schema, Path=ApprovedforExport.DisplayName}&amp;quot; my:Description=&amp;quot;{Binding Source=schema, Path=ApprovedforExport.Description}&amp;quot; my:RightsLevel=&amp;quot;{Binding Source=rights, Path=ApprovedforExport}&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Properties&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;ValuePath&amp;quot; my:Value=&amp;quot;Value&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;CaptionPath&amp;quot; my:Value=&amp;quot;Caption&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;HintPath&amp;quot; my:Value=&amp;quot;Hint&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;ItemSource&amp;quot; my:Value=&amp;quot;{Binding Source=schema, Path=ApprovedforExport.LocalizedAllowedValues}&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;SelectedValue&amp;quot; my:Value=&amp;quot;{Binding Source=object, Path=ApprovedforExport, Mode=TwoWay}&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/my:Properties&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/my:Control&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Control my:Name=&amp;quot;disableinad&amp;quot; my:TypeName=&amp;quot;UocDropDownList&amp;quot; my:Caption=&amp;quot;{Binding Source=schema, Path=disableinad.DisplayName}&amp;quot; my:Description=&amp;quot;{Binding Source=schema, Path=disableinad.Description}&amp;quot; my:RightsLevel=&amp;quot;{Binding Source=rights, Path=disableinad}&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Properties&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;ValuePath&amp;quot; my:Value=&amp;quot;Value&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;CaptionPath&amp;quot; my:Value=&amp;quot;Caption&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;HintPath&amp;quot; my:Value=&amp;quot;Hint&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;ItemSource&amp;quot; my:Value=&amp;quot;{Binding Source=schema, Path=disableinad.LocalizedAllowedValues}&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Property my:Name=&amp;quot;SelectedValue&amp;quot; my:Value=&amp;quot;{Binding Source=object, Path=disableinad, Mode=TwoWay}&amp;quot;/&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/my:Properties&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/my:Control&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;/my:Grouping&amp;gt;&lt;/p&gt;  &lt;p&gt;A grouping is the TAB and then under this grouping you add the control (as in attribute) that you which to display.&lt;/p&gt;  &lt;p&gt;Annnd you’re done, of course you now have to create the workflow to deal with this approval process which I will show you in my next part&lt;/p&gt;  &lt;p&gt;Cheers&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Published By Hicham Bardawil&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=158537" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront/default.aspx">Forefront</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Management/default.aspx">Forefront Identity Management</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Manager/default.aspx">Forefront Identity Manager</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/ilm/default.aspx">ilm</category></item><item><title>Allowing a group of users to administer specific user attributes in FIM</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/21/allowing-a-group-of-users-to-administer-specific-user-attributes-in-fim.aspx</link><pubDate>Thu, 21 Jul 2011 13:38:55 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:158536</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=158536</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/07/21/allowing-a-group-of-users-to-administer-specific-user-attributes-in-fim.aspx#comments</comments><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’ve recently had to deal with a lot of FIM issues I now have finally found the time to share with you some of the things I learned, hope this helps:&lt;/p&gt;  &lt;p&gt;So you want to allow a group of users to be able to edit a specific user attribute for all the other users in the portal.&lt;/p&gt;  &lt;p&gt;MPR will allow you to do that but before even getting to that point note that in your import attribute flows remember that FIM users the ObjectSID user attribute to control access to the portal so you need to sync this attribute otherwise you’ll have the famous service not available error screen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image002_5C1A5B65.gif"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="clip_image002" border="0" alt="clip_image002" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image002_thumb_13EC9F89.gif" width="244" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then you can create a user set to which you add the users that will administer the portal and set this attribute&lt;/p&gt;  &lt;p&gt;Either enable the &lt;a&gt;User management: Users can read selected attributes of other users&lt;/a&gt; MPR and configure it as pleases you or create another one and set the values (remember to check the grant permission checkbox)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image004_1A337617.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="clip_image004" border="0" alt="clip_image004" src="http://myitforum.com/cs2/blogs/forefrontsecurity/clip_image004_thumb_7940036F.jpg" width="244" height="75" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If like me you had to add a new attribute to the schema and attach it to the user object remember to set in you RCDC the my:RightsLevel&amp;quot; section in the field definition as per this example&lt;/p&gt;  &lt;p&gt;&amp;lt;my:Control my:Name=&amp;quot;EmployeeType&amp;quot; my:TypeName=&amp;quot;UocDropDownList&amp;quot; my:Caption=&amp;quot;{Binding Source=schema, Path=EmployeeType.DisplayName}&amp;quot; my:Description=&amp;quot;{Binding Source=schema, Path=EmployeeType.Description}&amp;quot; my:RightsLevel=&amp;quot;{Binding Source=rights, Path=EmployeeType}&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Published By Hicham Bardawil&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=158536" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront/default.aspx">Forefront</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Management/default.aspx">Forefront Identity Management</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Manager/default.aspx">Forefront Identity Manager</category></item><item><title>FIM 2010–Service not available</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/04/13/fim-2010-service-not-available.aspx</link><pubDate>Wed, 13 Apr 2011 20:20:45 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:156652</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=156652</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/04/13/fim-2010-service-not-available.aspx#comments</comments><description>&lt;p&gt;Hi all,&lt;/p&gt;  &lt;p&gt;Just a little note about a common problem after Forefront Identity Manager 2010 installation. During the first access to the portal, you may encountered the following error : &lt;/p&gt;  &lt;p&gt;“ Service Not Available – Please contact your help desk or system administrator”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_72CC41CF.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_0D2C34E7.png" width="244" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This error appends to me when I access the IdentityManagement using the FDQN of the portal, but not when I use the short name. For my example : &lt;/p&gt;  &lt;p&gt;&lt;a href="https://fim/identitymanagement"&gt;https://fim/identitymanagement&lt;/a&gt; works well but &lt;a href="https://fim.labiam.corp/identitymanagement"&gt;https://fim.labiam.corp/identitymanagement&lt;/a&gt; returns an error.&lt;/p&gt;  &lt;p&gt;After a quick look at the EventViewer on the FIM Server, I can see that there are lots of SharePoint 8214 errors: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_70431011.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_5CB5B070.png" width="244" height="172" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2 points to solve this problem : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;First, add https://&amp;lt;your fim server fqdn&amp;gt; to the intranet local sites&lt;/li&gt;    &lt;li&gt;Second, add https://&amp;lt;your fim server fqdn&amp;gt; to the Intranet URL of the Alternate Access Mappings Configuration&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_4D329EA1.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_40584883.png" width="244" height="172" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And that’s it. This is one of the main case you can encountered after FIM Installation.&lt;/p&gt;  &lt;p align="right"&gt;&lt;strong&gt;Published by Olivier DETILLEUX&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=156652" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Manager/default.aspx">Forefront Identity Manager</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/AAM/default.aspx">AAM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Event+ID+8214/default.aspx">Event ID 8214</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Service+Not+Available/default.aspx">Service Not Available</category></item><item><title>UAG, FIM and an encrypted SQL repository–part 2</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/02/23/uag-fim-and-an-encrypted-sql-repository-part-2.aspx</link><pubDate>Wed, 23 Feb 2011 10:39:56 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:154639</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=154639</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/02/23/uag-fim-and-an-encrypted-sql-repository-part-2.aspx#comments</comments><description>&lt;p&gt;Hi all,&lt;/p&gt;  &lt;p&gt;In the previous post, we have seen how put an encrypted value in an SQL database with FIM Password Management. &lt;/p&gt;  &lt;p&gt;We now want to :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Connect to the SQL database with UAG&lt;/li&gt;    &lt;li&gt;Secure this connection&lt;/li&gt;    &lt;li&gt;Get the encrypted password&lt;/li&gt;    &lt;li&gt;Decrypt the password&lt;/li&gt;    &lt;li&gt;Add the password to the user session&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Securing the SQL connection&lt;/h3&gt;  &lt;p&gt;It is necessary to encrypt the sql connection, otherwise we can find the password in the TCP frame. Below is the details of a captured frame : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_10D0152C.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_46192791.png" width="244" height="174" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We can clearly view the password of jkirk user.&lt;/p&gt;  &lt;p&gt;To secure the connection, the easiest way is : &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Create a server certificate for the SQL server&lt;/li&gt;    &lt;li&gt;Put the certification authority certificate in the Trusted Root Certification Container of the UAG server&lt;/li&gt;    &lt;li&gt;Activate the Secure Only connection&lt;/li&gt; &lt;/ol&gt;  &lt;h5&gt;Create the certificate&lt;/h5&gt;  &lt;p&gt;Create a server certificate with you private certification authority :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;type : server authentication&lt;/li&gt;    &lt;li&gt;name : sql server name (or fqdn, depends of what you set in the connection string)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_0AE54BC6.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_56D0AC72.png" width="244" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;Activate the Secure Only connection&lt;/h5&gt;  &lt;p&gt;On the SQL server, open the SQL Server Configuration Manager. Edit the Protocols Properties, and set the ForceEncryption to Yes&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_006477A6.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_64070FB8.png" width="244" height="199" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Restart the SQL connection&lt;/p&gt;  &lt;p&gt;Now, you can see that all frame are encrypted.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_1B6D20E7.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_745261A4.png" width="244" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;h3&gt;Getting and decrypting the password with UAG&lt;/h3&gt;  &lt;p&gt;If you don’t have read the previous post (&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2010/12/30/publishing-internet-web-site-through-uag-part-3.aspx" target="_blank"&gt;Publishing internet web site through UAG – part 3&lt;/a&gt;), here is the actual postpostvalidate.inc file : &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#39; get lead user&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;set user_vec = getsessionuservec(g_cookie)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;for each user in user_vec.uservec&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;user_name = user.User&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;Next&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#39; sql connection&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#39; variable initialization&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;dim oconn, oRecordSet, scommandText, sconnectionstring&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;scommandText = “select * from &amp;lt;your database/table name&amp;gt; where leaduser=’” &amp;amp; user_name &amp;amp; “’”&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&lt;font face="Courier New"&gt;&amp;#39; &lt;/font&gt;setting up SQL-connection-string&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;sconnectionString = “Provider=SQLoLEDB; Data Source=&amp;lt;SQL server Name&amp;gt;\&amp;lt;instance&amp;gt;;Initial catalog=&amp;lt;table&amp;gt;;user ID=&amp;lt;sql user&amp;gt;;Password=&amp;lt;user password&amp;gt;’&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#39; Setting up SQL-connection object&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;set oConn=Server . createobj ect ( ADODB.connection”)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;oconn. connectionString=sconnectionString&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#39; open SQL—connection&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;oconn. Open&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#39; Send the query to SQL&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;set oRecordSet = Server, createobject (“ADoDB.recordset”)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;oRecordSet. open scommandText, oconn&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#39; add secondary session to the user&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;if not oRecordSet.EOF then&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;do while not oRecordSet.EOF&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;addsessionuser g_cookie,oRecordSet(”appLogon”) ,oRecordSet(”appPassword”) ,oRecordSet(”application”)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;oRecordSet. moveNext&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;loop&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;end if&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Previously, the SQL Database was on the UAG Server. We now want to connect to a remote database. The SQL Connection String is not different, just use your remote server name.&lt;/p&gt;  &lt;p&gt;In order to decrypt the encrypted password, it is necessary to open the key. Add the following line in the postpostvalidate.inc file : &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;‘ open the symmetric key&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;scommandText = “open symmetric key SSN_KEY_01 decryption by certificate UserRepositoryCertificate”&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Courier New"&gt;oRecordSet.open sCommandText, oConn&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;To get and decrypt the password, change the commandText line : &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;scommandText = “select appLogon, application, convert(&amp;#39;varchar, DecryptByKey(appPasswordEncrypt)) appPasswordDecrypted from &amp;lt;your table name&amp;gt; where leaduser=’” &amp;amp; user_name &amp;amp; “’”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;And the addsessionuser is now : &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font face="Courier New"&gt;addsessionuser g_cookie, oRecordSet(“appLogon”), oRecordSet(“appPasswordDecrypted”), oRecordSet(“application”)&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You can make the same changes in the CustomRepository.inc file.&lt;/p&gt;  &lt;p align="right"&gt;&lt;strong&gt;Published by Olivier DETILLEUX&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=154639" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront/default.aspx">Forefront</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+UAG/default.aspx">Forefront UAG</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/SSO/default.aspx">SSO</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/UAG/default.aspx">UAG</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/UAG+SP1/default.aspx">UAG SP1</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Manager/default.aspx">Forefront Identity Manager</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Custom+Repository/default.aspx">Custom Repository</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/UAG+User-Defined+Repository/default.aspx">UAG User-Defined Repository</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Unified+Access+Gateway/default.aspx">Unified Access Gateway</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/SQL/default.aspx">SQL</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/PCNS/default.aspx">PCNS</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Customization/default.aspx">Customization</category></item><item><title>Synchronize Active Directory Password to an SQL database with FIM and PCNS</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/02/08/synchronize-active-directory-password-to-an-sql-database-with-fim-and-pcns.aspx</link><pubDate>Tue, 08 Feb 2011 14:12:44 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:154053</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=154053</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2011/02/08/synchronize-active-directory-password-to-an-sql-database-with-fim-and-pcns.aspx#comments</comments><description>&lt;p&gt;Hi,&lt;/p&gt;  &lt;p&gt;For the purpose of my “Internet Web Site Publishing Scenario”, I have to find a way to push an Active Directory Password to an SQL Database.&lt;/p&gt;  &lt;p&gt;As you know, we cannot read stored passwords in an Active Directory. The only solution, is to catch the password before the encryption. PCNS (Password Change Notification Service), a FIM integrated functionality, can do that for us.&lt;/p&gt;  &lt;h3&gt;SQL Database Configuration&lt;/h3&gt;  &lt;p&gt;First, the SQL Configuration. I want to push the passwords in a specific table, for a specific user : &lt;/p&gt;  &lt;p&gt;Here is my table : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_4BEBFD0A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_74A76253.png" width="244" height="159" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;FIM Installation&lt;/h3&gt;  &lt;p&gt;Read the article of my colleague, Hicham (&lt;a title="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2010/03/17/forefront-identity-management-2010-installation.aspx" href="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2010/03/17/forefront-identity-management-2010-installation.aspx"&gt;http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2010/03/17/forefront-identity-management-2010-installation.aspx&lt;/a&gt;) to a complete step by step.&lt;/p&gt;  &lt;p&gt;Next, I have created to management agent : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;One for Active Directory reading&lt;/li&gt;    &lt;li&gt;One for SQL writing&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Nothing complicated. Nothing about Password for the moment.&lt;/p&gt;  &lt;h3&gt;PCNS installation&lt;/h3&gt;  &lt;h4&gt;Active Directory Schema Extension&lt;/h4&gt;  &lt;p&gt;In order to use PCNS, it is necessary to extend the Active Directory Schema.&lt;/p&gt;  &lt;p&gt;On a domain controller, run the following command : &lt;/p&gt;  &lt;p&gt;msiexec /I “C:\sources\Forefront Identity Manager\Password Change Notification Service\Password Change Notification Service.msi” SCHEMAONLY=TRUE&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_6760D940.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_4528CDBA.png" width="244" height="49" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This command start the installation&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_63FF4198.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_1446164F.png" width="244" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A restart is needed.&lt;/p&gt;  &lt;p&gt;After that, create a global security group in Active Directory. Only the password of the members of this group are synchronized.&lt;/p&gt;  &lt;h4&gt;SPN and PCNS configuration&lt;/h4&gt;  &lt;p&gt;On the domain controller, launch a cmd window, and run the following command : &lt;/p&gt;  &lt;p&gt;setspn –a PCNSCLIENT/&amp;lt;fqdn of your FIM server&amp;gt; &amp;lt;domain&amp;gt;\&amp;lt;FIM service account&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_194853FE.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_70C971E9.png" width="244" height="34" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can view the result with the setspn –L &amp;lt;fim service account&amp;gt; command&lt;/p&gt;  &lt;p&gt;Then configure PCNS : &lt;/p&gt;  &lt;p&gt;pcnscfg.exe addtarget /N:PCNSCLIENT /A:&amp;lt;fqdn of your FIM server&amp;gt; /S:PCSNSCLIENT/&amp;lt;fqdn of your FIM server&amp;gt; /fi:&amp;quot;”&amp;lt;name of the PCNS Active Directory Group&amp;gt; /f:3&lt;/p&gt;  &lt;p&gt;A restart is needed.&lt;/p&gt;  &lt;h4&gt;FIM Configuration&lt;/h4&gt;  &lt;p&gt;Now, we have to define the source password repository and the destination.&lt;/p&gt;  &lt;p&gt;First, go in FIM and open the options menu. Enable the Password Synchronization functionality.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_21E8AC8A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_672103B3.png" width="244" height="207" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On the Active Directory MA, edit the properties, and Enable Password Sync Source. Select the SQL MA as a target.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_0BD21B2B.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_1B91B02F.png" width="244" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On the SQL MA, edit the properties and Enable Password Management. Edit the settings and disable the secure connection option. For the moment, the connection to the SQL database is unsecure. We will see in an other post how we can enable that, and push encrypt password.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_67E943D0.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_33687188.png" width="244" height="193" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;SQL doesn’t have a predefined extension rule for password sync. We have to create our own DLL. Specify a name in the Extension Name (SQLPwdChange.dll for that example).&lt;/p&gt;  &lt;p&gt;In the Settings of Connection Information, you can specify an user account, password and domain, that has the right to connect to the SQL database.&lt;/p&gt;  &lt;h4&gt;Custom SQL Password Extension Rule&lt;/h4&gt;  &lt;p&gt;A custom password extension rule has the following form : &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;namespace Miis_PasswordManagement     &lt;br /&gt;{      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public class MAPasswordManagement : IMAPasswordManagement      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public MAPasswordManagement // constructor&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void BeginConnectionToServer // start a connection to a server&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void EndConnctionToServer // close the active connection&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public ConnectionSecurityLevel // Get the security level for the connection&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void SetPassword // function to set a password&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void changePassword // function to change a password&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public void RequireChangePasswordOnNextLogin // force the change of the password at next login&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;}      &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;My custom password extension rule :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;MAPasswordManagement &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_1C59F04C.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_1BEDBD57.png" width="244" height="63" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;BeginConnectionToServer&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_4902AA25.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_75AB63FE.png" width="244" height="110" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;EndConnectionToServer&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_58C23F29.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_056AF903.png" width="244" height="83" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;ul&gt;   &lt;li&gt;SetPassword&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_1264D914.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_6F5467A3.png" width="244" height="85" /&gt;&lt;/a&gt;&lt;/p&gt;          &lt;h3&gt;Testing&lt;/h3&gt;  &lt;p&gt;Now we can test. Try to change or set a password for an existing user in Active Directory. In my Case, for tmosby.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_00589587.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_6467608E.png" width="244" height="225" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The new password is immediately pushed in the database for my user.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_1B613EC8.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_13699C66.png" width="244" height="49" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;An other test : Create a new user in active directory, and set a password. My new user is tscavo. Set that the user must change jis passworrd Next Login.&lt;/p&gt;  &lt;p&gt;In FIM, run an import / sync on the AD MA : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_590E2684.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_56E101EE.png" width="244" height="202" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Run an Export to SQL&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_2DF5ECE5.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_64176534.png" width="244" height="183" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;User is created in SQL.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_62669960.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_0EA32045.png" width="244" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Open a session with this new user, and change the password. Check that the new password is created in SQL&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_3EE9F4FB.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_5D5435E4.png" width="244" height="78" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Troubleshooting&lt;/h3&gt;  &lt;p&gt;Why my password isn’t synchronized ? &lt;/p&gt;  &lt;p&gt;First of all, check that the &lt;u&gt;user is a member of the Security Group allowed to synchronize password&lt;/u&gt;.&lt;/p&gt;  &lt;p&gt;Then, check the eventlog on the DC. When a password change is detected, a 2100 event in the Application Event Log appears.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_5079DFC6.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_6D9F87D0.png" width="244" height="120" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Check that the version of PCNS is correct for your Domain Controller&lt;/u&gt; architecture (x86 or x64). A miss configuration would cause 6002 events.&lt;/p&gt;  &lt;p&gt;If all seems to be ok on the Domain Controller, check on the FIM side. You can trace the PCNS events in the database. Have a look in the mms_tracking_entries_history. You will see all the events. Look for your user, for example “tscavo”. You will see the source and the target event.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_36E22CCC.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_05CF03FA.png" width="244" height="195" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If all is ok, the target event should finish with a 0x0 result code.&lt;/p&gt;  &lt;p&gt;If there is a problem during the synchronization, a specific result code is generated. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_221C461A.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_0E8EE679.png" width="244" height="50" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;For example, you may encountered 0x80231302 error, related to the server connection (generally generated when secure connection is activated on a target that doesn’t support that).&lt;/p&gt;  &lt;p&gt;In a another article, we will see how we can encrypt the communication, the password, and how UAG can read this encrypted password.&lt;/p&gt;  &lt;p align="right"&gt;&lt;strong&gt;Published by Olivier DETILLEUX&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=154053" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Manager/default.aspx">Forefront Identity Manager</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/SQL/default.aspx">SQL</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/setpassword/default.aspx">setpassword</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/MAPasswordManagement/default.aspx">MAPasswordManagement</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Miis_5F00_PasswordManagement/default.aspx">Miis_PasswordManagement</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/PCNS/default.aspx">PCNS</category></item><item><title>New-MoveRequest error during FIM Gal Sync</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2010/09/02/new-moverequest-error-during-fim-gal-sync.aspx</link><pubDate>Thu, 02 Sep 2010 15:57:00 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:153259</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=153259</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2010/09/02/new-moverequest-error-during-fim-gal-sync.aspx#comments</comments><description>&lt;p&gt;Today, I have experienced a problem during GAL Sync between an Exchange 2003 and an Exchange 2010 SP1 with Forefront IM 2010&lt;/p&gt;  &lt;p&gt;The goal of the GAL Sync is to provision some MailUsers in a resources Forest. MailUsers are linked to user accounts in an accounts Forest.&lt;/p&gt;  &lt;p&gt;Below is the synchronisation schema.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_1EDD3BDF.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_5D628985.png" width="260" height="123" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In order to create the MailUser, I use this ExchangeUtils commands : &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;csentry = ExchangeUtils.CreateMailbox(myMailADMA, dn, mailNickname, &lt;strong&gt;&lt;u&gt;homeMDB&lt;/u&gt;&lt;/strong&gt;)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;then set a targetaddress and add the original ObjectSid as a msExchMasterAccountSid (to link the mailbox). In the end, I have got a “LinkedMailUser”.&lt;/p&gt;  &lt;p&gt;Before the SP1 of Exchange, I was able to launch a move request : &lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;New-MoveRequest -identity &lt;/font&gt;&lt;a href="mailto:mailuser@ex2k3exchangeForest.lan"&gt;&lt;font face="Courier New"&gt;mailuser@ex2k3exchangeForest.lan&lt;/font&gt;&lt;/a&gt;&lt;font face="Courier New"&gt; -RemoteLegacy -RemoteGlobalCatalog remoteEx2k3GC -RemoteCredential $UserCred -TargetDeliveryDomain resourceForest.lan&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;But after Exchange 2010 SP1, the same cmd is in error with the following message : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_6E66B768.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:block;float:none;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_4968F6EF.png" width="332" height="48" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;-&amp;gt; Target User ‘xxxxxxxxxxxxxxxx’ already has a primary mailbox.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The problem comes from the HomeMDB attribute. With Exchange 2010 SP1, this attribute must be empty during the New-MoveRequest. &lt;/p&gt;  &lt;p&gt;Another solution is to use ExchangeUtils.CreateMailEnabledUser, but that’s an other point : it’s easier for me to use CreateMailbox&lt;/p&gt;  &lt;p align="right"&gt;Published by Olivier DETILLEUX&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=153259" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront/default.aspx">Forefront</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront+Identity+Manager/default.aspx">Forefront Identity Manager</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/ILM+2007/default.aspx">ILM 2007</category></item><item><title>Debugging your ILM/MIIS provisioning Code</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2010/07/22/debugging-your-ilm-miis-provisioning-code.aspx</link><pubDate>Thu, 22 Jul 2010 09:08:00 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:154418</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=154418</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2010/07/22/debugging-your-ilm-miis-provisioning-code.aspx#comments</comments><description>&lt;p&gt;one of the most useful features you can use to troubleshoot your MIIS provisioning is the Visual Studio Debug.&lt;/p&gt;  &lt;p&gt;since everything related to your provisioning is done in your code, it is very useful to follow step by step what’s going on in your code,&lt;/p&gt;  &lt;p&gt;this is how its done:&lt;/p&gt;  &lt;p&gt;first of all make sure your provisioning Code is not running in a separate process :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_40CBAE34.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_184CCC20.png" width="244" height="208" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;same goes for you export and import rule extensions of course.&lt;/p&gt;  &lt;p&gt;then go to your visual Studio project configuration manager and make sure you are compiling you code in debug Mode: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_15C39A62.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_628760F8.png" width="244" height="155" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;to start your debugging attach your code to the MIIServer process &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_4846F7D4.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_06CC457B.png" width="244" height="170" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and select a location in your code where you want to set your breakpoint, I like to start at the beginning but you can break at a any location if you are looking for something specific:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_306010AE.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_24BA2DA2.png" width="244" height="143" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;now go back to your synchronization service console and select a user you want to test the synchronization process on:&lt;/p&gt;  &lt;p&gt;basically a user you just imported &lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_230961CE.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_33A15CBC.png" width="244" height="189" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;select preview and generate a preview:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_592ADA1D.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_25826DBF.png" width="244" height="157" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;and if you did everything right your debugging process will start and visual studio will stop at the breakpoint you specified and you will be able to cycle through your code seeing exactly what happens at every line:&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://myitforum.com/cs2/blogs/forefrontsecurity/image_76508227.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://myitforum.com/cs2/blogs/forefrontsecurity/image_thumb_464630A6.png" width="244" height="35" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;if after you click on generate preview the debug does not work check the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You ran your code in debug mode &lt;/li&gt;    &lt;li&gt;Check for the debug file generated next to you dll and delete it then recompile &lt;/li&gt;    &lt;li&gt;your provisioning or extension attribute dlls are not running in separate processes &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;hope this helps&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Published By Hicham Bardawil&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=154418" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Forefront/default.aspx">Forefront</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/step+by+step/default.aspx">step by step</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM/default.aspx">FIM</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/FIM+2010/default.aspx">FIM 2010</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/debug/default.aspx">debug</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/miis/default.aspx">miis</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/ilm/default.aspx">ilm</category></item></channel></rss>