Novità di Windows Identity Foundation 4.5What's New in Windows Identity Foundation 4.5

La prima versione di Windows Identity Foundation (WIF) è stata rilasciata come download autonomo ed è nota come WIF 3.5 perché è stata introdotta nello stesso periodo di .NET 3.5 SP1.The first version of Windows Identity Foundation (WIF) shipped as a standalone download and is known as WIF 3.5 because it was introduced in the .NET 3.5 SP1 timeframe. Con .NET 4.5 WIF è diventato parte di .NET Framework.Starting with .NET 4.5, WIF is part of the .NET framework. La disponibilità delle classi WIF direttamente nel framework consente una maggiore integrazione dell'identità basata sulle attestazioni in .NET, semplificando l'uso delle attestazioni.Having the WIF classes directly available in the framework allows for a much deeper integration of claims-based identity in .NET, making it easier to use claims. Le applicazioni scritte per WIF 3.5 devono essere modificate per sfruttare il nuovo modello. Per informazioni, vedere Linee guida per la migrazione di un'applicazione compilata con le versioni di WIF dalla 3.5 alla 4.5.Applications written for WIF 3.5 will need to be modified in order to take advantage of the new model; for information, see Guidelines for Migrating an Application Built Using WIF 3.5 to WIF 4.5.

Di seguito sono descritti alcuni elementi di rilievo delle principali modifiche.Below you can find some highlights of the main changes.

WIF fa ora parte di .NET FrameworkWIF Is Now Part of the .NET Framework

Le classi di WIF sono ora estese tra vari assembly, i principali dei quali sono mscorlib, System.IdentityModel, System.IdentityModel.Services e System.ServiceModel.WIF classes are now spread across several assemblies, the main ones being mscorlib, System.IdentityModel, System.IdentityModel.Services, and System.ServiceModel. Analogamente, le classi WIF sono distribuite in diversi spazi dei nomi: System.Security.Claims, diversi spazi dei nomi System.IdentityModel e System.ServiceModel.Security.Likewise, the WIF classes are spread across several namespaces: System.Security.Claims, several System.IdentityModel namespaces, and System.ServiceModel.Security. Lo spazio dei nomi System.Security.Claims contiene le nuove classi ClaimsPrincipal e ClaimsIdentity (vedere sotto).The System.Security.Claims namespace contains the new ClaimsPrincipal and ClaimsIdentity classes (see below). Tutte le entità in .NET ora derivano da ClaimsPrincipal.All principals in .NET now derive from ClaimsPrincipal. Per informazioni dettagliate sugli spazi dei nomi WIF e sui tipi di classi in essi contenute, vedere Informazioni di riferimento sulle API WIF.For more detailed information about the WIF namespaces and the kinds of classes that they contain, see WIF API Reference. Per informazioni sulla corrispondenza degli spazi dei nomi tra WIF 3.5 e WIF 4.5, vedere Mapping dello spazio dei nomi tra WIF 3.5 e WIF 4.5.For information about how namespaces map between WIF 3.5 and WIF 4.5, see Namespace Mapping between WIF 3.5 and WIF 4.5.

Nuovi modello attestazioni e oggetto entitàNew Claims Model and Principal Object

Le attestazioni sono il nucleo fondamentale di .NET Framework 4.5.Claims are at the very core of the .NET Framework 4.5. Le classi attestazione di base (Claim, ClaimsIdentity, ClaimsPrincipal, ClaimTypes e ClaimValueTypes) risiedono tutte direttamente in mscorlib nello spazio dei nomi System.Security.Claims.The base claim classes (Claim, ClaimsIdentity, ClaimsPrincipal, ClaimTypes, and ClaimValueTypes) all live directly in mscorlib in the System.Security.Claims namespace. Non è più necessario utilizzare le interfacce per inserire le attestazioni nel sistema di identità .NET: WindowsPrincipal, GenericPrincipal e RolePrincipal ora ereditano da ClaimsPrincipal; WindowsIdentity, GenericIdentity e FormsIdentity ora ereditano da ClaimsIdentity.It is no longer necessary to use interfaces in order to plug claims into the .NET identity system: WindowsPrincipal, GenericPrincipal, and RolePrincipal now inherit from ClaimsPrincipal; and WindowsIdentity, GenericIdentity, and FormsIdentity now inherit from ClaimsIdentity. In breve, ogni classe di entità consente ora di soddisfare le attestazioni.In short, every principal class will now serve claims. Le interfacce e le classi di integrazione di WIF 3.5(WindowsClaimsIdentity, WindowsClaimsPrincipal, IClaimsPrincipal, IClaimsIdentity) sono state quindi rimosse.The WIF 3.5 integration classes and interfaces (WindowsClaimsIdentity, WindowsClaimsPrincipal, IClaimsPrincipal, IClaimsIdentity) have thus been removed. Inoltre, la classe ClaimsIdentity ora espone i metodi che semplificano l'esecuzione di query sulla raccolta delle attestazioni di identità.In addition, the ClaimsIdentity class now exposes methods which make it easier to query the identity’s claims collection.

Modifiche all'esperienza di WIF 4.5 con Visual StudioChanges to the WIF 4.5 Visual Studio Experience

  • Funzionalità Aggiungi riferimento STSThe Add STS Reference … Questa funzionalità di Visual Studio (utilità della riga di comando FedUtil) non è più disponibile. Al suo posto è possibile usare la nuova estensione di Visual Studio Identity and Access Tool per Visual Studio 2012.Visual Studio functionality (cmdline utility FedUtil) no longer exists; instead you can use the new Visual Studio extension Identity and Access Tool for Visual Studio 2012. Ciò consente di attuare una federazione con un STS esistente o di utilizzare LocalSTS per eseguire i test delle soluzioni.This allows you to federate with an existing STS or use LocalSTS to test your solutions. Una volta installata l'estensione, è possibile fare clic con il pulsante destro del mouse sul progetto e cercare Identity and Access nel menu di scelta rapida.After installing the extension you can right-click on your project and look for Identity and Access in the context menu.

  • I modelli ASP.NET e STS non sono più disponibili in quanto le attestazioni possono essere utilizzate direttamente nei modelli di progetto esistenti per ASP.NET, siti Web e WCF.The ASP.NET and STS templates are no longer provided as claims can be used directly in existing project templates for ASP.Net, web sites, and WCF.

  • I controlli nello spazio dei nomi Microsoft.IdentityModel.Web.Controls (SignInControl, FederatedPassiveSignInControl e FederatedPassiveSignInStatus) non sono disponibili in WIF 4.5.The controls in the Microsoft.IdentityModel.Web.Controls namespace (SignInControl, FederatedPassiveSignInControl, and FederatedPassiveSignInStatus) are not carried over into WIF 4.5.

Modifiche all'API di WIF 4.5Changes to the WIF 4.5 API

Altre modifiche o funzionalità significative di .NET determinate dall'integrazione di WIF in .NETOther notable .NET changes or features that are caused by the integration of WIF into .NET

  • In .NET Framework è stata integrata la possibilità di eseguire autorizzazioni basate su attestazioni (CBAC).The potential for performing claims-based authorization (CBAC) is now integral to the .NET framework. È possibile configurare un oggetto ClaimsAuthorizationManager e utilizzare le classi ClaimsPrincipalPermission e ClaimsPrincipalPermissionAttribute per eseguire controlli di accesso imperativi e dichiarativi nel codice.You can configure a ClaimsAuthorizationManager object and then use the ClaimsPrincipalPermission and ClaimsPrincipalPermissionAttribute classes to perform imperative and declarative access checks in your code. CBAC fornisce maggiore flessibilità e maggiore granularità rispetto ai tradizionali controlli dell'accesso basato su ruoli (RBAC).CBAC provides more flexibility and greater granularity than traditional role-based access checks (RBAC). Consente inoltre una maggiore separazione dei criteri di autorizzazione dalla logica di business poiché la logica di business può basare il controllo dell'accesso su un'attestazione o su un set di attestazioni specifico e i criteri di autorizzazione per tali attestazioni possono essere configurati in modo dichiarativo nell'elemento <claimsAuthorizationManager>.It also allows greater separation of authorization policy from business logic because the business logic can base the access check on a specific claim or set of claims and the authorization policy for those claims can be configured declaratively under the <claimsAuthorizationManager> element.

Modifiche a WCF come conseguenza dell'integrazione di WIF:WCF changes as a result of WIF integration:

  • Il modello di identità basato sulle attestazioni di WCF è stato sostituito da WIF.The WCF claims-based identity model is superseded by WIF. Ciò significa che le classi negli spazi dei nomi System.IdentityModel.Claims, System.IdentityModel.Policy e System.IdentityModel.Selectors devono essere eliminate a favore dell'utilizzo delle classi di WIF.This means that classes in the System.IdentityModel.Claims, System.IdentityModel.Policy, and System.IdentityModel.Selectors namespaces should be dropped in favor of using WIF classes.

  • WIF viene ora abilitato in un servizio WCF specificando l'attributo useIdentityConfiguration nell'elemento <system.serviceModel>/<behaviors>/<serviceBehaviors>/<serviceCredentials> come nel codice XML seguente:WIF is now enabled on a WCF service by specifying the useIdentityConfiguration attribute on the <system.serviceModel>/<behaviors>/<serviceBehaviors>/<serviceCredentials> element as in the following XML:

    <serviceCredentials useIdentityConfiguration="true">  
        <!--Certificate added by Identity And Access VS Package.  Subject='CN=localhost', Issuer='CN=localhost'. Make sure you have this certificate installed. The Identity and Access tool does not install this certificate.-->  
        <serviceCertificate findValue="CN=localhost" storeLocation="LocalMachine" storeName="My" x509FindType="FindBySubjectDistinguishedName" />  
    </serviceCredentials>  
    

    Quando si usa Identity and Access Tool per Visual Studio 2012 (vedere Modifiche all'esperienza con Visual Studio in precedenza), lo strumento aggiunge un elemento <serviceCredentials> con l'attributo useIdentityConfiguration impostato sul file di configurazione.When you use the Identity and Access Tool for Visual Studio 2012 (see Changes to the Visual Studio Experience above), the tool adds a <serviceCredentials> element with the useIdentityConfiguration attribute set to the configuration file for you. Aggiunge anche un elemento <system.identityModel> corrispondente che contiene le impostazioni di configurazione di WIF, un binding e altre impostazioni necessarie per l'outsourcing dell'autenticazione al servizio token di sicurezza scelto.It also adds a corresponding <system.identityModel> element that contains the WIF configuration settings and adds a binding and other settings necessary to outsource authentication to your chosen STS.

Vedere ancheSee Also

Linee guida per la migrazione di un'applicazione compilata con le versioni di WIF dalla 3.5 alla 4.5Guidelines for Migrating an Application Built Using WIF 3.5 to WIF 4.5
Mapping dello spazio dei nomi tra WIF 3.5 e WIF 4.5Namespace Mapping between WIF 3.5 and WIF 4.5
Riferimento per le API di WIFWIF API Reference
Guida di riferimento per la configurazione di WIFWIF Configuration Reference