<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>SSO</title><link>http://blogs.interknowlogy.com/jeffschroeder/category/147.aspx</link><description>SSO</description><dc:language>en-US</dc:language><generator>.Text Version 0.95.2004.111</generator><item><dc:creator>Jeff Schroeder</dc:creator><title>Using Forms Authentication for SharePoint 2007</title><link>http://blogs.interknowlogy.com/jeffschroeder/archive/2007/02/08/11331.aspx</link><pubDate>Thu, 08 Feb 2007 12:40:00 GMT</pubDate><guid>http://blogs.interknowlogy.com/jeffschroeder/archive/2007/02/08/11331.aspx</guid><description>&lt;p&gt;&lt;font face="c" size="2"&gt;Recently I presented on Forms Authentication for SharePoint 2007 at a local event &lt;/font&gt;&lt;a title="Southern California Code Camp" href="http://socalcodecamp.com" target="_blank"&gt;&lt;font face="c" size="2"&gt;Southern California Code Camp&lt;/font&gt;&lt;/a&gt;&lt;font face="c" size="2"&gt; and at a local user group &lt;/font&gt;&lt;a title="San Diego .Net Developers User Group" href="http://sddotnetdg.org" target="_blank"&gt;&lt;font face="c" size="2"&gt;San Diego .Net Developers User Group&lt;/font&gt;&lt;/a&gt;&lt;font face="c" size="2"&gt;.  Code Camp is a free community-based, twice a year event at two locations, Cal State Fullerton(January) and UC San Diego(June), click on the link above and check out the Code Camp Web page for more info and sign-up to receive information about the next event.  The San Diego .Net Developers User Group is a free local user group that meets once a month on the first Tuesday of every month, click on their link above and check out a meeting.  A link to my presentation and the web.config files shown in the presentation is below, following by some additional information on Authentication.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="Forms Authentication Presentation Materials" HREF="/downloads/jeffschroeder/FormsAuthenticationForSharePoint2007/FormsAuthPresentation.zip" target="_blank"&gt;&lt;font face="c" size="2"&gt;Download: Forms Authentication Presentation Materials&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font face="c" size="2"&gt;What is Authentication?&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;"Authentication is the process of obtaining identification credentials such as name and password from a user and validating those credentials against some authority. If the credentials are valid, the entity that submitted the credentials is considered an authenticated identity." (Quoted from &lt;/font&gt;&lt;a title="MSDN - ASP.Net Authentication" href="http://msdn2.microsoft.com/en-us/library/eeyk640h.aspx" target="_blank"&gt;&lt;font face="c" size="2"&gt;MSDN&lt;/font&gt;&lt;/a&gt;&lt;font face="c" size="2"&gt;)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font face="c" size="2"&gt;What is Authorization?&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;"Authorization determines whether an identity should be granted access to a specific resource." (Quoted from &lt;/font&gt;&lt;a title="MSDN - ASP.Net Authorization" href="http://msdn2.microsoft.com/en-us/library/wce3kxhd.aspx" target="_blank"&gt;&lt;font face="c" size="2"&gt;MSDN&lt;/font&gt;&lt;/a&gt;&lt;font face="c" size="2"&gt;)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;  &lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;What Authentication Types are Supported by SharePoint?&lt;/strong&gt; &lt;/font&gt;&lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;In SharePoint 2003, only Active Directory authentication was supported.  New to SharePoint 2007 is the extensible ASP.Net 2.0 Provider Model.  This allows a range of standard authentication types and the ability to create a custom provider.  Listed below are the methods available to authenticate to SharePoint 2007.  Another change from SharePoint 2003 to SharePoint 2007 are Zones. &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;  &lt;/font&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;Windows (Integrated)&lt;/strong&gt; &lt;/font&gt;&lt;/font&gt; &lt;ul&gt; &lt;li&gt;&lt;font face="c" size="2"&gt;NTLM (Local Users or Active Directory) &lt;/font&gt; &lt;li&gt;&lt;font face="c" size="2"&gt;Kerberos (Requires Active Directory) &lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;font face="c" size="2"&gt;Forms&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;font face="c" size="2"&gt;SQL Membership Provider &lt;/font&gt; &lt;li&gt;&lt;font face="c" size="2"&gt;Lightweight Directory Access Protocol (LDAP) Provider &lt;/font&gt; &lt;li&gt;&lt;font face="c" size="2"&gt;Active Directory Provider &lt;/font&gt; &lt;li&gt;&lt;font face="c" size="2"&gt;Active Directory Application Mode (ADAM) &lt;/font&gt; &lt;li&gt;&lt;font face="c" size="2"&gt;Custom Provider&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;font face="c" size="2"&gt;Single Sign-On (SSO)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;font face="c" size="2"&gt;Active Directory Federation Services (ADFS) &lt;/font&gt; &lt;li&gt;&lt;font face="c" size="2"&gt;Other Identity Management Systems (3rd party)&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;Here is a brief summary of each authentication type listed above.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;font face="c" size="2"&gt;Windows(Integrated)&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;NTLM&lt;/strong&gt; - Is a challenge-response authentication protocol, which allows a client to prove its identity without sending a password to the server by creating a shared context between the two involved parties, and using a shared session key.  This method is used with Active Directory or local accounts.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;Kerberos&lt;/strong&gt; - Requires a trusted third-party(Active Directory) in order to mediate between two entities that want to authenticate to one another, such as a User and a Resource.  This is done through a ticketing system known as a Key Distribution Center(KDC) which in this case is Active Directory.  By the way, Kerberos communications are encrypted using symmetric cryptography.  Kerberos has some another advantage over NTLM, delegation, it can perform a double-hop which means Entity A can forward(&lt;em&gt;delegate&lt;/em&gt;) a &lt;em&gt;ticket&lt;/em&gt; to Entity B which can then use Entity A's &lt;em&gt;ticket&lt;/em&gt; to authenticate to Entity C.  Kerberos also scales better for large environments because one Entity 1 doesn't need to request authentication from another Entity to prove its identity, it just needs to send its &lt;em&gt;ticket&lt;/em&gt; to the Entity.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;Forms&lt;/strong&gt; - Uses an authentication ticket created when the user logs on to a site.  The ticket can be contained in a cookie or passed in a query string.  Each time a request is received, after the initial authentication process, the authentication cookie is retrieved, decrypted and compared with its key.  The user credentials are stored in one of the user stores listed above or a custom provider can be created to use another type.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;em&gt;&lt;strong&gt;SQL Membership &lt;/strong&gt;&lt;/em&gt;- Accesses user credentials from a SQL Membership Database.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;&lt;em&gt;Lightweight Directory Access Protocol(LDAP)&lt;/em&gt;&lt;/strong&gt; - Accesses user credentials from a non-Microsoft or Legacy user store.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;&lt;em&gt;Active Directory&lt;/em&gt;&lt;/strong&gt; - Accesses user credentials from a Microsoft Active Directory user store.  Can be used to access Active Directory in a different domain or in a hosting scenario.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;&lt;em&gt;Active Directory Application Mode(ADAM)&lt;/em&gt;&lt;/strong&gt; - Accesses user credentials from a application specific lightweight version of Active Directory.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;&lt;em&gt;Custom&lt;/em&gt;&lt;/strong&gt; - Accesses user credentials from a custom defined user store that is not supported by a method above or has specialized features.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;Single Sign-On (SSO)&lt;/strong&gt; - Provides access to resources across domains without the need to provide a credential every time.  The simple answer is you login to your domain and through defined trusts you can be granted access to various resources outside of your own domain.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;&lt;em&gt;Active Directory Federation Services(ADFS)&lt;/em&gt;&lt;/strong&gt; - Enables secure Single Sign-On between domains to allow Entities from one Domain to access Entities in another Domain.  This can allow Company A to grant access to a resource on its Domain to Company B by creating a Trust Relationship between the companies and allow specific Entities access to specific resources.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font size="2"&gt;&lt;font face="c"&gt;&lt;strong&gt;&lt;em&gt;Other Identity Management Systems(3rd Party)&lt;/em&gt;&lt;/strong&gt; - Same concept as ADFS but a 3rd-party solution with a custom SSO module.  This would provide support for systems such as those made by Novell, RSA Security, IBM, Sun MicroSystems, SAP and Computer Associates.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font face="c" size="2"&gt;What is a Zone?&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;A zone serves several purposes which include Load Balancing and Authentication boundaries.  SharePoint&amp;#8217;s authentication model is specified at the Web Application level, which is associated with an IIS web site.  Site Collections and sub-sites are expressed as part of the application tier and have no physical presence on the file system.  If you choose to implement multiple authentication providers, you can extend the Web Application by extending additional Zones.  Zones allow the site to implement additional authentication providers for the same Web Application.  Zones available are Default, Intranet, Internet, Extranet and Custom; the default Zone is Default. A Web Application can use any single Zone or extend to any combination of them.  When extending a Web Application to a new Zone, a new physical IIS web site is created.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;An important thing to note about Zones and Authentication is that the Default Zone needs to use NTLM in order for the Search Index service to crawl content within a Site Collection.  A Policy also needs to be created for the Web Application to allow the account for the Index to read all content for the Web Application.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;We know the ways to authenticate to SharePoint 2007, so what do all these terms mean?  Below are some links on planning your authentication for SharePoint and information about the different types of authentication.  &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;Plan authentication methods for SharePoint 2007 &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;&lt;a href="http://technet2.microsoft.com/Office/en-us/library/40117fda-70a0-4e3d-8cd3-0def768da16c1033.mspx?mfr=true" target="_blank"&gt;http://technet2.microsoft.com/Office/en-us/library/40117fda-70a0-4e3d-8cd3-0def768da16c1033.mspx?mfr=true&lt;/a&gt;&lt;/font&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;Plan for user accounts and authentication - Authentication Samples &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;&lt;a href="http://technet2.microsoft.com/Office/en-us/library/23b837d1-15d9-4621-aa0b-9ce3f1c7153e1033.mspx" target="_blank"&gt;http://technet2.microsoft.com/Office/en-us/library/23b837d1-15d9-4621-aa0b-9ce3f1c7153e1033.mspx&lt;/a&gt;&lt;/font&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;About Microsoft NTLM Authentication &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa378749.aspx" target="_blank"&gt;http://msdn2.microsoft.com/en-us/library/aa378749.aspx&lt;/a&gt;&lt;/font&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;About Microsoft Kerberos Authentication&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa378747.aspx" target="_blank"&gt;http://msdn2.microsoft.com/en-us/library/aa378747.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;Understanding LDAP (Light Weight Directory Access Protocol)&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;&lt;a href="http://search.technet.microsoft.com/search/Redirect.aspx?title=Understanding+LDAP+(Light+Weight+Directory+Access+Protocol)&amp;url=http://www.microsoft.com/technet/community/events/network/tnq40004.mspx" target="_blank"&gt;http://search.technet.microsoft.com/search/Redirect.aspx?title=Understanding+LDAP+(Light+Weight+Directory+Access+Protocol)&amp;url=http://www.microsoft.com/technet/community/events/network/tnq40004.mspx&lt;/a&gt;&lt;/font&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;LDAP Query Basics &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;&lt;a href="http://search.technet.microsoft.com/search/Redirect.aspx?title=LDAP+Query+Basics&amp;url=http://www.microsoft.com/technet/prodtechnol/exchange/2003/insider/ldapquery.mspx" target="_blank"&gt;http://search.technet.microsoft.com/search/Redirect.aspx?title=LDAP+Query+Basics&amp;url=http://www.microsoft.com/technet/prodtechnol/exchange/2003/insider/ldapquery.mspx&lt;/a&gt;&lt;/font&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;Blog: Jeff Schroeder - Setting up ADFS for a Web Application (maybe even SharePoint 2007...) &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;&lt;a title="http://blogs.interknowlogy.com/jeffschroeder/archive/2006/10/19/7053.aspx" HREF="/jeffschroeder/archive/2006/10/19/7053.aspx" target="_blank"&gt;http://blogs.interknowlogy.com/jeffschroeder/archive/2006/10/19/7053.aspx&lt;/a&gt;&lt;/font&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;Identity &amp; Access Management: Create Custom Directories with ADAM &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;&lt;a href="http://search.technet.microsoft.com/search/Redirect.aspx?title=Identity+%26+Access+Management%3a+Create+Custom+Directories+with+ADAM+...+&amp;url=http://www.microsoft.com/technet/technetmag/issues/2006/07/CustomDir/default.aspx" target="_blank"&gt;http://search.technet.microsoft.com/search/Redirect.aspx?title=Identity+%26+Access+Management%3a+Create+Custom+Directories+with+ADAM+...+&amp;url=http://www.microsoft.com/technet/technetmag/issues/2006/07/CustomDir/default.aspx&lt;/a&gt;&lt;/font&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;ASP.NET 2.0 Provider Model: Introduction to the Provider Model &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/aa479030.aspx" target="_blank"&gt;http://msdn2.microsoft.com/en-us/library/aa479030.aspx&lt;/a&gt;&lt;/font&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;ASP.Net 2.0 Provider Toolkit Samples &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt;&lt;a href="http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi" target="_blank"&gt;http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi&lt;/a&gt;&lt;/font&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt; &lt;p&gt;&lt;font face="c" size="2"&gt; &lt;/font&gt;&lt;/p&gt;&lt;img src ="http://blogs.interknowlogy.com/jeffschroeder/aggbug/11331.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Jeff Schroeder</dc:creator><title>Setting up ADFS for a Web Application (maybe even SharePoint 2007...)</title><link>http://blogs.interknowlogy.com/jeffschroeder/archive/2006/10/19/7053.aspx</link><pubDate>Thu, 19 Oct 2006 14:39:00 GMT</pubDate><guid>http://blogs.interknowlogy.com/jeffschroeder/archive/2006/10/19/7053.aspx</guid><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;I ran across an article in MSDN Magazine yesterday afternoon that sounds like something to try in SharePoint 2007.  The scenario in the article talked about using ADFS for a Web Application to allow for Single Sign-On and better user management.  I can think of some projects this could apply to.  Has anyone tried this yet?  I going to setup a test environment and see if I can get SharePoint 2007 to work with this. &lt;p&gt;The problem this could potentially solve is Host A has a Web Application and they have multiple partners(Client B, C, D, E, etc..) who want to use their Web Application and they want to authenticate from their home domain.  This means no additional logins, no extra user accounts, and a trust relationship between the domains of Host A and Clients B, C, D, E, etc.  A simplified example is shown in this picture below. &lt;p&gt;&lt;A href="http://blogs.interknowlogy.com/downloads/jeffschroeder/SettingupADFSforaWebApplicationmaybeeve_CD4C/ADFSDiagram1.gif" atomicselection="true"&gt;&lt;img height="137" src="/downloads/jeffschroeder/SettingupADFSforaWebApplicationmaybeeve_CD4C/ADFSDiagram.gif" width="240"&gt;&lt;/a&gt;  &lt;p&gt;  &lt;p&gt;&lt;b&gt;Single Sign-On&lt;/b&gt; - &lt;b&gt;A Developer's Introduction To Active Directory Federation Services&lt;/b&gt; &lt;p&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/11/SingleSignOn/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/SingleSignOn/default.aspx&lt;/a&gt; &lt;p&gt;&lt;b&gt;Identity &amp; Access Management&lt;/b&gt; - Simplify Single Sign-on Using ADFS &lt;p&gt;&lt;a href="http://www.microsoft.com/technet/technetmag/issues/2006/07/Simplify/"&gt;http://www.microsoft.com/technet/technetmag/issues/2006/07/Simplify/&lt;/a&gt; &lt;p&gt;&lt;b&gt;Setting Up ADFS&lt;/b&gt; - Constructing a Lab Environment with Virtual PC &lt;p&gt;&lt;a href="http://pluralsight.com/wiki/default.aspx/Keith/SettingUpADFS.html"&gt;http://pluralsight.com/wiki/default.aspx/Keith/SettingUpADFS.html&lt;/a&gt; &lt;p&gt;  &lt;p&gt;Look for an update to this one later...&lt;/p&gt;&lt;img src ="http://blogs.interknowlogy.com/jeffschroeder/aggbug/7053.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>