I have read several articles about the same but still not cleared about the difference between claim based Authentication and classic window authentication in SharePoint 2013.i Understood the claim based concept theoretically, but practically not able to see any difference while creating web application in 2013. We select claim based authentication but what we are really doing different here than SharePoint 2010. when we log in to our web application we still use username and password, so how does it really work?
SharePoint Foundation supports the following types of authentication and the advantage with claim based authentication is that it supports systems that are non Windows based.
- Windows: IIS and Windows authentication integration options, including Basic, Digest,(NTLM), and Kerberos. Windows authentication allows IIS to perform the authentication for SharePoint Foundation. This is also referred to as “classic mode authentication”. This approach has a number of disadvantages such as. This approach is not future proof and unsuitable for environments such as extranet, inter-organization, or situations where the domain may not be accessible or there may be many domains in play.
- Claims based authentication: The claims-based identity is an identity model in Microsoft SharePoint that includes features such as authentication across users of Windows-based systems and systems that are not Windows-based, multiple authentication types, stronger real-time authentication, a wider set of principal types, and delegation of user identity between applications. When a user signs in to SharePoint, the user's token is validated and then used to sign in to SharePoint. The user's token is a security token issued by a claims provider.
You can find the entire article here.
The big difference with claims based authentication is that you can easily (well it is still SharePoint) add other providers.
For example you can add another provider and being able to sign in with your google account, live-id, linkedin account etc etc.
Claims-based identity allows you to factor out the authentication logic from individual applications. Instead of the application determining who the user is, it receives claims that identify the user.
In software, this bundle of claims is called a security token. Each security token is signed by the issuer who created it. A claims-based application considers users to be authenticated if they present a valid, signed security token from a trusted issuer.
Both from http://msdn.microsoft.com/en-us/library/ff359101.aspx which is a great introduction
What I believe is the major difference is that with classic mode, you login directly, and if you need to be authenticated to a second server, it's not possible (you need to be logged in to this second server first -> new login screen). You will find that this is still often done but in that case the second connection is done under a different account (with privileges specifically for the resource, for instance).
With claims, you authenticate, you get a claims token and that is passed around to whoever needs it, and you are authenticated to this second server automatically without another login screen. Given that the server trusts your secure token service (whom initially authenticated you).
I may have the details wrong but in theory but this is generally how it works.
- Kerberos delegation — If the client authenticates with the front-end service by using Kerberos authentication, Kerberos delegation can be used to pass the client's identity to the back-end system.
- Claims — claims authentication allows the client's claims to be passed between services as long as there is trust between the two services and both are claims-aware.
- Claims authentication, like Kerberos authentication, can be used to delegate client credentials but requires the back-end application to be claims-aware.
After converting our 2010 farm to use Claims based authentication, out ArcGIS web services stopped working and our custom WCF web services no longer got the user credentials - I believe they function with anonymous access. It turns out that WCF web services need to be Claims Aware, which they are not. WCF Services used by Silverlight inside of SharePoint are severely restricted to use Basic Binding, and it is substantial work to have them pass credentials as they did before. I am still working through the implications myself, but any clarification from someone more knowledgeable would be appreciated. As for ArcGIS, I haven't gotten the answers yet.
An important factor in claims as well is which servers talk to which servers. In Windows auth outside of Kerberos, the WFE server handles the communication to the authentication provider (generally AD) and the client talks only to the WFE server. Kerberos requires all 3 connections between the client, the SP server, and a DC.
Claims does not require SP to connect to the auth source at all. The client handles the passing between the SP server indicating what kind of properties the SP server needs to know about the user and the identity provider. This allows the SP system to focus only on authorization, not identification and thus plug into other identity providers like Google, Facebook, etc.