<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/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>From donovanf's Office : AD</title><link>http://blogs.msdn.com/donovanf/archive/tags/AD/default.aspx</link><description>Tags: AD</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Active Directory Federation Services (ADFS) for ASP.NET 2.0 Developers</title><link>http://blogs.msdn.com/donovanf/archive/2008/06/19/active-directory-federation-services-adfs-for-asp-net-2-0-developers.aspx</link><pubDate>Fri, 20 Jun 2008 01:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8623326</guid><dc:creator>donovanf</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/donovanf/comments/8623326.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donovanf/commentrss.aspx?PostID=8623326</wfw:commentRss><description>&lt;P&gt;This post is to inform you of a couple new screencasts on &lt;A class="" title=Channel9 href="http://channel9.msdn.com/Media/Screencasts/" target=_blank mce_href="http://channel9.msdn.com/Media/Screencasts/"&gt;Channel9&lt;/A&gt;&amp;nbsp;hosted by Keith Brown. In these, Keith drills into the role AD FS can play in helping you architect/develop claims-based Web applications which offer their Internet users not only a Web SSO experience, but supports user access by federation partners as well. Both are much needed in today’s Web applications! &lt;/P&gt;
&lt;P&gt;For some time now developers have built Web applications around a domain or application-based identity infrastructures to provide user access to their applications. In the domain-based Windows environment, Windows integrated authentication has worked its magic on the user’s behalf by extending their single, interactive authentication event to a host of applications and services providing the user with a single signon (SSO) experience. But, this has one catch, a domain-based identity infrastructure retains absolute authority over the identities within its domain and let’s no others in. It creates users and services and makes all the trust decisions for them within its borders, that is, within the firewall. However, as the business need for ubiquitous user access has evolved, the demand upon Web applications is to no longer only support users inside the firewall. Potentially, these same applications, or portions of them, need to now be accessed by vendors, partners or customers as well. How do you provide access for these users to applications built around the domain-based identity model? At the minimum, it infers additional user account management. Each one must have a domain-based identity inside the firewall. If this means hundreds or potentially thousands of additional user accounts, it’s a further burden on IT and helpdesk staff to manage password resets and provisioning/de-provisioning of accounts for those loosely affiliated with the organization.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Federation:&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;&lt;A class="" title=ADFS href="http://technet2.microsoft.com/windowsserver2008/en/servermanager/activedirectoryfederationservices.mspx" target=_blank mce_href="http://technet2.microsoft.com/windowsserver2008/en/servermanager/activedirectoryfederationservices.mspx"&gt;Active Directory Federation Services (AD FS)&lt;/A&gt;,&amp;nbsp;in Windows Server 2003 R2 and 2008,&amp;nbsp;enables the cross-domain reach of your Web applications while preserving a Windows Integrated Authentication experience inside the firewall and providing a SSO experience across Web applications for those outside the firewall. Furthermore, AD FS makes additional user account management unnecessary because it provides an infrastructure for establishment of federation trust relationships with partner organizations. Due to the federation trust relationship, accounts from the partner’s domain can be trusted to have access to specific applications within your domain. Therefore, in a federated trust model, each organization continues to manage its own domain-based identities, but they can also securely project and accept these digital identities, including their associated access rights, into or from other partner organizations. &lt;/P&gt;
&lt;P&gt;So what are the advantages of moving to this cross-domain, federation trust model for identities? First, from a SSO perspective, AD FS manages this for your AD FS enabled Web applications. AD FS maintains SSO for any Web application relying on it to broker authentication events via the pre-established federation trust relationships. After the user’s initial authentication, if they navigate to other AD FS enabled Web applications that are under the same federation trust, the user experiences SSO with these applications as well. Secondly, from an architect’s and developer’s perspective, with AD FS in the mix, you can design and build your applications with the intent that they may be accessed by anyone. Essentially, write the application once, but fully anticipate its use by users from multiple security domains – again, some from inside the firewall and others from outside. And, because AD FS is based on the open standard &lt;A class="" title=WS-Federation href="http://specs.xmlsoap.org/ws/2006/12/federation/ws-federation.pdf" target=_blank mce_href="http://specs.xmlsoap.org/ws/2006/12/federation/ws-federation.pdf"&gt;WS-Federation&lt;/A&gt; protocol, it can also broker access to your application from any non-Microsoft platform that implements WS-Federation. This further extends the reach of your federation-aware application.&lt;/P&gt;
&lt;P&gt;The next logical question is, if you decouple the authentication event from the application, how does the application get the information it needs to make its access control decisions? As mentioned above, the cross-domain digital identities also can contain access rights, asserted in the form of claims that the application can consume. The application can use these claim values to enforce its internal access control decisions. A very handy technology for mapping access rights to roles is Windows Authorization Manager (AzMan). I’ve already discussed AzMan in previous blogs, but its role-based access control (RBAC) capabilities can be employed in the claims-based programming model that AD FS uses. Hence, the purpose of this blog. To introduce you to the Channel9 screencast series focusing on claims-based programming with AD FS, hosted by Keith Brown. Please follow the links below. &lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Channel9 Screencasts:&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;&lt;A class="" title="ADFS Part 1" href="http://channel9.msdn.com/posts/donovanf/Demystified-Series-Active-Directory-Federation-Services-AD-FS-Part-1/" target=_blank mce_href="http://channel9.msdn.com/posts/donovanf/Demystified-Series-Active-Directory-Federation-Services-AD-FS-Part-1/"&gt;Active Directory Federation Services (AD FS) Part 1&lt;/A&gt; by Keith Brown&lt;BR&gt;&lt;A class="" title="ADFS Part 2" href="http://channel9.msdn.com/posts/donovanf/Demystified-Series-Active-Directory-Federation-Services-AD-FS-Part-2/" target=_blank mce_href="http://channel9.msdn.com/posts/donovanf/Demystified-Series-Active-Directory-Federation-Services-AD-FS-Part-2/"&gt;Active Directory Federation Services (AD FS) Part&amp;nbsp;2&lt;/A&gt; by Keith Brown&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8623326" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donovanf/archive/tags/MSDN+IdA/default.aspx">MSDN IdA</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/ADAM/default.aspx">ADAM</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AzMan/default.aspx">AzMan</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/ADFS/default.aspx">ADFS</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AD/default.aspx">AD</category></item><item><title>.NET Programming with System.DirectoryServices.AccountManagement (SDS.AM)</title><link>http://blogs.msdn.com/donovanf/archive/2008/05/15/net-programming-with-system-directoryservices-accountmanagement-sds-am.aspx</link><pubDate>Thu, 15 May 2008 18:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8508303</guid><dc:creator>donovanf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/donovanf/comments/8508303.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donovanf/commentrss.aspx?PostID=8508303</wfw:commentRss><description>To fill out the trio of my System.DirectoryServices resource postings, I wanted to point you to an excellent MSDN Magazine article, "&lt;I&gt;&lt;A class="" href="http://msdn.microsoft.com/en-us/magazine/cc135979.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/magazine/cc135979.aspx"&gt;Look it Up: Managing Directory Security Principals in the .NET Framework 3.5&lt;/A&gt;&lt;/I&gt;,"&amp;nbsp;to learn about the System.DirectoryServices.AccountManagement namespace which is available in the .NET Framework 3.5. To whet your appetite, the authors, Joe Kaplan and Ethan Wilansky, state: 
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;EM&gt;"This new namespace has three primary goals: to simplify principal management operations across the three directory platforms [Active Directory Domain Services (AD DS), Active Directory Lightweight Directory Services (AD LDS, formerly named ADAM) and the local Security Account Manager (SAM)], to make principal management operations consistent regardless of the underlying directory, and to provide reliable results for these operations so you are not required to know each and every one of the caveats and special cases.&lt;/EM&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;EM&gt;By waiting a few years for the .NET landscape to gel, Microsoft has actually outdone its previous work in ADSI by providing an even better API for these features that takes advantage of .NET capabilities while also providing much better support for new directory platforms such as AD LDS."&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;Whereas SDS.P is for the pedal-to-metal LDAP developer and SDS.AD is for managing Active Directory components, SDS.AM is for the developer that needs to work with security principals, creating user accounts and groups, managing group memberships, simplified searching and more - this namespace is for you. A code sample accompanies the article so you can get right to work.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Other resource links:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&lt;A class="" href="http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx"&gt;Namespace overview&lt;/A&gt;&lt;BR&gt;&lt;A class="" href="http://msdn.microsoft.com/en-us/library/bb924542.aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/bb924542.aspx"&gt;Programming with groups&lt;/A&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;Enjoy!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8508303" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donovanf/archive/tags/MSDN+IdA/default.aspx">MSDN IdA</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/ADAM/default.aspx">ADAM</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AD/default.aspx">AD</category></item><item><title>AzMan in Windows Vista? You bet! And “Longhorn” too!</title><link>http://blogs.msdn.com/donovanf/archive/2007/04/05/azman-in-windows-vista-you-bet-and-longhorn-too.aspx</link><pubDate>Thu, 05 Apr 2007 03:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2028184</guid><dc:creator>donovanf</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/donovanf/comments/2028184.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donovanf/commentrss.aspx?PostID=2028184</wfw:commentRss><description>&lt;P&gt;The fourth screencast in the AzMan series by Keith Brown is now available on Channel9. It is titled, “&lt;A class="" href="http://channel9.msdn.com/Showpost.aspx?postid=298350" target=_blank mce_href="http://channel9.msdn.com/Showpost.aspx?postid=298350"&gt;AzMan on Windows Server Code Name “Longhorn” and Windows Vista&lt;/A&gt;.” Yes, developers can continue to take advantage of a new featured AzMan on these next generation client and server platforms. The AzMan product group did a significant amount of work to bring you the following new features:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Support added for Microsoft SQL Server to also be a store for AzMan’s policy.&lt;/LI&gt;
&lt;LI&gt;Support for business rule groups, that is, groups whose membership is determined at run-time by a script.&lt;/LI&gt;
&lt;LI&gt;Support for custom object pickers, so that application administrators can use the AzMan MMC Snap-in for applications that use Active Directory Lightweight Directory Services (AD LDS, formerly named ADAM) or SQL user accounts.&lt;/LI&gt;
&lt;LI&gt;Improvements were made to the API to simplify the programmer's need to perform commonly used&amp;nbsp;queries and access checks.&lt;/LI&gt;
&lt;LI&gt;LDAP queries no longer are limited to only user objects.&lt;/LI&gt;
&lt;LI&gt;Additional events are recorded in the log if auditing is active.&lt;/LI&gt;
&lt;LI&gt;Significant efficiencies were targeted and gained in this version of AzMan in relationship to loading the store, access check time and store creation time.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;If you want to see the new AzMan in action, go to your Windows Vista machine, choose Run… and type azman.msc. Click on the Help icon in the Microsoft Management Console (MMC) for documentation on the above mentioned features. Keith highlights several of these enhancements in the screencast. For more resources on AzMan, please refer to my blog post "&lt;A class="" href="http://blogs.msdn.com/donovanf/archive/2007/03/08/windows-authorization-manager-azman-the-best-kept-secret.aspx" target=_blank mce_href="http://blogs.msdn.com/donovanf/archive/2007/03/08/windows-authorization-manager-azman-the-best-kept-secret.aspx"&gt;Windows Authorization Manager (AzMan): The Best Kept Secret...&lt;/A&gt;"&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2028184" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donovanf/archive/tags/MSDN+IdA/default.aspx">MSDN IdA</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/ADAM/default.aspx">ADAM</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AzMan/default.aspx">AzMan</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AD/default.aspx">AD</category></item><item><title>.NET Programming with System.DirectoryServices.Protocols (SDS.P)</title><link>http://blogs.msdn.com/donovanf/archive/2007/04/02/net-programming-with-system-directoryservices-protocols-sds-p.aspx</link><pubDate>Tue, 03 Apr 2007 01:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2014736</guid><dc:creator>donovanf</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/donovanf/comments/2014736.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donovanf/commentrss.aspx?PostID=2014736</wfw:commentRss><description>&lt;P&gt;In line with Ethan Wilansky’s previous &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb267453.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb267453.aspx"&gt;white paper&lt;/A&gt; on System.DirectoryServices.ActiveDirectory (SDS.AD), I am pleased to announce his second &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb332056.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb332056.aspx"&gt;white paper&lt;/A&gt; available on MSDN that highlights the .NET 2.0 System.DirectoryServices.Protocols (SDS.P) namespace. Also, as mentioned in my previous SDS.AD &lt;A class="" href="http://blogs.msdn.com/donovanf/archive/2007/02/12/net-programming-with-system-directoryservices-activedirectory-sds-ad.aspx" target=_blank mce_href="http://blogs.msdn.com/donovanf/archive/2007/02/12/net-programming-with-system-directoryservices-activedirectory-sds-ad.aspx"&gt;blog post&lt;/A&gt;, with the advent of SDS.AD and SDS.P in .NET 2.0, directory services programming for the managed code programmer has come of age. These rich programming APIs bring to the .NET platform the ability to manage a directory that previously was only available through Active Directory Services Interface (ADSI) scripting, C++ or the LDAP API. This white paper exposes some of the richness of the SDS.P programming model and its capabilities. &lt;/P&gt;
&lt;P&gt;Staying true to the Directory Services namespaces design principles, SDS.P introduces a low barrier to entry and self documenting object model as well. SDS.P programmers will again see that they can learn the API quickly. The design goals for SDS.P were to target high performance, cover 100% of the scenarios and be easy to use. The object model is connection based with a request and response object. SDS.P is for server-side directory developers who seek the maximum control and power over the directory. SDS.P supports advanced directory operations like fast concurrent bind, certificate based authentication, transport layer security and much more. So don’t hesitate – read this exceptional paper and try out the &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=ce2062f5-9c73-45ab-8d5f-b5e4166dd88b&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=ce2062f5-9c73-45ab-8d5f-b5e4166dd88b&amp;amp;displaylang=en"&gt;sample code download&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Following are the scenarios exposed in the sample code:&amp;nbsp; Enjoy!&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Common management tasks &lt;BR&gt;&lt;/STRONG&gt;CreateUsers server_or_domain_name targetOu numUsers&lt;BR&gt;AddObject server_or_domain_name dn dirClassType&lt;BR&gt;AddAttribute server_or_domain_name dn attributeName attributeValue&lt;BR&gt;AddAttribute2 server_or_domain_name dn attributeName attributeValue&lt;BR&gt;AddAttributeUri server_or_domain_name dn attributeName attributeUriValue&lt;BR&gt;AddMVAttribStrings server_or_domain_name dn attribName "attribVal1,...attribValN"&lt;BR&gt;DeleteAttribute server_or_domain_name dn attributeName&lt;BR&gt;EnableAccount server_or_domain_name dn&lt;BR&gt;DeleteObject server_or_domain_name dn &lt;BR&gt;MoveRenameObject server_or_domain_name originalDn newParentDn objectName &lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Search operations &lt;/STRONG&gt;&lt;BR&gt;SimpleSearch server_or_domain_name startingDn&lt;BR&gt;AttributeSearch server_or_domain_name startingDn "attribName1,...attribNameN"&lt;BR&gt;TokenGroupsSearch server_or_domain_name DnofUserAccount&lt;BR&gt;PagedSearch server_or_domain_name startingDn numbericPageSize&lt;BR&gt;AsyncSearch server_or_domain_name startingDn&lt;BR&gt;Asq server_or_domain_name groupDn&lt;BR&gt;Vlv server_or_domain_name startingDn maxNumberOfEntries nameToSearch&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Advanced authentication operations &lt;BR&gt;&lt;/STRONG&gt;Sslbind fullyQualifiedHostName:sslPort userName password&lt;BR&gt;FastConBind server_or_domain_name user1 pword1 user2 pword2 domainName&lt;BR&gt;Tls fullyQualifiedHostName_or_domainName userName password domainName&lt;BR&gt;cert fullyQualifiedHostName:sslPort clientCert certPassword &lt;BR&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2014736" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donovanf/archive/tags/MSDN+IdA/default.aspx">MSDN IdA</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/ADAM/default.aspx">ADAM</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AD/default.aspx">AD</category></item><item><title>Windows Authorization Manager (AzMan): The Best Kept Secret…</title><link>http://blogs.msdn.com/donovanf/archive/2007/03/08/windows-authorization-manager-azman-the-best-kept-secret.aspx</link><pubDate>Thu, 08 Mar 2007 03:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1831884</guid><dc:creator>donovanf</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/donovanf/comments/1831884.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donovanf/commentrss.aspx?PostID=1831884</wfw:commentRss><description>&lt;P&gt;I don’t know how many times I’ve had someone say to me that has “discovered” AzMan that they feel it is one of the best kept secrets in Windows. However, since keeping it a secret has never been in the mind of the product team, it’s time to extend its press. Authorization Manager is a technology that essentially lets the application developer remove the hard-coded authorization policy from their application and “externalize” it in a form where it can be managed by an administrator. AzMan provides a tool for managing Role-Based Access Control (RBAC) policy in the form of a MMC Snap-in. This policy can be stored in an XML file or either &lt;a href="http://www.microsoft.com/windowsserver2003/technologies/directory/activedirectory/default.mspx"&gt;Active Directory&lt;/a&gt; or &lt;a href="http://www.microsoft.com/windowsserver2003/adam/default.mspx"&gt;Active Directory Application Mode&lt;/a&gt;. Using its API in your application, you then instantiate an AzMan context, bring in the policy and perform access checks at runtime for the various authorization decisions your application needs to make. The API can also be used for you to build your own custom management tools that may better fit with your application’s deployment needs or look-and-feel. &lt;/P&gt;
&lt;P&gt;But, rather than drilling too deeply into things here, I’m going to use this as a jumping off point for “all things AzMan.” As with any technology there’s the potential for information saturation and then possibly ending up with less information than you needed. So although I can’t/won’t mention every resource, I’ll try and bubble up for architects and developers some of the key resources to get you going and you can dig deeper from there.&lt;/P&gt;
&lt;P&gt;To get the ball rolling, I’m announcing here a new "Demystified Series" of screencasts on Channel9 for AzMan by Keith Brown. These should get you charged up and rolling on its concepts and programming techniques. Keith says that AzMan is, “…a hidden gem in Windows that can help you build Role-Based Access Control into your applications.” I hope you find this true as well.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Channel9 Screencasts:&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A class="" href="http://channel9.msdn.com/Showpost.aspx?postid=289062" target=_blank mce_href="http://channel9.msdn.com/Showpost.aspx?postid=289062"&gt;Getting Started with AzMan&lt;/A&gt; – Keith Brown&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A class="" href="http://channel9.msdn.com/ShowPost.aspx?PostID=289435" target=_blank mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=289435"&gt;Programming AzMan&lt;/A&gt; – Keith Brown&amp;nbsp;(&lt;A class="" href="http://channel9.msdn.com/ShowPost.aspx?PostID=289429" target=_blank mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=289429"&gt;Code Sample&lt;/A&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A class="" href="http://channel9.msdn.com/ShowPost.aspx?PostID=289472" target=_blank mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=289472"&gt;AzMan in the Enterprise&lt;/A&gt;&amp;nbsp;– Keith Brown&amp;nbsp;(&lt;A class="" href="http://channel9.msdn.com/ShowPost.aspx?PostID=289461" target=_blank mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=289461"&gt;Code Sample&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Case Studies:&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ADAM and AzMan:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A class="" href="http://members.microsoft.com/CustomerEvidence/search/EvidenceDetails.aspx?EvidenceID=14530&amp;amp;LanguageID=1" target=_blank mce_href="http://members.microsoft.com/CustomerEvidence/search/EvidenceDetails.aspx?EvidenceID=14530&amp;amp;LanguageID=1"&gt;FileHold uses AzMan and ADAM&lt;/A&gt; in their product, FileHold '06 and '07.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AzMan:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;A class="" href="http://download.microsoft.com/documents/customerevidence/20836_AzMan_Case_Study_Lighthouse_Final.doc" target=_blank mce_href="http://download.microsoft.com/documents/customerevidence/20836_AzMan_Case_Study_Lighthouse_Final.doc"&gt;Lighthouse International&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Technical Material:&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Overviews:&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A class="" href="http://msdn.microsoft.com/msdnmag/issues/03/11/AuthorizationManager/" target=_blank mce_href="http://msdn.microsoft.com/msdnmag/issues/03/11/AuthorizationManager/"&gt;AzMan overview&lt;/A&gt; by Keith Brown&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/aa480245.aspx#dotnetidm_topic3" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/aa480245.aspx#dotnetidm_topic3"&gt;”The .NET Developer’s Guide to Identity”&lt;/A&gt; the Authorization section of Keith’s MSDN article&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Drill-downs:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A class="" href="http://technet2.microsoft.com/WindowsServer/en/library/72b55950-86cc-4c7f-8fbf-3063276cd0b61033.mspx?mfr=true" target=_blank mce_href="http://technet2.microsoft.com/WindowsServer/en/library/72b55950-86cc-4c7f-8fbf-3063276cd0b61033.mspx?mfr=true"&gt;"RBAC for Multi-tier Applications Using Authorization Manager"&lt;/A&gt; by Dave McPherson&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A class="" href="http://msdn2.microsoft.com/en-us/library/aa480244.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/aa480244.aspx"&gt;"Developing Applications Using Windows Authorization Manager"&lt;/A&gt; a most comprehensive AzMan dev resource. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Blogs:&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;A class="" href="http://blogs.msdn.com/azman" target=_blank mce_href="http://blogs.msdn.com/azman"&gt;AzMan Team Blog&lt;/A&gt; don't be without it!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Added additional screencast links - 03/08/07&lt;BR&gt;&amp;nbsp;Updated some links - 01/28/09&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1831884" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donovanf/archive/tags/MSDN+IdA/default.aspx">MSDN IdA</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/ADAM/default.aspx">ADAM</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AzMan/default.aspx">AzMan</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AD/default.aspx">AD</category></item><item><title>.NET Programming with System.DirectoryServices.ActiveDirectory (SDS.AD)</title><link>http://blogs.msdn.com/donovanf/archive/2007/02/12/net-programming-with-system-directoryservices-activedirectory-sds-ad.aspx</link><pubDate>Mon, 12 Feb 2007 09:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1658135</guid><dc:creator>donovanf</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/donovanf/comments/1658135.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donovanf/commentrss.aspx?PostID=1658135</wfw:commentRss><description>&lt;P&gt;I am so pleased to announce a new &lt;A class="" href="http://msdn2.microsoft.com/en-us/library/bb267453.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb267453.aspx"&gt;white paper&lt;/A&gt; on MSDN by Ethan Wilansky that provides an introduction to the .NET 2.0 System.DirectoryServices.ActiveDirectory (SDS.AD) namespace. With the advent SDS.AD and System.DirectoryServices.Protocols (SDS.P) in .NET 2.0, directory services programming for the managed code programmer has come of age. These rich programming APIs bring to the .NET platform the ability to manage a directory that previously was only available through Active Directory Services Interface (ADSI) scripting, C++ or the LDAP API. If by chance you have not yet read the book &lt;A class="" href="http://www.amazon.com/Developers-Directory-Programming-Microsoft-Development/dp/0321350170/sr=8-1/qid=1171263671/ref=sr_1_1/104-4193725-8245533?ie=UTF8&amp;amp;s=books" target=_blank mce_href="http://www.amazon.com/Developers-Directory-Programming-Microsoft-Development/dp/0321350170/sr=8-1/qid=1171263671/ref=sr_1_1/104-4193725-8245533?ie=UTF8&amp;amp;s=books"&gt;A .NET Developer’s Guide to Directory Services Programming&lt;/A&gt;&amp;nbsp;by Joe Kaplan and Ryan Dunn, I highly recommend it to you. It definitively covers System.DirectoryServices (SDS) and programming using the DirectoryEntry and DirectorySearcher object model. Although Joe and Ryan touch on SDS.AD and SDS.P at various points in the book, their focus primarily was on SDS. Therefore, Ethan’s papers are an excellent complement to their book. &lt;/P&gt;
&lt;P&gt;By way of introduction, one of the design principles for the Directory Services namespaces was to introduce a low barrier to entry and self documenting object model. The intent is that programmers can learn the APIs quickly due to their strong typing, easy navigation between types, sensible defaults, simple initialization, convenient overloads and simple and straightforward entry points. The design goals were to solve specialized problems by simplifying the process of common directory services tasks, such as: topology management, schema management, replication management and trust management. &lt;/P&gt;
&lt;P&gt;This paper of Ethan’s focuses on SDS.AD, SDS.P is in publishing now and I'll anounce it as soon as it comes available on MSDN. As mentioned, the&amp;nbsp;SDS.AD&amp;nbsp;namespace’s object model is built around Active Directory service tasks and includes such concepts as forest, domain, site, subnet, partition and schema. Ethan’s paper provides both a description and practical guidance on how to begin programming with SDS. AD for some common scenarios. A code sample accompanies the paper and can be downloaded &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=1f37fbac-ba9f-47ef-a556-52a9de8fefbc&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=1f37fbac-ba9f-47ef-a556-52a9de8fefbc&amp;amp;displaylang=en"&gt;here&lt;/A&gt;. Once you download and unzip the file, open the DirectoryServices.ActiveDirectory solution in VS 2005. If you intend to exercise all the functionality for Active Directory you will need to create a test environment, possibly in a VPC. To execute the Console against an ADAM instance (see my &lt;A class="" href="http://blogs.msdn.com/donovanf/archive/2006/11/14/using-adam-with-activedirectorymembershipprovider-for-forms-authentication.aspx" target=_blank mce_href="http://blogs.msdn.com/donovanf/archive/2006/11/14/using-adam-with-activedirectorymembershipprovider-for-forms-authentication.aspx"&gt;blog&lt;/A&gt;, Step 1: Get ADAM installed) you will need to open the ADAMData class, find localhost and change it to the full machine name of the computer the ADAM instance is located on and the port of that instance. For example:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;Change This Line of Code From:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static string adamConnectionString = "localhost:50000";&amp;nbsp;&lt;BR&gt;&amp;nbsp;To:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static string adamConnectionString = "your_machine_name:your_port_number"; &lt;/P&gt;
&lt;P&gt;Now, build the console application, start a Command Prompt, cd to the bin directory and run DS.AD. Executed without any parameters the application will give you a list of its available commands. This coupled with the white paper should give you a great start with SDS.AD. Following are the scenarios exposed in the sample code:&amp;nbsp; Enjoy!&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;•&amp;nbsp;Forest, domain, and ADAM reporting tasks&lt;BR&gt;&lt;/STRONG&gt;GetDomainData&lt;BR&gt;GetForestData&lt;BR&gt;GetGcData&lt;BR&gt;GetDcData&lt;BR&gt;GetSchemaData&lt;BR&gt;GetSchemaClassData className&lt;BR&gt;GetSchemaPropertyData propertyName&lt;BR&gt;GetAdamPartitions &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;•&amp;nbsp;Schema reporting and management tasks&lt;/STRONG&gt;&lt;BR&gt;GetAdamSchemaData&lt;BR&gt;GetAdamSchemaClassData&lt;BR&gt;GetAdamSchemaPropertyData&lt;BR&gt;AddSchemaClasstoAdam&lt;BR&gt;AddSchemaAttributetoAdam &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;•&amp;nbsp;Topology reporting and management tasks&lt;BR&gt;&lt;/STRONG&gt;GetTopologyData forestName&lt;BR&gt;CreateAdSite newSiteName&lt;BR&gt;CreateAdamSite targetName newSiteName&lt;BR&gt;CreateSubnet newSubnet siteName&lt;BR&gt;CreateSiteLink siteName newLinkName&lt;BR&gt;AddSiteToSiteLink siteName siteLinkName&lt;BR&gt;RemoveSiteFromSiteLink siteName siteLinkName&lt;BR&gt;MoveDcToSite sourceDC targetSite&lt;BR&gt;DeleteAdSite siteName&lt;BR&gt;DeleteAdamSite targetName siteName&lt;BR&gt;DeleteLink linkName&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;•&amp;nbsp;Replication reporting and management tasks&lt;/STRONG&gt;&lt;BR&gt;GetReplicationStateData&lt;BR&gt;ReplicateFromSource partitionDN sourceServer targetServer&lt;BR&gt;ReplicateFromNeighbors targetServer partitionDN&lt;BR&gt;SyncAllServers partitionDN&lt;BR&gt;CreateNewConnection sourceServer targetServer connectionName&lt;BR&gt;SetReplicationConnection server connectionName&lt;BR&gt;DeleteReplicationConnection server connectionName &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;•&amp;nbsp;Trust reporting and management tasks&lt;/STRONG&gt;&lt;BR&gt;GetCurrentForestTrusts&lt;BR&gt;GetCurrentDomainTrusts&lt;BR&gt;GetTrustWithTargetForest&lt;BR&gt;GetTrustWithTargetDomain&lt;BR&gt;CreateCrossForestTrust targetForest userNameTargetForest password&lt;BR&gt;SetForestTrustAttributes targetForestName&lt;BR&gt;ChangeForestTrustToOutbound targetForestName userNameTargetForest password&lt;BR&gt;AddExcludedDomain targetForestName targetDomainName&lt;BR&gt;DisableDomainNetbiosName targetForestName targetDomainName&lt;BR&gt;RepairTrust targetForestName userNameTargetForest password&lt;BR&gt;RemoveForestTrust targetForestName userNameTargetForest password&lt;BR&gt;RemoveDomainTrust targetDomainName userNameTargetDomain password &lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1658135" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donovanf/archive/tags/MSDN+IdA/default.aspx">MSDN IdA</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/ADAM/default.aspx">ADAM</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AD/default.aspx">AD</category></item><item><title>Capitalize on the Platform’s Identity Infrastructure for Single Signon (SSO)</title><link>http://blogs.msdn.com/donovanf/archive/2006/10/25/capitalize-on-the-platform-s-identity-infrastructure-for-single-signon-sso.aspx</link><pubDate>Wed, 25 Oct 2006 22:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:874346</guid><dc:creator>donovanf</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/donovanf/comments/874346.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donovanf/commentrss.aspx?PostID=874346</wfw:commentRss><description>&lt;P&gt;Providing SSO across desktop applications is certainly a desired goal in application development, but many developers think it is either not achievable, too difficult to implement, or lean on third-party solutions to provide this capability. In Keith Brown’s paper, &lt;EM&gt;&lt;A class="" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetserv/html/dotnetidm.asp" target=_blank mce_href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetserv/html/dotnetidm.asp"&gt;The .NET Developer’s Guide to Identity&lt;/A&gt;&lt;/EM&gt;, he&amp;nbsp; states, “There are companies that spend fortunes trying to implement SSO across the myriad of applications they've developed or purchased over the years. What I'm here to tell you is that you can get this feature for free; all you have to do is agree to &lt;EM&gt;write less code&lt;/EM&gt; and instead rely on the platform to do the heavy lifting.” He also discusses in some detail the nuts-and-bolts of authentication that developers should be aware of, but his guidance is to&amp;nbsp;let the platform infrastructure carry that load. Developers should simply tap into what the authentication event makes available to them through the WindowsIdentity and WindowsPrincipal classes. Keith discusses these two classes in the paper so I will not elaborate here, but my intent is to show a bit of code and point you to a couple resources so you can experiment with this on your own.&lt;/P&gt;
&lt;P&gt;Essentially, a developer can leverage the desktop’s login for their application in just a couple lines of code. You can see in this screenshot, &lt;A class="" href="http://blogs.msdn.com/photos/donovanf/images/874326/original.aspx" target=_blank mce_href="http://blogs.msdn.com/photos/donovanf/images/874326/original.aspx"&gt;http://blogs.msdn.com/photos/donovanf/images/874326/original.aspx&lt;/A&gt;, some of the information available in each of the instantiated objects. &lt;/P&gt;
&lt;P mce_keep="true"&gt;So how does one tap into this? First, the developer must pull in a couple namespaces, System.Security.Principal and System.Threading. Then if your application needs to do repeated access for role-based validation (such as for .IsInRole checks), it is more efficient to simply drive off the WindowsPrincipal object because there is no need to repeatedly instantiate the WindowsIdentity object. These two lines of code will accomplish this:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;WindowsPrincipal myPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;If you need the additional information that the identity object provides, you can instantiate a WindowsIdentity object and then use it to subsequently instantiate a corresponding WindowsPrincipal object. This is shown in the following two lines of code:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();&lt;BR&gt;WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Now, does leveraging the platform’s authentication absolve the application from doing its own due diligence? Most likely not. Therefore, the application could interrogate the DOMAIN provided in the .Name property or use any of the other data values provided in the objects to assess whether or not to let the application continue. Or by the presence or absence of specific data values, it could make the determination to pop-up a login window that could collect and validate credentials against AD, ADAM or another LDAP store for that matter. My point here is to simply take tactical advantage of what you can from the platform and then extend it as needed. A short seven-minute screencast presenting a coding example for this is found here on Channel9 &lt;A class="" href="http://channel9.msdn.com/Showpost.aspx?postid=154885" target=_blank mce_href="http://channel9.msdn.com/Showpost.aspx?postid=154885"&gt;http://channel9.msdn.com/Showpost.aspx?postid=154885&lt;/A&gt;. And the companion,&amp;nbsp;downloadable code sample is available here &lt;A class="" href="http://channel9.msdn.com/ShowPost.aspx?PostID=154871" target=_blank mce_href="http://channel9.msdn.com/ShowPost.aspx?PostID=154871"&gt;http://channel9.msdn.com/ShowPost.aspx?PostID=154871&lt;/A&gt;. Lastly, the code example shows how to use .IsInRole with a WindowsPrincipal object to validate if the user is in any one of the WindowsBuiltInRoles. It also shows how to use the .Groups of a WindowsIdentity object to list all the group &lt;EM&gt;security identifiers&lt;/EM&gt; (SIDs) to which the logged on user belongs. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=874346" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donovanf/archive/tags/MSDN+IdA/default.aspx">MSDN IdA</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AD/default.aspx">AD</category></item><item><title>A Developer’s Resource for Identity and Access (IdA) Understanding</title><link>http://blogs.msdn.com/donovanf/archive/2006/09/28/775661.aspx</link><pubDate>Thu, 28 Sep 2006 19:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:775661</guid><dc:creator>donovanf</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/donovanf/comments/775661.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donovanf/commentrss.aspx?PostID=775661</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;If you were to read the following line of code in a program, what meaning might you derive from it?&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;grokIdA = Developer.GetIdAUnderstanding(information)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;So what do I mean by grokIdA? If &lt;A href="http://en.wikipedia.org/wiki/Grok"&gt;Grok &lt;/A&gt;is an unfamiliar word to you, it means to understand in a deep way. Since understanding is essentially a function of adequate and appropriately applied information, the purpose of this blog is to facilitate the types of information necessary for developers to attain a deep(er) understanding of the challenges surrounding Identity and Access (IdA). And further, to see how to apply technologies like &lt;A href="http://www.microsoft.com/windowsserver2003/technologies/directory/activedirectory/default.mspx"&gt;Active Directory &lt;/A&gt;(AD), &lt;A href="http://www.microsoft.com/windowsserver2003/adam/default.mspx"&gt;Active Directory Application Mode &lt;/A&gt;(ADAM), &lt;A href="http://technet2.microsoft.com/windowsserver/en/technologies/featured/adfs/default.mspx"&gt;Active Directory Federation Services &lt;/A&gt;(ADFS) and &lt;A href="http://technet2.microsoft.com/WindowsServer/en/library/72b55950-86cc-4c7f-8fbf-3063276cd0b61033.mspx?mfr=true"&gt;Authorization Manager &lt;/A&gt;(AzMan) to help mitigate these challenges. The &lt;A href="http://www.microsoft.com/windowsserversystem/miis2003/default.mspx"&gt;Microsoft Identity Integration Server&lt;/A&gt; (MIIS) product enables life-cycle management of identities (provisioning/de-provisioning and much, much more), but IdA Management (IdAM) will not be the initial focus of this blog.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;Today enterprises face ever pressing regulatory compliance and audit requirements making it essential for them to solve their identity and access issues. However, I realize it can be a daunting task for a developer to research all the capabilities of the available technologies, search and find all the information available, and then stitch together an approach for building their application. Some readers may have just been assigned the task to get a handle on their enterprise’s or product suite’s IdA issues. Some may be in the research phase but are getting bogged down with information overload. And others may be well on their way to designing approaches and solutions. In any case, the premise I am working from is that this is a “journey toward understanding” which assumes that many will be traveling alongside who may be new to IdA and its problem space.&amp;nbsp; Therefore, let’s start the journey/conversation with, “&lt;A href="http://msdn.microsoft.com/security/identityaccess/default.aspx?pull=/library/en-us/dnnetserv/html/DotNetIdM.asp"&gt;The .NET Developer’s Guide to Identity&lt;/A&gt;” on &lt;A href="http://msdn.microsoft.com/security/identityaccess/default.aspx"&gt;MSDN&lt;/A&gt; by &lt;A href="http://pluralsight.com/blogs/keith/category/94.aspx"&gt;Keith Brown&lt;/A&gt;. This is an excellent document that lays out the landscape for identity from authentication to authorization to federation and much more. Enjoy.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=775661" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donovanf/archive/tags/MSDN+IdA/default.aspx">MSDN IdA</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/ADAM/default.aspx">ADAM</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AzMan/default.aspx">AzMan</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/ADFS/default.aspx">ADFS</category><category domain="http://blogs.msdn.com/donovanf/archive/tags/AD/default.aspx">AD</category></item></channel></rss>