<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Security &amp; Architecture : ADFS</title><link>http://blogs.msdn.com/mariofontana/archive/tags/ADFS/default.aspx</link><description>Tags: ADFS</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Le basi per un Common Identity Framework</title><link>http://blogs.msdn.com/mariofontana/archive/2009/06/09/le-basi-per-un-common-identity-framework.aspx</link><pubDate>Tue, 09 Jun 2009 12:41:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9714541</guid><dc:creator>mfontana</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/9714541.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=9714541</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/LebasiperunCommonIdentityFramework_85DB/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="left" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/LebasiperunCommonIdentityFramework_85DB/image_thumb.png" width="117" height="121" /&gt;&lt;/a&gt; Per chi come me sta lavorando assiduamente sull’inserimento del modello &lt;strong&gt;claims-based &lt;/strong&gt;nelle attuali architetture dei clienti non può perdere il &lt;a href="http://www.identityblog.com/?p=1048" target="_blank"&gt;post&lt;/a&gt; e relativo documento di &lt;strong&gt;Kim Cameron &lt;/strong&gt;dal titolo :&lt;strong&gt;&lt;em&gt;“Proposal fo a Common Identity Framework: A User-Centric Identity Metasystem”&lt;/em&gt;&lt;/strong&gt; scritto da &lt;strong&gt;Kim Cameron&lt;/strong&gt;, &lt;strong&gt;Reinhard Posch &lt;/strong&gt;e &lt;strong&gt;Kai Rannenberg &lt;/strong&gt;tutti nomi molto conosciuti nell’ambito dell’Identity Management (come potrete leggere dal post di Kim). (download : &lt;a href="http://www.identityblog.com/wp-content/images/2009/06/UserCentricIdentityMetasystem.pdf" target="_blank"&gt;PDF&lt;/a&gt; o &lt;a href="http://www.identityblog.com/wp-content/images/2009/06/UserCentricIdentityMetasystem.doc" target="_blank"&gt;DOC&lt;/a&gt;)!!! &lt;/p&gt;  &lt;p&gt;In questo documento vengono esplicitati &lt;strong&gt;i principi base &lt;/strong&gt;su cui si può fondare un &lt;strong&gt;Identity Metasystem &lt;/strong&gt;capace di integrare e razionalizzare la gestione delle identità indipendentemente dagli stack tecnologici utilizzati. Il tutto, ovviamente, in conformità delle principali leggi sulla sicurezza e sorpattutto sulla privacy. Vi assicuro che questo documento è di estrema utilità perchè evidenzia con chiarezza i principali “blocchi” architetturali e relative dipendenze. &lt;/p&gt;  &lt;p&gt;Tra l’altro questo documento è stato inserito nel libro &lt;a href="http://www.amazon.com/Future-Identity-Information-Society-Opportunities/dp/3540884807/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1243988071&amp;amp;sr=1-1"&gt;The Future of Identity in the Information Society&lt;/a&gt; un trattato che raccoglie ricerche effettuate in vari stati europei sull’identificazione dei cittadini, le ID cards, gli impatti delle leggi sulla privacy e tutti gli aspetti di computer forensics legate ai crimini informatici basati sul furto di identità.&lt;/p&gt;  &lt;p&gt;Tre sono gli aspetti di questo whitepaper che mi hanno aiutato (più di tutto) a formalizzare meglio alcuni aspetti del lavoro che sto facendo in questo periodo sulla claims-based security: la suddivisione architetturale fatta tramite gli &lt;strong&gt;abstract services, &lt;/strong&gt;la &lt;strong&gt;tassonomia dei claims &lt;/strong&gt;e il concetto di &lt;strong&gt;Data Minimization&lt;/strong&gt;. Con la definizione degli abstract services si riesce ad avere una visione olistica dell’architettura di un Identity Metasystem senza entrare nei tecnicismi che inevitabilmente vengono introdotti quando si lavora con un determinato vendor/prodotto. Nel documento questi servizi vengono presentati come astratti perchè &lt;strong&gt;rappresentano le funzioni di base dell’architettura &lt;/strong&gt;e successivamente i vendor potranno realizzare i propri sistemi reali calando questa visione astratta nei propri modelli.&lt;/p&gt;  &lt;p&gt;Stiamo quindi parlando di abstract services come il &lt;strong&gt;Primordial Claim Abstract Service&lt;/strong&gt;, &lt;strong&gt;Registration Abstract Service&lt;/strong&gt;, &lt;strong&gt;Claims Provider Abstract Service&lt;/strong&gt;, &lt;strong&gt;Claims Selector Abstract Service&lt;/strong&gt;, &lt;strong&gt;Claims Approver Abstract Service&lt;/strong&gt;, &lt;strong&gt;Resource Matching Abstract Service&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;La &lt;strong&gt;tassonomia dei claims &lt;/strong&gt;invece diventa utilissima quando si lavora a livello architetturale alla definizione dei claims gestibili in azienda e relativa suddivisione per applicazione:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="142"&gt;         &lt;p&gt;Type of Claim&lt;/p&gt;       &lt;/td&gt;        &lt;td width="218"&gt;         &lt;p&gt;Comment&lt;/p&gt;       &lt;/td&gt;        &lt;td width="274"&gt;         &lt;p&gt;Examples&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;         &lt;p&gt;Static&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="218"&gt;         &lt;p&gt;What we have traditionally called “properties” and “attributes” of the subject – static within &lt;i&gt;some window&lt;/i&gt; of time&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="274"&gt;         &lt;p&gt;National identifiers and employee numbers &lt;/p&gt;          &lt;p&gt;Date of Birth&lt;/p&gt;          &lt;p&gt;Name&lt;/p&gt;          &lt;p&gt;Address&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;         &lt;p&gt;Relationship&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="218"&gt;         &lt;p&gt;Subject is in some relationship with another subject (and open-ended model with multiple sources and viewpoints)&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="274"&gt;         &lt;p&gt;Member of arbitrary group&lt;/p&gt;          &lt;p&gt;Member of assigned role&lt;/p&gt;          &lt;p&gt;Relationship to another subject (e.g. Personal Assistant or Parent)&lt;/p&gt;          &lt;p&gt;Mandate (e.g. trustee)&lt;/p&gt;          &lt;p&gt;Acting-as / On-behalf-of relationships&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;         &lt;p&gt;Derived&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="218"&gt;         &lt;p&gt;Claims that convey minimum necessary information by deriving it from facts but not releasing the facts&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="274"&gt;         &lt;p&gt;Over 21 or Under 16&lt;/p&gt;          &lt;p&gt;University Student&lt;/p&gt;          &lt;p&gt;Person in Drug Trial&lt;/p&gt;          &lt;p&gt;Unmarried Female in 20’s&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;         &lt;p&gt;Capability&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="218"&gt;         &lt;p&gt;Authentication and authorization both based on claims transformation. Capabilities are determined by relying party within a defined scope&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="274"&gt;         &lt;p&gt;Can-read-calendar&lt;/p&gt;          &lt;p&gt;Can-access-write-operation&lt;/p&gt;          &lt;p&gt;Denied-update-in-given-scope&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="142"&gt;         &lt;p&gt;Contextual Claims&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="218"&gt;         &lt;p&gt;Factors useful in evaluating the security presentation.&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="274"&gt;         &lt;p&gt;Authentication technology, location, time&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Infine gli aspetti di &lt;strong&gt;Data Minimization&lt;/strong&gt; ci permettono di focalizzare quali sono gli ambiti in cui è necessario garantire il minor numero di informazioni personali degi utenti come le collezioni, aggregazioni, storage, retention,replication, distribution,linkage…&lt;/p&gt;  &lt;p&gt;Un documento quindi che &lt;strong&gt;NON si piò NON leggere &lt;/strong&gt;se si lavora nel campo dell’ Identity Management !!!&lt;/p&gt;  &lt;p&gt;--Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9714541" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Sicurezza/default.aspx">Sicurezza</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Architetture+applicative/default.aspx">Architetture applicative</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/IDentity+Metasystem/default.aspx">IDentity Metasystem</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/ADFS/default.aspx">ADFS</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Geneva/default.aspx">Geneva</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Interoperabilit_E000_/default.aspx">Interoperabilità</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Claims-Based+Security/default.aspx">Claims-Based Security</category></item><item><title>Come rendere Sharepoint 2007 Claims-Aware e integrarlo in Geneva Server BETA 2</title><link>http://blogs.msdn.com/mariofontana/archive/2009/05/27/come-rendere-sharepoint-2007-claims-aware-e-integrarlo-in-geneva-server-beta-2.aspx</link><pubDate>Wed, 27 May 2009 22:40:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9644859</guid><dc:creator>mfontana</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/9644859.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=9644859</wfw:commentRss><description>&lt;p&gt;Grande enfasi sto riscontrando nelle richieste di chiarimenti sulla configurazione di &lt;strong&gt;Sharepoint 2007 in &lt;/strong&gt;“versione”&lt;strong&gt; &lt;/strong&gt;Claims-aware ovvero come poterlo integrare nelle nuove architetture basate su &lt;strong&gt;Geneva Server&lt;/strong&gt;. &lt;a href="http://blogs.msdn.com/mariofontana/archive/2009/05/15/geneva-server-claims-based-security-con-office-sharepoint-server-2007.aspx"&gt;In questo mio precedente post&lt;/a&gt;&amp;#160;&lt;strong&gt; &lt;/strong&gt;avevo dato il link al laboratorio che abbiamo messo on-line ma i requirements sono un forte deterrente : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Il laboratorio è composto da 4 macchine virtuali &lt;/li&gt;    &lt;li&gt;Il download è poco più di&amp;#160; &lt;strong&gt;14Gb&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;L’ambiente &lt;/strong&gt;gira su &lt;strong&gt;Hyper-V. &lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Sono necessari un minimo di &lt;strong&gt;8 GB di RAM &lt;/strong&gt;sulla macchina Host per far girare l’ambiente. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;risultato … molte persone non possono provare il laboratorio ma (giustamente) vogliono capire come configurare Sharepoint per parlare la “nuova lingua franca dei claims” :-). A questo proposito nel post mi concentrerò su alcuni aspetti importanti di configurazione di Sharepoint che non sono descritti per intero nel documento di configurazione dello scenario (che è comunque disponibile insieme alle macchine virtuali ma con un download separato) e darò il link per scaricare i files mancanti per una configurazione “fai-da-te” :-) !!&lt;/p&gt;  &lt;p&gt;Lo scenario di riferimento è il seguente :&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/ComeconfigurareSharepoint2007peraccettar_BB72/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/ComeconfigurareSharepoint2007peraccettar_BB72/image_thumb.png" width="317" height="448" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Figura 1 : Struttura dello scenario implementato.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Quindi di fatto stiamo lavorando sulla configurazione della macchina &lt;strong&gt;CONTOSOSRV02&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Tornando a noi, i passi &lt;u&gt;minimi &lt;/u&gt;per configurare Sharepoint in modalità claims-aware sono quelli descritti nei primi 4 step del documento, ovvero :&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Configurare Sharepoint affinchè accetti i token rilasciati da Geneva Server. &lt;/li&gt;    &lt;li&gt;Aggiungere il gruppo Domain Admins tra gli amministratori di Sharepoint. &lt;/li&gt;    &lt;li&gt;Configurare Geneva Server a rilasciare i token per Sharepoint &lt;/li&gt;    &lt;li&gt;Configurare i Ruoli in Sharepoint. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Sebbene i punti 2-3-4 sono ben chiari, il primo viene trattato semplicemente come l’esecuzione dello script &lt;strong&gt;ConfigureSharepoint.bat&lt;/strong&gt; che altro non fa che lanciare lo script &lt;strong&gt;SetupSharePointIDFX.vbs &lt;/strong&gt;con i seguenti parametri:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;-appconfig &lt;/strong&gt;&lt;em&gt;&amp;lt;web.config del portale Sharepoint&amp;gt;.&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;-&lt;strong&gt;adminconfig&lt;/strong&gt; &lt;em&gt;&amp;lt;web.config del portale di amministrazione di Sharepoint&amp;gt;.&lt;/em&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;-applicationuri &lt;/strong&gt;&lt;em&gt;&amp;lt;URL esatto dell’applicazione sharepoint&amp;gt;&lt;/em&gt;. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;-stsmetadataurl&lt;/strong&gt; &amp;lt;Il metadata URL del STS (Security Token Service) di Geneva per ottenere i federation metadata . Il formato di questo URL è il seguente : &lt;a href="https://server-name/FederationMetadata/spec-version/FederationMetadata.xml"&gt;https://&lt;i&gt;server-name&lt;/i&gt;/&lt;b&gt;FederationMetadata&lt;/b&gt;/&lt;i&gt;spec-version&lt;/i&gt;/&lt;strong&gt;FederationMetadata.xml&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&amp;#160;&lt;/strong&gt;ed è definita direttamente al paragrafo 3.2.2 della specifica &lt;strong&gt;WS-Federation&amp;gt;.&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;-fedutilmode&lt;/strong&gt; &amp;lt;modalità di esecuzione dell’ utility FedUtil.exe&amp;gt;. &lt;/li&gt;    &lt;li&gt;-&lt;strong&gt;urlZone &amp;lt;&lt;/strong&gt;la &lt;em&gt;zone &lt;/em&gt;di Sharepoint da configurare&amp;gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Nel caso specifico dello scenario avremo i seguenti parametri:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;-appconfig C:\\inetpub\wwwroot\wss\VirtualDirectories\docs.contoso.com443\web.config. &lt;/li&gt;    &lt;li&gt;-adminconfig C:\\inetpub\wwwroot\wss\VirtualDirectories\3526\web.config. &lt;/li&gt;    &lt;li&gt;-stsmetadataurl &lt;a href="https://sts1.contoso.com/federationmetadata/2007-06/federationmetadata.xml"&gt;https://sts1.contoso.com/federationmetadata/2007-06/federationmetadata.xml&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;-fedutilmode &amp;quot;silent&amp;quot;. &lt;/li&gt;    &lt;li&gt;-urlZone &amp;quot;Extranet&amp;quot;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Ma cosa fa esattamente questo script? &lt;/p&gt;  &lt;p&gt;Lo script inizia con l’invocazione dell’utility &lt;strong&gt;FEDUTIL.EXE &lt;/strong&gt;(fornita con Geneva Framework) per configurare il &lt;em&gt;Security Token Service &lt;/em&gt;(Geneva Server) come un trusted issuer per Sharepoint. Successivamente lo script modifica le configurazioni dei &lt;em&gt;web.config &lt;/em&gt;passati come parametro con lo scopo principale di aggiungere i nuovi provider per Sharepoint forniti all’interno di Geneva Framework : nel caso specifico avremo il &lt;strong&gt;MembershiProvider&lt;/strong&gt; (Microsoft.IdentityModel.SharePoint.SharePointClaimsMembershipProvider), il &lt;strong&gt;Role Provider &lt;/strong&gt;(Microsoft.IdentityModel.SharePoint.SharePointClaimsRoleProvider) e infine un &lt;em&gt;HttpModule &lt;/em&gt;per gestire correttamente la &lt;strong&gt;FBA&lt;/strong&gt; (Forms Based Authentication) di Sharepoint (Microsoft.IdentityModel.SharePoint.OfficeDiscoveryFormsAuthenticationModule). Infine lo script invoca l’utility &lt;strong&gt;STSADM.EXE &lt;/strong&gt;(fornita con sharepoint) per configurare l’ URL mapping e il metodo di autenticazione impostato a&amp;#160; ‘none’ e &lt;em&gt;ASP.NET imporsonate = false&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;Una volta terminato lo script con esito positivo (lo si vede dall’output) crea un file contenente i federation metadata per Sharepoint che successivamente dovrà essere dato in pasto a Geneva Server per completare la profilazione del STS o in gergo Geneva l’ &lt;strong&gt;Identity Provider &lt;/strong&gt;(&lt;strong&gt;IP&lt;/strong&gt;)!! That’s all !! A questo punto potete seguire passo passo il documento e continuare la configurazione a mano.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=57602615-e1ee-4775-8b79-367b7007e178"&gt;Qui&lt;/a&gt; trovi il link del documento di configurazione dello scenario.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cid-058b7d5369e7f704.skydrive.live.com/self.aspx/SharepointConfiguration/ConfigureSharepoint.zip?lc=1040" target="_blank"&gt;Qui&lt;/a&gt; puoi scaricare gli script di configurazione.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Buon lavoro…&lt;/p&gt;  &lt;p&gt;--Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9644859" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Sicurezza/default.aspx">Sicurezza</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Office+System+2007/default.aspx">Office System 2007</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/ADFS/default.aspx">ADFS</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Geneva/default.aspx">Geneva</category></item><item><title>Geneva Server NON è la soluzione di “Identity Lifecycle Management” !!!</title><link>http://blogs.msdn.com/mariofontana/archive/2009/05/22/geneva-server-non-la-soluzione-di-identity-lifecycle-management.aspx</link><pubDate>Fri, 22 May 2009 11:25:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9634860</guid><dc:creator>mfontana</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/9634860.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=9634860</wfw:commentRss><description>&lt;p&gt;In questi ultimi mesi sto lavorando con alcuni grandi clienti italiani nel disegno e nella realizzazione di infrastrutture Claims-Based utilizzando i vari componenti di &lt;strong&gt;Geneva&lt;/strong&gt; : &lt;strong&gt;Geneva Server&lt;/strong&gt;, &lt;strong&gt;Geneva Framework &lt;/strong&gt;e &lt;strong&gt;Geneva CardSpace&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;L’equivoco più ricorrente è quello di associare in prima battuta Geneva Server come LA (notare il maiuscolo) soluzione Microsoft per l’ &lt;strong&gt;Identity LifeCycle Management (ILM)&lt;/strong&gt;. &lt;u&gt;Non è corretto &lt;/u&gt;!!! Al contrario, Geneva Server &amp;amp; CardSpace insieme a Geneva Framework sono un tassello molto importante di una architettura articolata di ILM che comprende però molte aree strategiche non gestite direttamente da Geneva. Nella figura sottostante ho elencato i tre macro layers di una infrastruttura ILM (quelli in rosso)&amp;#160; con relative aree di competenza mentre ho evidenziato in giallo le aree coperte &lt;strong&gt;anche &lt;/strong&gt;da Geneva !!! &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/GenevaServernonunsistemadiIdentityManage_A0F5/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/GenevaServernonunsistemadiIdentityManage_A0F5/image_thumb.png" width="426" height="273" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; (cliccare sull’immagine per vederla più grande)&lt;/p&gt;  &lt;p&gt;Geneva copre quindi solo alcune parti dell’infrastruttura di ILM. Infatti Geneva è la piattaforma che permette di semplificare la fruibilità alle applicazioni tramite il modello claims-based. Per maggiori info leggete questo mio breve post intitolato : &lt;a href="http://blogs.msdn.com/mariofontana/archive/2009/05/12/cosa-geneva-in-due-parole.aspx" target="_blank"&gt;Cosa è Geneva Server in due parole&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Geneva Server quindi ci aiuta a gestire alcuni aspetti (ma non tutti) dell’ ILM soprattuto nel mondo delle Web Applications e dei Web Services, un’area quest’ultima che pone delle sfide interessanti alla disciplina dell’ ILM in quanto per loro natura possono essere “sparsi” all'interno di dipartimenti della stessa azienda, da business partners o “in the clound”.&lt;/p&gt;  &lt;p&gt;--Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9634860" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Architetture+applicative/default.aspx">Architetture applicative</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/IDentity+Metasystem/default.aspx">IDentity Metasystem</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/ADFS/default.aspx">ADFS</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Geneva/default.aspx">Geneva</category></item><item><title>Microsoft e SAML 2.0 Protocol</title><link>http://blogs.msdn.com/mariofontana/archive/2009/05/20/microsoft-e-saml-2-0-protocol.aspx</link><pubDate>Wed, 20 May 2009 13:15:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9631997</guid><dc:creator>mfontana</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/9631997.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=9631997</wfw:commentRss><description>&lt;p&gt;Forse non è ancora noto a tutti che Microsoft sta lavorando per integrare parte del protocollo &lt;strong&gt;SAML 2.0 &lt;/strong&gt;all’interno dei servizi di Active Directory. &lt;/p&gt;  &lt;p&gt;Come presentato durante l’ultimo PDC (Professional Developers Conference) da &lt;a href="http://www.identityblog.com/" target="_blank"&gt;Kim Cameron&lt;/a&gt; la nuova versione di &lt;strong&gt;ADFS &lt;/strong&gt;(Active Directory Federation Services) che per adesso ha il code name &lt;strong&gt;&lt;a href="http://blogs.msdn.com/mariofontana/archive/2009/05/12/cosa-geneva-in-due-parole.aspx" target="_blank"&gt;Geneva&lt;/a&gt;, &lt;/strong&gt;oltre ad estendere il supporto alle specifiche &lt;strong&gt;WS-* (WS-Security, WS-Trust, WS-Federation, ecc.…) &lt;/strong&gt;sarà in grado di “parlare” SAML 2.0 creando una vera e propria infrastruttura sistemistica ed applicativa capace di semplificare gli aspetti di autenticazione e di Single Sign On. Geneva inoltre è definita una “open platform” perchè permette di realizzare una architettura claims-based basata sui principali protocolli standard (WS-* e SAML 2.0). I componenti della specifica SAML 2.0 implementati sono i seguenti :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Web SSO AuthnRequest : HTTP redirect &lt;/li&gt;    &lt;li&gt;Web SSO Response : HTTP POST &lt;/li&gt;    &lt;li&gt;Identity Provider Discovery : Cookie &lt;/li&gt;    &lt;li&gt;Web SSO Response : HTTP Artifact &lt;/li&gt;    &lt;li&gt;Artifact Resolution : SOAP &lt;/li&gt;    &lt;li&gt;Single Logout (IdP-initiated) : HTTP redirect &lt;/li&gt;    &lt;li&gt;Single Logout (SP-initiated) : HTTP redirect &lt;/li&gt;    &lt;li&gt;Enhanced Client/Proxy SSO : PAOS &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Infine Geneva per automatizzare al massimo l’amministrazione degli aspetti di federazione utilizzerà il nuovo &lt;a href="http://identity-des.com/2008/10/28/harmonized-federation-metadata-for-ws-federation-and-saml/"&gt;harmonized federation metadata format &lt;/a&gt;basato sui metadata SAML 2.0. (&lt;a href="http://identity-des.com/2008/10/28/microsoft-geneva-server-supports-saml-20/" target="_blank"&gt;leggete qui la notizia da Don Schmidt&lt;/a&gt;) &lt;/p&gt;  &lt;h3&gt;E questo cosa significa?&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Interoperabilità&lt;/strong&gt; e &lt;strong&gt;Single Sign On&lt;/strong&gt;! Infatti SAML 2.0 è il protocollo di riferimento per le principali architetture &lt;strong&gt;Open-Source&lt;/strong&gt; per lo scambio di informazioni di autenticazione ed autorizzazione tra security domains mentre lo stack di specifiche WS-* (e nello specifico WS-Federation) è lo standard di riferimento utilizzato nei principali prodotti commerciali sempre con l’obiettivo di scambiare informazioni di autenticazione ed autorizzazione. &lt;/p&gt;  &lt;p&gt;Queste specifiche hanno molti vantaggi per noi architetti ma anche un grosso svantaggio : mantenere i due mondi nettamente separati!! Questo significa che noi poveri architetti spesso siamo costretti a creare componenti di architetture più o meno custom per poter superare queste diversità. E’ il colmo ! Dover disegnare/scrivere delle soluzioni custom per integrare gli standard !!! (questo è il tipico caso in cui la presenza di standard non sempre aiuta!!).    &lt;br /&gt;Con Geneva questa realtà finalmente può cambiare!! Oggi siamo in grado di far interoperare questi due mondi permettendoci di disegnare &lt;strong&gt;scenari di Single Sign On &lt;/strong&gt;per i nostri utenti &lt;strong&gt;indipendentemente dallo stack applicativo e sistemistico utilizzato&lt;/strong&gt;. Finalmente possiamo iniziare a parlare di Interoperabilità con la I maiuscola anche in ambito Identity dove normalmente le varie architetture storicamente erano chiuse, blindate dalla propria tecnologia! &lt;/p&gt;  &lt;h3&gt;WS-* e SAML 2.0 Protocol. Perchè due stack di specifiche?&lt;/h3&gt;  &lt;p&gt;Ma allora la domanda nasce spontanea … perchè due stack ? &lt;/p&gt;  &lt;p&gt;Cominciamo col dire che le specifiche WS-Trust/Ws-Federation (dello stack WS-*) e il protocollo SAML 2.0 &lt;u&gt;&lt;strong&gt;hanno alcune parti in comune ma obiettivi differenti !&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;WS-Trust/Ws-Federation come tutte le specifiche di WS-* sono pensate prevalentemente per Web Services ovvero scenari “attivi” capaci di “parlare SOAP”. Infatti anche il nome lo dice : WS-* significa Web Services-*, e quindi WS-Trust = Web Services Trust, WS-Federation = Web Services Federation. Quindi lo stack WS-* fin dagli albori (siamo alla fine del 2000 circa) ha lo scopo di fornire un’infrastruttura &lt;strong&gt;per il mondo a servizi &lt;/strong&gt;(da SOA a SaaS, S+S, ecc…). WS-Federation in quello che era chiamato “profilo attivo” rappresenta la naturale evoluzione di WS-Trust e descrive i meccanismi di trust tra Security Domains differenti (Federazioni) con una predilezione e un punto di vista a servizi. &lt;/p&gt;  &lt;p&gt;Una architettura di questo tipo che pone tra i propri obiettivi anche il Single Sign-On tra applicazioni e Web Services sarebbe stata monca se non avesse aggiunto anche il supporto ai client Web che non sono in grado di gestire il protocollo SOAP (ovvero i Browser). E’ per questo motivo che WS-Federation ha anche il &lt;u&gt;profilo passivo&lt;/u&gt;, ovvero una serie di regole che permettono ai browser di utilizzare i protocolli WS-Trust e WS-Federation tramite HTTP 1.1 e quindi di integrare le anche le Web Applications nel processo di Single Sign On. In questo caso (passivo) &lt;u&gt;&lt;strong&gt;abbiamo una sovrapposizione con una parte delle funzionalità espresse da SAML 2.0 protocol &lt;/strong&gt;&lt;/u&gt;!!! &lt;/p&gt;  &lt;p&gt;Quindi per rispondere alla domanda “perchè due specifiche” posso dire che WS-Federation nasce come &lt;strong&gt;evoluzione &lt;/strong&gt;di un particolare modello ormai consolidato di sicurezza e di gestione delle identità capace di gestire &lt;strong&gt;sia i Web Services che per le Web Application &lt;/strong&gt;mentre questo doppio supporto non era previsto (almeno inizialmente) dal protocollo SAML 2.0 (nato prevalentemente per gli scenari Web Apps). Infatti, SAML 2.0 nasce dalla convergenza di &lt;a href="http://en.wikipedia.org/wiki/SAML_1.1"&gt;SAML 1.1&lt;/a&gt;, &lt;a href="http://www.projectliberty.org/resource_center/specifications/liberty_alliance_id_ff_1_2_specifications"&gt;Liberty ID-FF 1.2&lt;/a&gt;, e &lt;a href="http://shibboleth.internet2.edu/docs/internet2-mace-shibboleth-arch-protocols-200509.pdf"&gt;Shibboleth 1.3&lt;/a&gt; con il primario obiettivo di definire uno standard per il &lt;strong&gt;Web Single Sign On&lt;/strong&gt;. Successivamente SAML 2.0 ha aggiunto anche il&amp;#160; SAML ECP (Enhanced Client Profile) per l’integrazione di client attivi.&lt;/p&gt;  &lt;p&gt;WS-Federation quindi permette a tutti quelli che hanno investito sullo stack WS-* di &lt;strong&gt;continuare gli investimenti adottando un unico modello di sviluppo &lt;/strong&gt;indipendentemente dai sistemi utilizzati - Windows/Linux – e dai&amp;#160; linguaggi .NET/Java o altro. Dal canto suo, seguendo anche le innumerevoli (e a mio avviso, giustissime) richieste da parte di clienti da tutto il mondo, parte del protocollo SAML 2.0 è stato integrato in Geneva ponendo il primo tassello verso la realizzazione di un Identity MetaSystem capace di gestire ambienti multi piattaforma e multi player. Per ulteriori informazioni leggete &lt;a href="http://identity-des.com/2007/05/02/ws-fed-and-saml/" target="_blank"&gt;questo post di Don&lt;/a&gt; sullo stesso tema!!&lt;/p&gt;  &lt;p&gt;Con questo post spero di rispondere a tutti quelli che sostengono che WS-Federation è nato esclusivamente con la volontà di fare una guerra al mondo Open Source e al protocollo SAML 2.0. Personalmente , come Software Architect trovo molto frustrante quando esistono stack di infrastruttura applicativa difficilmente integrabili tra loro perchè non ci permettono di svolgere il nostro lavoro al meglio e accolgo sempre in modo positivo quando questi ostacoli vengono superati dalle infrastrutture di base siano esse Microsoft o altro.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;--Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9631997" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/WS-_2A00_/default.aspx">WS-*</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Architetture+applicative/default.aspx">Architetture applicative</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/IDentity+Metasystem/default.aspx">IDentity Metasystem</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/ADFS/default.aspx">ADFS</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Geneva/default.aspx">Geneva</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Interoperabilit_E000_/default.aspx">Interoperabilità</category></item><item><title>Agenda del WebCast sull' Identity &amp;amp; Access Management</title><link>http://blogs.msdn.com/mariofontana/archive/2007/09/27/agenda-del-webcast-sull-identity-access.aspx</link><pubDate>Thu, 27 Sep 2007 01:11:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5153348</guid><dc:creator>mfontana</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/5153348.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=5153348</wfw:commentRss><description>&lt;p&gt;Questa è la versione definitiva dell'agenda del Webcast che ho fatto sull' Identity &amp;amp; Access Management presentato &lt;a href="http://blogs.msdn.com/mariofontana/archive/2007/09/20/il-primo-webcast-non-si-scorda-mai.aspx" target="_blank"&gt;qui&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Agenda&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Identity &amp;amp; Access Management Overview.  &lt;li&gt;Cosa intendiamo per Digital Identity.  &lt;li&gt;Identity Design Patterns.  &lt;li&gt;Scenari architetturali.  &lt;li&gt;Identity MetaSystem.  &lt;li&gt;Identity LifeCycle Management.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Potete scaricare &lt;a href="http://cid-058b7d5369e7f704.skydrive.live.com/self.aspx/Public/Webcasts/03%20WCast%20Identity_Access.pdf" target="_blank"&gt;le slides&lt;/a&gt; mentre l'intero WebCast è disponibile per il download &lt;a href="http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=it-IT&amp;amp;EventID=1032351276&amp;amp;CountryCode=IT" target="_blank"&gt;qui&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;--Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5153348" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Sicurezza/default.aspx">Sicurezza</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/WS-_2A00_/default.aspx">WS-*</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Architetture+applicative/default.aspx">Architetture applicative</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/XML/default.aspx">XML</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Specifiche+di+Base/default.aspx">Specifiche di Base</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Webcast/default.aspx">Webcast</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/SDL/default.aspx">SDL</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/IDentity+Metasystem/default.aspx">IDentity Metasystem</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/CardSpace/default.aspx">CardSpace</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/ADFS/default.aspx">ADFS</category></item></channel></rss>