2013-02-11 10 views
6

Je dois obtenir un jeton Windows à partir de Claims. La solution est un service Web Claims Aware WCF qui utilise ADFS 2.0 et s'exécute dans IIS ASP.NET 4.0. (Le jeton kerberos est nécessaire vers l'accès base de données personnifié)c2WTS (Revendications au service de jetons Windows) dans .net 4.5

Dans .NET 3.5 et 4.0 Service C2WTS est utilisé pour obtenir l'identité Windows des réclamations:

WindowsIdentity winId = S4UClient.UpnLogon (UPN); Mais la documentation de c2WTS indique ce qui suit: "... [À partir de .NET Framework 4.5, Windows Identity Foundation (WIF) a été entièrement intégré dans le .NET Framework. sujet, WIF 3.5, est obsolète et ne doit être utilisé que lors du développement sur .NET Framework 3.5 SP1 ou .NET Framework 4 ... "

Quel serait l'équivalent de c2WTS dans .NET 4.5?

Répondre

5

Il n'y a pas d'équivalent. Mais vous pouvez toujours installer WIF pour obtenir le service C2WTS.

Le gestionnaire de jetons de sécurité Saml possède la fonctionnalité MapToWindows qui renvoie une identité Windows. 1) l'identité de la fenêtre ne peut être utilisée que pour l'autorisation locale - pour emprunter l'identité, vous aurez besoin des privilèges du système. C'est ce que C2WTS gère. 2) pour déléguer le jeton dont vous avez besoin pour configurer la délégation contrainte dans AD (comme avec C2WTS)

+0

Merci pour vos suggestions. N'a pas essayé le jeton de sécurité .NET 4.5 MapToWindows at Saml, mais utilise C2WTS. Je suis en mesure d'obtenir une identité, mais la délégation vers Oracle DB à Linux ne fonctionne pas. Nous sommes en train de struger avec la transition Constrained Delegation with Protocol dans AD vers un service Oracle sous Linux. Je vais marquer cela comme réponse comme il est correct en ce qui concerne ma question, même si les choses ne fonctionnent pas encore dans son ensemble. – HakonIngvaldsen

0

S4U est intégré à ce moment. Vous n'avez pas besoin de C2WTS. Vous pouvez juste faire:

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

Pour les appels de service, si vous définissez les informations d'identification à DefaultCredentials, vous devriez être ok comme cela semble exécuter le ToWindowsIdentity sur le gestionnaire jeton SAML. Puisque vous allez à Oracle, vous devrez peut-être créer explicitement un contexte Windows et usurper l'identité (voir: Creating a service for user (S4U) token). Tout cela étant dit, vous devez avoir une délégation contrainte configurée correctement ou la délégation ne fonctionnera pas.