Cosa è Geneva... in due parole

Nonostante siamo solo alla BETA 2 (da oggi) esistono varie fonti dove trovare documentazione su Geneva. Per questo motivo cercherò di schematizzare in poche righe le peculiarità di Geneva.

Innanzitutto con Geneva si intendono 3 componenti : Geneva Server, Geneva Framework e Geneva Cardspace. Vediamone le caratteristiche:

Geneva Server

Geneva Server è un il code name della versione 2 di ADFS (Active Directory Federation Services) e in questa versione (da oggi disponibile la BETA 2) rappresenta uno dei componenti della piattaforma CBA (Claims based access) di Microsoft. Molte le novità e gli improvements rispetto ad ADFS. Volendo schematizzare Geneva server:

  • Principalmente Geneva Server è un security token service (STS) che permette di usare Active Directory come Identity Provider del mondo claims-based (Figura 1)
    • Identity e Federation provider
  • Federation Trust Manager
    • Automatizza la configurazione e la gestione dei trust via metadata
  • Basata su standard di mercato
    • Supporto all’interoperabilità
    • Supporto a scenari WS-Federation passive profile (come ADFS) ovvero per applicazioni Web (via browser)
    • Supporto a scenari WS-Federation active profile per integrare nei processi di eID e di Single Sign On anche le applicazioni desktop e i Web Services.
    • Supporto (e questa è veramente una grossa novità) a SAML 2.0 Protocol .
      • Web SSO AuthnRequest : HTTP redirect
      • Web SSO Response : HTTP POST
      • Identity Provider Discovery : Cookie
      • Web SSO Response : HTTP Artifact
      • Artifact Resolution : SOAP
      • Single Logout (IdP-initiated) : HTTP redirect
      • Single Logout (SP-initiated) : HTTP redirect
      • Enhanced Client/Proxy SSO : PAOS
    • Supporto a token SAML 1.1 e SAML 2.0
  • Managed Information card-provider per AD
    • CardSpace e Identity Selectors di terze parti.

 image

Figura 1: Architettura di Geneva Server

Geneva Framework

Geneva framework è un’insieme di classi che estendono il framework .NET e a sua volta è l’evoluzione di un altro code name : Zermatt.

  • Classi per rendere le proprie applicaioni claims-based.
  • Può essere utilizzato sia per le Web Applications che per i Web Services. Quindi sia per ASP.NET e WCF.
  • Introdotto un nuovo modello claims based.
    • Estensione del modello “classico ”IIdentity/IPrincipal” con il nuovo “IClaimsIdentity/IClaimsPrincipal”.
    • Utilizzo di Thread.CurrentPrincipal al posto di ClaimsPrincipal.Current per un più facile accesso ai claims del chiamante. 
       

image

  • Claims e claims types sono tutte strighe.
  • ClaimsAuthenticationManager per racchiudere tutta la logica di autenticazione in un unico punto.
  • Uso estensivo dei token Handlers per processare qualsiasi tipo di token (U/P,X509, Kerberos, SCT e HttpCoockies.
  • Il FAM (Federated Authentication Module) è composto da tre authentication models: SessionAuthenticationModule, WSFederationAuthenticationModel e ClaimsPrincipalHttpModule. In questo modo si semplifica la compatibilità con la Forms Authentication di ASP.NET e i moduli di UrlAuthorization.
  • Supporto allo sviluppo di custom STS.
  • GTS : Geneva token Service è un servizio disponibile con il Geneva framework che permette di trasformare token XML (come ad esempio SAML tokens) in Windows Token tramite l’ UPN name (Dietro le quinte utilizza il Kerberos Extension S4U2Prox)
  • Supporto allo sviluppo di RP (Relying party – ovvero applicazioni claims-aware) con il supporto di CardSpace.
  • Supporto ASP.NET controls e integrazione con VIsual Studio 2008 tramite dei template dedicati per ASP.NET e WCF.
  • Nuove API per l’autorizzazione.

Geneva CardSpace

CardSpace “Geneva” rilascia dei security token ai web sites/Web Services sfruttando l’infrastruttura claims-based e i meccasismi basati su WS-Security/WS-Trust e WS-Federation permettendo di mitigare al massimo il problem del phishing e aumentando la privacy degli utenti (è l’utente che piò selezionare quali e quante informazioni dare ad un sito durante la fase di autenticazione). Le informazioni all’utente sono gestite tramite delle Information cards ovver dei documenti XML firmati da un STS.

image

 

--Mario