2013-02-11 12 views
6

Ho bisogno di ottenere un token Windows da Reclami. La soluzione è un servizio Web WCF Claims Aware che utilizza ADFS 2.0 e viene eseguito in IIS ASP.NET 4.0. (Il token Kerberos è necessaria verso l'accesso al database rappresentato)c2WTS (Servizio token Windows) in .net 4.5

In .NET 3.5 e 4.0 il Servizio C2WTS è usato per ottenere Windows Identity da pretese:

WindowsIdentity WinID = S4UClient.UpnLogon (UPN);

Ma la documentazione per c2WTS indica quanto segue: "... [A partire da .NET Framework 4.5, Windows Identity Foundation (WIF) è stato completamente integrato in .NET Framework. La versione di WIF indirizzata da questo topic, WIF 3.5, è deprecato e dovrebbe essere utilizzato solo durante lo sviluppo su .NET Framework 3.5 SP1 o .NET Framework 4 ... "

Quale sarebbe l'equivalente di c2WTS in .NET 4.5?

risposta

5

Non c'è un equivalente. Ma è comunque possibile installare WIF per ottenere il servizio C2WTS.

Il gestore di token di sicurezza Saml ha la funzione MapToWindows che restituisce un'identità Windows. Questo è simile a ciò che fa C2WTS - ma

1) l'identità di Windows può essere utilizzata solo per l'autorizzazione in locale: per impersonare occorrono i privilegi di SISTEMA. Questo è ciò che C2WTS funziona sotto. 2) per delegare il token è necessario configurare la delega vincolata in AD (proprio come con C2WTS)

+0

Grazie per i suggerimenti. Non ho provato .NET 4.5 MapToWindows sul token di sicurezza Saml, ma sto usando C2WTS. Sono in grado di ottenere un'Identità, ma la delega verso Oracle DB su Linux non funziona. Stiamo lottando con la Delega vincolata con la transizione del protocollo in AD verso un servizio Oracle su Linux. Segnerò questa risposta come se fosse corretta la mia domanda, anche se le cose non funzionano ancora nel complesso. – HakonIngvaldsen

0

S4U è integrato in questo momento. Non hai bisogno di C2WTS. Si può solo fare:

var id = new WindowsIdentity(valueFromClaim); 
// continue your impersonation 

Per le chiamate di servizio, se si imposta le credenziali per DefaultCredentials, si dovrebbe essere ok, come questo sembra per eseguire il ToWindowsIdentity sul gestore token SAML.

Poiché si sta andando su Oracle, potrebbe essere necessario creare esplicitamente un contesto di Windows e impersonare (vedere: Creating a service for user (S4U) token).

Detto ciò, è necessario disporre della delega vincolata configurata correttamente o della delega non funzionerà.