{"id":1550,"date":"2014-04-26T12:03:00","date_gmt":"2014-04-26T10:03:00","guid":{"rendered":"http:\/\/blog.nebule.org\/?page_id=1550"},"modified":"2021-10-30T13:59:20","modified_gmt":"2021-10-30T11:59:20","slug":"entites","status":"publish","type":"page","link":"http:\/\/blog.nebule.org\/?page_id=1550","title":{"rendered":"Autorit\u00e9s"},"content":{"rendered":"\n<p>Afin d&rsquo;organiser une certaine intendance autour de la diffusion du code des applications, un certain nombre d&rsquo;entit\u00e9s sont n\u00e9cessaires.<\/p>\n\n\n<p>Le mod\u00e8le utilis\u00e9 est assez classique est simple, la cha\u00eene d&rsquo;autorit\u00e9 est un sch\u00e9ma de parent\u00e9.<\/p>\n\n\n<p>La structure du graphe reconnue est la suivant :<\/p>\n\n\n\n<ul><li>Le ma\u00eetre du tout (<a href=\"https:\/\/blog.nebule.org\/?page_id=1545\">puppetmaster<\/a>)<ul><li>Les autorit\u00e9s de la s\u00e9curit\u00e9<\/li><li>Les autorit\u00e9s du code<\/li><li>Les autorit\u00e9s du temps<\/li><li>Les autorit\u00e9s de l&rsquo;annuaire<\/li><\/ul><\/li><\/ul>\n\n\n\n<p>Les diff\u00e9rentes entit\u00e9s autorit\u00e9s du projet <a rel=\"noreferrer noopener\" href=\"http:\/\/www.nebule.org\" target=\"_blank\">nebule<\/a> :<\/p>\n\n\n\n<ul><li>Le ma\u00eetre du tout : <a href=\"http:\/\/blog.nebule.org\/?page_id=1545\">puppetmaster<\/a><\/li><li>Autorit\u00e9 de la s\u00e9curit\u00e9 : <a rel=\"noreferrer noopener\" href=\"http:\/\/blog.nebule.org\/?page_id=1556\" target=\"_blank\">cerberus<\/a><\/li><li>Autorit\u00e9 du code : <a rel=\"noreferrer noopener\" href=\"http:\/\/blog.nebule.org\/?page_id=1557\" target=\"_blank\">bachue<\/a><\/li><li>Autorit\u00e9 du temps : <a rel=\"noreferrer noopener\" href=\"http:\/\/blog.nebule.org\/?page_id=1559\" target=\"_blank\">kronos<\/a> <\/li><li>Autorit\u00e9 de l&rsquo;annuaire : <a rel=\"noreferrer noopener\" href=\"http:\/\/blog.nebule.org\/?page_id=1558\" target=\"_blank\">asabiyya<\/a><\/li><\/ul>\n\n\n\n<p>Chaque entit\u00e9 ici consid\u00e9r\u00e9e doit \u00eatre un objet entit\u00e9 EID (Entity \nID) valide avec lien de type, un lien de nommage et un lien de \nlocalisation (URL web).<\/p>\n\n\n\n<h2>R\u00e9f\u00e9rences<\/h2>\n\n\n\n<p>Le <em>puppetmaster<\/em> est un RID qui peut \u00eatre remplac\u00e9. Il va \nfaire r\u00e9f\u00e9rence par des liens d\u00e9di\u00e9s vers les diff\u00e9rents d&rsquo;autorit\u00e9s au \nmoyen de RID d\u00e9di\u00e9s :<\/p>\n\n\n\n<ul><li>Autorit\u00e9s de la s\u00e9curit\u00e9<ul><li><code>a4b210d4fb820a5b715509e501e36873eb9e27dca1dd591a98a5fc264fd2238adf4b489d.none.288<\/code><\/li><\/ul><\/li><li>Autorit\u00e9s du code<ul><li><code>2b9dd679451eaca14a50e7a65352f959fc3ad55efc572dcd009c526bc01ab3fe304d8e69.none.288<\/code><\/li><\/ul><\/li><li>Autorit\u00e9s du temps<ul><li><code>bab7966fd5b483f9556ac34e4fac9f778d0014149f196236064931378785d81cae5e7a6e.none.288<\/code><\/li><\/ul><\/li><li>Autorit\u00e9s de l&rsquo;annuaire<ul><li><code>50e1d0348892e7b8a555301983bccdb8a07871843ed8f392d539d3d90f37ea8c2a54d72a.none.288<\/code><\/li><\/ul><\/li><\/ul>\n\n\n\n<p>C&rsquo;est \u00e0 dire que tout EID d\u00e9sign\u00e9 par un de ces RID (l&gt;RID&gt;EID), et sign\u00e9 par le <em>puppetmaster<\/em>, devient une autorit\u00e9 dans le groupe consid\u00e9r\u00e9.<br><\/p>\n\n\n\n<h2>G\u00e9n\u00e9ration<\/h2>\n\n\n\n<p>La g\u00e9n\u00e9ration d&rsquo;une nouvelle cha\u00eene d&rsquo;autorit\u00e9 se fait en deux \u00e9tapes.<\/p>\n\n\n\n<h3>G\u00e9n\u00e9ration des entit\u00e9s<\/h3>\n\n\n\n<p>D\u00e9finir un mot de passe pour le puppetmaster.<\/p>\n\n\n\n<p>G\u00e9n\u00e9rer le puppetmaster :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">openssl genrsa -aes256 -out puppetmaster.key.pem 4096<br>openssl rsa -in puppetmaster.develop.key.pem -outform PEM -pubout -out puppetmaster.develop.pub.pem<\/pre>\n\n\n\n<p>D\u00e9finir les mots de passe pour les autres autorit\u00e9s.<\/p>\n\n\n\n<p>G\u00e9n\u00e9rer les autres autorit\u00e9s :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>for I in security code time directory\ndo\n  openssl genrsa -aes256 -out $I.authority.key.pem 1024\n  openssl rsa -in $I.authority.key.pem -outform PEM -pubout -out $I.authority.pub.pem\ndone<\/code><\/pre>\n\n\n\n<p>Pr\u00e9parer les variables :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">puppetmaster_key_hash=$(sha256sum puppetmaster.key.pem | cut -d' ' -f1)'.sha.256'<br>puppetmaster_pem_hash=$(sha256sum puppetmaster.pub.pem | cut -d' ' -f1)'.sha.256'<br>security_authority_key_hash=$(sha256sum security.authority.key.pem | cut -d' ' -f1)'.sha.256'<br>security_authority_pem_hash=$(sha256sum security.authority.pub.pem | cut -d' ' -f1)'.sha.256'<br>code_authority_key_hash=$(sha256sum code.authority.key.pem | cut -d' ' -f1)'.sha.256'<br>code_authority_pem_hash=$(sha256sum code.authority.pub.pem | cut -d' ' -f1)'.sha.256'<br>time_authority_key_hash=$(sha256sum time.authority.key.pem | cut -d' ' -f1)'.sha.256'<br>time_authority_pem_hash=$(sha256sum time.authority.pub.pem | cut -d' ' -f1)'.sha.256'<br>directory_authority_key_hash=$(sha256sum directory.authority.key.pem | cut -d' ' -f1)'.sha.256'<br>directory_authority_pem_hash=$(sha256sum directory.authority.pub.pem | cut -d' ' -f1)'.sha.256'<\/pre>\n\n\n\n<p>\u00c9crire les objets :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mkdir o<br>cp puppetmaster.key.pem \"o\/$puppetmaster_key_hash\"<br>cp puppetmaster.pub.pem \"o\/$puppetmaster_pem_hash\"<br>cp security_authority.key.pem \"o\/$security_authority_key_hash\"<br>cp security_authority.pub.pem \"o\/$security_authority_pem_hash\"<br>cp code_authority.key.pem \"o\/$code_authority_key_hash\"<br>cp code_authority.pub.pem \"o\/$code_authority_pem_hash\"<br>cp time_authority.key.pem \"o\/$time_authority_key_hash\"<br>cp time_authority.pub.pem \"o\/$time_authority_pem_hash\"<br>cp directory_authority.key.pem \"o\/$directory_authority_key_hash\"<br>cp directory_authority.pub.pem \"o\/$directory_authority_pem_hash\"<\/pre>\n\n\n\n<h3>G\u00e9n\u00e9ration des liens<\/h3>\n\n\n\n<p>Pr\u00e9parer les variables :<\/p>\n\n\n\n<p><code>mkdir l<br><br>function get_nid() {<br>  echo -n $(echo -n \"$1\" \\<br>  | sha256sum \\<br>  | cut -d' ' -f1)'.sha2.256'<br>}<br><br>current_date='0>0'$(date \"+%Y%m%d%H%M%S\")<br>link_prefix='nebule:link\/2:0'<br>nid_typmime=$(get_nid 'nebule\/objet\/type')<br>nid_name=$(get_nid 'nebule\/objet\/nom')<br>nid_rsa=$(get_nid 'application\/x-pem-file')<br>nid_location=$(get_nid 'nebule\/objet\/entite\/localisation')<br>rid_sec='<code>a4b210d4fb820a5b715509e501e36873eb9e27dca1dd591a98a5fc264fd2238adf4b489d.none.288<\/code>'<br>rid_cod='<code>2b9dd679451eaca14a50e7a65352f959fc3ad55efc572dcd009c526bc01ab3fe304d8e69.none.288<\/code>'<br>rid_tim='<code>bab7966fd5b483f9556ac34e4fac9f778d0014149f196236064931378785d81cae5e7a6e.none.288<\/code>'<br>rid_dir='<code>50e1d0348892e7b8a555301983bccdb8a07871843ed8f392d539d3d90f37ea8c2a54d72a.none.288<\/code>'<br>eid_pup=$puppetmaster_pem_hash<br>eid_sec=$security_authority_pem_hash<br>eid_cod=$code_authority_pem_hash<br>eid_tim=$time_authority_pem_hash<br>eid_dir=$directory_authority_pem_hash<\/code><br><code><br>function clink()<br> {<br>   sign=$(echo -n \"$1\" \\<br>     | openssl dgst -hex -\"sha$3\" -sign \"o\/$2\" \\<br>     | cut -d ' ' -f2)<br>   link=\"$1_$2>$sign.sha2.$3\"<br>   nid1=$(echo \"$1\" | cut -d_ -f2 | cut -d\/ -f2 | cut -d '>' -f2)<br>   nid2=$(echo \"$1\" | cut -d_ -f2 | cut -d\/ -f2 | cut -d '>' -f3)<br>   nid3=$(echo \"$1\" | cut -d_ -f2 | cut -d\/ -f2 | cut -d '>' -f4)<br>   [ \"$nid1\" != '' ] &amp;&amp; echo \"$link\" >> \"l\/$nid1\"<br>   [ \"$nid2\" != '' ] &amp;&amp; echo \"$link\" >> \"l\/$nid2\"<br>   [ \"$nid3\" != '' ] &amp;&amp; echo \"$link\" >> \"l\/$nid3\"<br> }<\/code><\/p>\n\n\n\n<p>G\u00e9n\u00e9ration des liens :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">clink \"$link_prefix_$current_date\/l>$eid_pup>nid_rsa>$nid_typemime\" $eid_pup 512<br><br>...<\/pre>\n\n\n\n<h2>\u00c9volutions<\/h2>\n\n\n\n<p>Une \u00e9volution est en cours d&rsquo;int\u00e9gration avec la nouvelle version des\n liens. Si l&rsquo;entit\u00e9 qui chapeaute toutes les autres est unique, chaque \ngroupe d&rsquo;autorit\u00e9s n&rsquo;est plus seulement une entit\u00e9 mais devient un \ngroupe d&rsquo;entit\u00e9s \u00e0 pouvoir identique.<\/p>\n\n\n\n<p>Il est \u00e0 pr\u00e9voir que le ma\u00eetre du tout deviendra aussi, un jour, des autorit\u00e9s globales. Mais la forme n&rsquo;est pas encore d\u00e9fini.<\/p>\n\n\n\n<p>D&rsquo;un point de vue s\u00e9mantique, on quitte progressivement la notion de \nma\u00eetre historique pour aller vers la notion d&rsquo;autorit\u00e9. Outre le rapport\n \u00e0 l&rsquo;esclavage, on est soumis au ma\u00eetre, on se soumet \u00e0 l&rsquo;autorit\u00e9.<\/p>\n\n\n\n<p><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Afin d&rsquo;organiser une certaine intendance autour de la diffusion du code des applications, un certain nombre d&rsquo;entit\u00e9s sont n\u00e9cessaires. Le mod\u00e8le utilis\u00e9 est assez classique est simple, la cha\u00eene d&rsquo;autorit\u00e9 est un sch\u00e9ma de parent\u00e9. La structure du graphe reconnue est la suivant : Le ma\u00eetre du tout (puppetmaster) Les autorit\u00e9s de la s\u00e9curit\u00e9 Les &hellip; <a href=\"http:\/\/blog.nebule.org\/?page_id=1550\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Autorit\u00e9s<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":7,"comment_status":"open","ping_status":"open","template":"","meta":[],"_links":{"self":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/pages\/1550"}],"collection":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1550"}],"version-history":[{"count":7,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/pages\/1550\/revisions"}],"predecessor-version":[{"id":3356,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/pages\/1550\/revisions\/3356"}],"wp:attachment":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}