Cenni preliminari su Claims to Windows Token Service (c2WTS)

è una funzionalità di Windows® Identity Foundation (WIF) che estrae attestazioni UPN dai token di protezione non Windows, ad esempio token di SAML e X.509, e genera token di protezione di Windows a livello di rappresentazione. Ciò consente a un'applicazione componente (RP) di rappresentare l'utente. Tale rappresentazione potrebbe essere necessaria per accedere a risorse back-end, ad esempio Server SQL, esterne al computer in cui sono in esecuzione le applicazioni componente.

è un servizio Windows installato come parte di WIF. Per motivi di sicurezza, tuttavia, può essere utilizzato esclusivamente solo in seguito a una scelta esplicita. È necessario avviarlo manualmente e viene eseguito con l'account di sistema locale. È inoltre necessario che un amministratore configuri manualmente con un elenco di chiamanti consentiti. Per impostazione predefinita, l'elenco è vuoto. Per ulteriori informazioni, vedere Procedura: richiedere un token da c2WTS. WIF chiama utilizzando IPC e non apre alcuna porta della rete.

Se l'applicazione componente viene eseguita con l'account di sistema locale, non deve utilizzare . Tuttavia, se l'applicazione componente viene eseguita con l'account del servizio di rete o è un'applicazione ASP.NET, ad esempio, è possibile che debba utilizzare per accedere alle risorse su un altro computer.

Si supponga di disporre di una Web farm costituita da un server che esegue un'applicazione ASP.NET, che accede a un database SQL su un server back-end. Si desidera rendere l'applicazione in grado di riconoscere attestazioni. Tuttavia, l'applicazione non può accedere al database SQL utilizzando l'attestazione ricevuta da un servizio token di protezione. Utilizza invece per convertire l'attestazione UPN in un token di protezione di Windows. Ciò consente all'applicazione di accedere al database SQL esattamente come prima.

Si noti che per consentire a un'applicazione di accedere a risorse su un altro server, è necessario che un amministratore del dominio configuri Active Directory per l'abilitazione della delega vincolata. Per informazioni sull'abilitazione della delega vincolata, vedere Procedura: Utilizzare la transizione del protocollo e la delega vincolata in ASP.NET 2.0.)

Nota

Se è abilitato e l'associazione è una conversazione sicura in modalità cookie, sarà utilizzato per riattivare l'identità Windows dall'UPN serializzato nel cookie di conversazione sicuro. Ciò significa che è possibile che l'autenticazione abbia esito negativo in caso di passaggio tra la conversazione sicura in modalità cookie e in modalità sessione, se è abilitato ma non configurato correttamente.

Modalità di utilizzo di c2WTS per ottenere un token di protezione di Windows

Sono disponibili due modalità per utilizzare : mapToWindows o chiamata su richiesta al metodo UpnLogon. Se l'applicazione richiede sempre token di protezione di Windows del livello di rappresentazione, è possibile scegliere di abilitare la proprietà mapToWindows su samlSecurityTokenRequirement sull'elemento <securityTokenHandlers>. D'altra parte se l'applicazione richiede token di protezione di Windows del livello di rappresentazione solo per determinati casi di utilizzo, è possibile scegliere di chiamare a livello di programmazione il metodo UpnLogon quando necessario. Si noti che per una chiamata corretta di tale metodo è necessario impostare la proprietà useWindowsTokenService su True ed è necessario aggiungere la configurazione con un elenco di chiamanti appropriati.

In WIF è disponibile un metodo, UpnLogon, che può essere chiamato da un'applicazione componente, passando l'attestazione UPN ricevuta dal servizio token di protezione. WIF chiama quindi locale utilizzando IPC. UpnLogon restituisce un WindowsIdentity che rappresenta l'utente. L'illustrazione seguente mostra il funzionamento di questo processo:

e6a9def2-c55f-427c-a30f-1a4d8d299191

  1. Una richiesta del client arriva all'applicazione componente. Per tale richiesta è necessario che l'applicazione componente acceda a una risorsa esterna. A questo scopo, l'applicazione componente deve rappresentare l'utente.

  2. L'applicazione componente reindirizza il client al servizio token di protezione IP per l'autenticazione.

  3. Il servizio token di protezione IP autentica l'utente e rilascia un token SAML che contiene un'attestazione UPN (ovvero, un'attestazione di tipo https://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn). Si noti che necessita di una stringa UPN per l'esecuzione delle operazioni.

  4. Il client invia il token SAML all'applicazione componente.

  5. L'applicazione componente convalida il token SAML ed estrae l'attestazione UPN.

  6. L'applicazione componente passa l'attestazione UPN al metodo UpnLogon come un parametro e ottiene un token di protezione di Windows. Questa chiamata al metodo viene effettuata automaticamente da SecurityTokenHandlers Saml 1.1 e Saml 2 quando la proprietà mapToWindows su SamlSecurityTokenRequirement su questi SecurityTokenHandlers viene impostata su True e il valore di useWindowsTokenService sull'elemento <windowsClaimsIdentity> in <microsoft.IdentityModel> viene impostato su True.

  7. L'applicazione componente utilizza l'identità Windows per rappresentare l'utente e accede alla risorsa.