<?xml version="1.0" encoding="iso-8859-1"?><feed version="0.3" xmlns="http://purl.org/atom/ns#" xml:lang="it-it"><title>PeppeDotNet Blog - Category: XML e derivati</title><link rel="alternate" type="text/html" href="http://www.peppedotnet.it/Blog/"/><tagline type="text/html">www.peppedotnet.it/Blog/</tagline><id>http://www.peppedotnet.it/Blog/</id><modified>2007-3-1T0:53:5+01:00</modified><author><name>Marchi Giuseppe</name><url>http://www.peppedotnet.it/Blog/</url></author><entry><title>XACML - eXtensible Access Control Markup Language</title><id>/Blog/XACML.aspx</id><created>2007-3-1T0:53:5+01:00</created><content type="text/html" mode="escaped">E' da un pò di tempo che volevo postare, le slide per una presentazione di uno studio che ho fatto sul linguaggio XACML, un linguaggio per gestire gli accessi a risorse condivise e per creare policy che regolino tali accessi.
&lt;br /&gt;L'idea è molto interessante, ma prevede un framework che implementi le regole descritte. E' uno standard OASIS e ha gia implentazioni in .NET e Java.
&lt;br /&gt;In poche parole, permette di definire delle regole per controllare l'accesso a delle risorse in ambienti distribuiti e descrive gli algoritmi con cui queste regole devono essere applicate; tutto ciò scrivendo semplicemente dei file in formato XML.
&lt;br /&gt;Questo un esempio di Policy, che permette qualsiasi tipo di azione per soggetti appartenenti al dominio peppedontet.it:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="UTF-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Policy&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="urn:oasis:names:tc:xacml:2.0:policy:schema:os"&lt;/span&gt;
&lt;br /&gt;    xmlns:xsi&lt;span style='color:#0000FF'&gt;="http://www.w3.org/2001/XMLSchema-instance"&lt;/span&gt;
&lt;br /&gt;    xsi:schemaLocation&lt;span style='color:#0000FF'&gt;="urn:oasis:names:tc:xacml:2.0:policy:schema:os http://docs.oasis-
&lt;br /&gt;    open.org/xacml/access_control-xacml-2.0-policy-schema-os.xsd"&lt;/span&gt;
&lt;br /&gt;    PolicyId&lt;span style='color:#0000FF'&gt;="urn:oasis:names:tc:example:SimplePolicy1"&lt;/span&gt;
&lt;br /&gt;    RuleCombiningAlgId&lt;span style='color:#0000FF'&gt;="identifier:rule-combining-algorithm:deny-overrides"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Description&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        PeppeDotNet access control policy
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Description&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Target/&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Rule&lt;/span&gt;&lt;span style='color:#FF0000'&gt; RuleId&lt;span style='color:#0000FF'&gt;= "urn:oasis:names:tc:xacml:2.0:example:SimpleRule1"&lt;/span&gt; Effect&lt;span style='color:#0000FF'&gt;="Permit"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Description&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;            Ogni soggetto con un'e-mail del dominio peppedotnet.it
&lt;br /&gt;            puo' effettuare ogni tipo di azioni su qualsiasi risorsa.
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Description&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Target&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;            &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Subjects&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;                &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Subject&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;	
&lt;br /&gt;                    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;SubjectMatch&lt;/span&gt;&lt;span style='color:#FF0000'&gt; MatchId&lt;span style='color:#0000FF'&gt;="urn:oasis:names:tc:xacml:1.0:function:rfc822Name-match"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;                        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;AttributeValue&lt;/span&gt;&lt;span style='color:#FF0000'&gt; DataType&lt;span style='color:#0000FF'&gt;="http://www.w3.org/2001/XMLSchema#string"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;                            peppedotnet.it
&lt;br /&gt;                        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;AttributeValue&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;                        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;SubjectAttributeDesignator&lt;/span&gt;&lt;span style='color:#FF0000'&gt;
&lt;br /&gt;                            AttributeId&lt;span style='color:#0000FF'&gt;="urn:oasis:names:tc:xacml:1.0:subject:subject-id"&lt;/span&gt;
&lt;br /&gt;                            DataType&lt;span style='color:#0000FF'&gt;="urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;                    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;SubjectMatch&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;                &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Subject&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;            &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Subjects&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Target&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Rule&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Policy&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Come potete vedere, risulta facile sia leggere che scrivere regole di questo tipo. La cosa fantastica, come tutte le tecnologie figlie dell'XML, è che il linguaggio di policy è estensibile !
&lt;br /&gt;Vi lascio quindi&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.peppedotnet.it/zip/XACML.ppt" title="XACML slides"&gt;le slide&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.peppedotnet.it/zip/XACML.zip" title="XAML slides e file di esempio"&gt;e i file di esempio&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;per vostro uso e consumo ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/XML.aspx" title="TAG: XML"&gt;XML&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/XACML.aspx" title="TAG: XACML"&gt;XACML&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/XACML.aspx" /><issued>2007-3-1T0:53:5+01:00</issued><modified>2007-3-1T0:53:5+01:00</modified></entry><entry><title>Le specifiche RSS 2.0</title><id>/Blog/Specifiche_rss_2.aspx</id><created>2004-12-11T18:35:22+01:00</created><content type="text/html" mode="escaped">Ho appena upppato un &lt;a href="articolo4.aspx" title="Descrizione delle specifiche RSS 2.0"&gt;nuovo articolo&lt;/a&gt; sulla descrizione delle specifiche RSS 2.0, in concomitanza con la pubblicazione della libreria che vi dicevo: &lt;a href="http://www.peppedotnet.it/dotRSS/" title="dotRSS"&gt;dotRSS&lt;/a&gt;, e con la nascita della nuova sezione Projects.
&lt;br /&gt;Se qualcuno vuole inserire dei suoi progetti all'interno di questa nuova sezione, non deve far altro che &lt;a href="mailto:info@peppedotnet.it" title="contattami"&gt;contattarmi&lt;/a&gt; !
&lt;br /&gt;
&lt;br /&gt;Riguardo a dotRSS, oltre alla documentazione, scaricabile in formato .chm o &lt;a href="http://www.peppedotnet.it/dotRSS/Documentation/index.html" title="dotRSS - Documentazione on-line"&gt;consultabile on-line&lt;/a&gt;, ho messo disponibili anche una serie di esempi (sia in C# che in VB.NET) per utilizzarla al meglio.
&lt;br /&gt;
&lt;br /&gt;Vi lascio inoltre dei pezzi di codice, per invogliarvi ad utilizzarla !
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Creare un nuovo feed RSS, e salvarlo sul file system&lt;/b&gt;
&lt;br /&gt;RssDocument rss = new RssDocument();&lt;br /&gt;
RssWebMaster peppe = new RssWebmaster("Marchi Giuseppe", "info@peppedotnet.it");&lt;br /&gt;
rss.Title = "Feed di prova";&lt;br /&gt;
rss.Link = "http://www.peppedotnet.it/prova.xml"&lt;br /&gt;
rss.Description = "Descrizione del nostro feed"&lt;br /&gt;
rss.WebMaster = peppe;&lt;br /&gt;
...&lt;br /&gt;
rss.Save(Server.MapPath("feed/prova.xml"));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;stampa a video come Stream di dati&lt;/b&gt;
&lt;br /&gt;RssDocument rss = new RssDocument();&lt;br /&gt;
rss.Load(Server.MapPath("http://www.peppedotnet.it/public/generale.xml"));&lt;br /&gt;
rss.Save(Response.OutputStream);&lt;br /&gt;
Response.ContentType = "text/xml";&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;caricare un feed rss creato dinamicamente&lt;/b&gt;
&lt;br /&gt;WebClient client = new WebClient();&lt;br /&gt;
Stream data = client.OpenRead("http://www.peppedotnet.it/rss_art20.aspx");&lt;br /&gt;
RssDocument rss = new RssDocument();&lt;br /&gt;
rss.Load(data);&lt;br /&gt;
rss.Save(Response.OutputStream);&lt;br /&gt;
Response.ContentType = "text/xml";&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;Il resto ve lo lascio da scoprire !!!</content><link rel="alternate" type="text/html" href="/Blog/Specifiche_rss_2.aspx" /><issued>2004-12-11T18:35:22+01:00</issued><modified>2004-12-11T18:35:22+01:00</modified></entry></feed>