<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>OpenID Connect OAuth Server d&#233;di&#233; </title>
	<link>https://oa.dnc.global/</link>
	<description>OAuth Server by DnC (OAuthSD) est un serveur d'authentification qui impl&#233;mente OAuth 2.0 et OpenID Connect.
Avec la connexion unique, une entit&#233; permet aux utilisateurs de ses applications de naviguer de l'une &#224; l'autre de fa&#231;on trans-parente. En centralisant l'authentification des applications et des utilisateurs, un serveur OpenID Connect permet de contr&#244;ler parfaitement l'acc&#232;s des applications et des utilisateurs aux informations sensibles.</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net</generator>

	<image>
		<title>&lt;small&gt;OpenID Connect&lt;/small&gt; OAuth Server &lt;small&gt; d&#233;di&#233; &lt;/small&gt;</title>
		<url>https://static.oa.dnc.global/local/cache-vignettes/L144xH126/siteon0-a21bf.png?1733820003</url>
		<link>https://oa.dnc.global/</link>
		<height>126</height>
		<width>144</width>
	</image>



<item xml:lang="fr">
		<title>API HTTP REST + TreeQL</title>
		<link>https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html#apihttpresttreeql</link>
		<guid isPermaLink="true">https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html#apihttpresttreeql</guid>
		<dc:date>2019-10-11T06:27:21Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>DnC</dc:creator>



		<description>
&lt;p&gt;OAuthSD expose maintenant une deuxi&#232;me API HTTP REST. Comme la premi&#232;re (qui reste disponible) cette API permet d'automatiser certaines t&#226;ches autour du serveur d'authentification. Une application d'administration (supervision) peut ainsi contr&#244;ler les donn&#233;es du serveur.
&lt;br class='autobr' /&gt;
Cette nouvelle API s'appuie sur php-crud-api. Les objets sont manipul&#233;s sous des format scalaires ou json simples. Elle offre plus de possibilit&#233;s de requ&#234;tes en suivant le format TreeQL. &lt;br class='autobr' /&gt;
Remarque : Cette API pourrait remplacer l'API (...)&lt;/p&gt;


-
&lt;a href="https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html" rel="directory"&gt;Techniques et code du serveur OAuthSD&lt;/a&gt;


		</description>


 <content:encoded>&lt;img class='spip_logo spip_logo_right spip_logos' alt=&#034;&#034; style='float:right' src='https://static.oa.dnc.global/local/cache-vignettes/L141xH150/arton169-561fa.jpg?1733972200' width='141' height='150' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;OAuthSD expose maintenant une deuxi&#232;me API HTTP REST. Comme la premi&#232;re (qui reste disponible) cette API permet d'automatiser certaines t&#226;ches autour du serveur d'authentification. Une application d'administration (supervision) peut ainsi contr&#244;ler les donn&#233;es du serveur.&lt;br class='autobr' /&gt;
Cette nouvelle API s'appuie sur &lt;a href=&#034;https://github.com/mevdschee/php-crud-api&#034; class='spip_out' rel='external'&gt;php-crud-api&lt;/a&gt;. Les objets sont manipul&#233;s sous des format scalaires ou json simples. Elle offre plus de possibilit&#233;s de requ&#234;tes en suivant le format TreeQL.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Remarque : Cette API pourrait remplacer l'&lt;a href='https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html#apihttprest' class='spip_in'&gt;API HTTP REST&lt;/a&gt; &#224; moyen terme.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;S&#233;curisation de l'acc&#232;s &#224; l'API et transmission du r&#244;le de l'utilisateur final&lt;/h3&gt;
&lt;p&gt;La s&#233;curisation de l'acc&#232;s &#224; l'API HTTP REST + TreeQL est effectu&#233; &#224; l'aide d'un jeton d'identit&#233; au format JWT &#233;mis par l'application cliente.&lt;/p&gt;
&lt;p&gt;Ce jeton transmet le r&#244;le de l'utilisateur au moyen de la d&#233;claration 'scope' prenant l'une des valeurs 'admin', 'writer', 'reader' and 'none'. Pour cela (voir &lt;a href='https://static.oa.dnc.global/-Sujets-communs-a-Oauth-2-et-OpenID-Connect-.html#definitiondesscopesoidcetgeneralitessurleurutilisationparlesapplications' class='spip_in'&gt;D&#233;finition des scopes OIDC et g&#233;n&#233;ralit&#233;s sur leur utilisation par les applications&lt;/a&gt;) :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; l'application cliente doit utiliser OIDC et initialiser le flux d'autorisation avec code avec la demande d'autorisation (requested_scope) 'scope=privileges',
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; L'application cliente doit avoir &#233;t&#233; enregistr&#233;e avec la valeur 'privileges' dans la liste de Scopes disponibles (Available scopes),
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; une valeur parmi 'admin', 'writer', 'reader' and 'none' doit avoir &#233;t&#233; enregistr&#233;e dans la table users pour l'utilisateur final consid&#233;r&#233;.&lt;/p&gt;
&lt;p&gt;Le jeton peut &#234;tre pass&#233; dans l'URL (m&#233;thode GET), par POST ou par la m&#233;thode Authorization : Bearer.&lt;/p&gt;
&lt;p&gt;Exemple d'appel avec la m&#233;thode GET :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/http.api/api.php/records/spip_users/1/?token=eyJ0eXAiOiJKV...&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;L'API valide le jeton JWT par introspection. OAuthSD garantit ainsi l'authenticit&#233; de l'application cliente. Voir : &lt;a href='https://static.oa.dnc.global/-Authentifier-l-application-.html#verificationdeloriginedelarequeterecueparunserveurderessource' class='spip_in'&gt;V&#233;rification de l'origine de la requ&#234;te re&#231;ue par un serveur de ressource&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;En cas d'erreur d'authentification, l'API retourne un code HTTP 403 Forbidden et un corps vide.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Limitation de l'acc&#232;s aux tables et aux champs&lt;/h3&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; seules les tables 'users', 'clients', 'scopes', 'oidc_logs' sont accessibles.&lt;/p&gt;
&lt;p&gt;L'authentification de l'utilisateur final conduit &#224; d&#233;finir les r&#244;les 'admin', 'writer', 'reader' et 'none'. Le r&#244;le 'admin' peut effectuer l'ensemble des op&#233;rations.&lt;/p&gt;
&lt;p&gt;Pour le r&#244;le &#034;writer&#034; : &lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; dans la table 'public_keys', la seule op&#233;ration permise est la lecture de la cl&#233; cl&#233; publique.
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; dans la table 'oauth_clients', l'acc&#232;s au champ password est interdit. &lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; dans la table 'oauth_users', l'acc&#232;s au champ client_secret est interdit.&lt;/p&gt;
&lt;p&gt;Pour le r&#244;le 'reader' :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; les restriction d'acc&#232;s sont les m&#234;mes que le r&#244;le 'writer',
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; seules les op&#233;rations 'read' et 'list' sont autoris&#233;es.&lt;/p&gt;
&lt;p&gt;Le r&#244;le 'none' ne peut que lire la table 'oidc_logs'.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Op&#233;rations CRUD + List : R&#233;f&#233;rence de l'API&lt;/h3&gt;&lt;iframe src=&#034;https://oa.dnc.global/http.api/spec/swagger/static/&#034; width=&#034;100%&#034; height=&#034;10000&#034; frameborder=&#034;0&#034;
&gt;
&lt;/iframe&gt;
&lt;p&gt;&lt;strong&gt;Voyez &#233;galement :&lt;/strong&gt;
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; &lt;a href=&#034;https://oa.dnc.global/http.api/spec/swagger/static/&#034; class='spip_url spip_out auto' rel='nofollow external'&gt;https://oa.dnc.global/http.api/spec/swagger/static/&lt;/a&gt;
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; &lt;a href=&#034;https://editor.swagger.io/?url=https://oa.dnc.global/http.api/api.php/openapi&#034; class='spip_url spip_out auto' rel='nofollow external'&gt;https://editor.swagger.io/?url=https://oa.dnc.global/http.api/api.php/openapi&lt;/a&gt;&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;S&#233;lections avanc&#233;es&lt;/h3&gt;
&lt;p&gt;Sur les op&#233;rations de liste, vous pouvez appliquer des filtres et des jointures.&lt;/p&gt;
&lt;p&gt;Les exemples suivants supposent la table suivante :&lt;/p&gt;
&lt;table class=&#034;spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id247d_c0'&gt;posts &lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id247d_c0'&gt;id&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id247d_c0'&gt;titre&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id247d_c0'&gt;content&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;message&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;h3 class=&#034;spip&#034;&gt;Filtres&lt;/h3&gt;
&lt;p&gt;Les filtres fournissent une fonctionnalit&#233; de recherche sur les appels de liste, en utilisant le param&#232;tre &#034;filter&#034;. Vous devez sp&#233;cifier le nom de la colonne, une virgule, le type de correspondance, une autre virgule et la valeur que vous souhaitez filtrer.&lt;/p&gt;
&lt;p&gt;Types de match support&#233;s :&lt;/p&gt;
&lt;p&gt;&#034;cs&#034; : contient une cha&#238;ne (la cha&#238;ne contient une valeur)&lt;br class='autobr' /&gt;
&#034;sw&#034; : commence par (cha&#238;ne commence par valeur)&lt;br class='autobr' /&gt;
&#034;ew&#034; : se termine par (cha&#238;ne se termine par valeur)&lt;br class='autobr' /&gt;
&#034;eq&#034; : &#233;gal (la cha&#238;ne ou le nombre correspond exactement)&lt;br class='autobr' /&gt;
&#034;lt&#034; : inf&#233;rieur &#224; (nombre inf&#233;rieur &#224; la valeur)&lt;br class='autobr' /&gt;
&#034;le&#034; : inf&#233;rieur ou &#233;gal (le nombre est inf&#233;rieur ou &#233;gal &#224; la valeur)&lt;br class='autobr' /&gt;
&#034;ge&#034; : sup&#233;rieur ou &#233;gal (le nombre est sup&#233;rieur ou &#233;gal &#224; la valeur)&lt;br class='autobr' /&gt;
&#034;gt&#034; : sup&#233;rieur &#224; (nombre sup&#233;rieur &#224; la valeur)&lt;br class='autobr' /&gt;
&#034;bt&#034; : entre (le nombre est entre deux valeurs s&#233;par&#233;es par une virgule)&lt;br class='autobr' /&gt;
&#034;in&#034; : in (le nombre ou la cha&#238;ne est dans une liste de valeurs s&#233;par&#233;es par des virgules)&lt;br class='autobr' /&gt;
&#034;is&#034; : est null (le champ contient la valeur &#034;NULL&#034;)&lt;/p&gt;
&lt;p&gt;Vous pouvez annuler tous les filtres en ajoutant un caract&#232;re &#034;n&#034;, afin que &#034;eq&#034; devienne &#034;neq&#034;. Exemples d'utilisation du filtre :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;GET / records / categories? Filter = nom, eq, Internet&lt;br /&gt;
GET / records / categories? Filter = nom, sw, Inter&lt;br /&gt;
GET / records / categories? Filter = id, le, 1&lt;br /&gt;
GET / records / categories? Filter = id, ngt, 2&lt;br /&gt;
GET / records / categories? Filter = id, bt, 1,1&lt;/code&gt;&lt;/div&gt;&lt;h3 class=&#034;spip&#034;&gt;Filtres multiples&lt;/h3&gt;
&lt;p&gt;Les filtres peuvent &#234;tre appliqu&#233;s en r&#233;p&#233;tant le param&#232;tre &#034;filter&#034; dans l'URL. Par exemple l'URL suivante :&lt;/p&gt;
&lt;pre&gt;GET / records / categories ? Filter = id, gt, 1 &amp; filter = id, lt, 3&lt;/pre&gt;
&lt;p&gt;demandera toutes les cat&#233;gories &#034;o&#249; id&gt; 1 et id &lt;3&#034;. Si vous vouliez &#034;o&#249; id = 2 ou id = 4&#034;, vous devriez &#233;crire :&lt;/p&gt;
&lt;pre&gt;GET / enregistrements / cat&#233;gories ? Filter1 = id, eq, 2 &amp; filter2 = id, eq, 4&lt;/pre&gt;
&lt;p&gt;Comme vous le voyez, nous avons ajout&#233; un num&#233;ro au param&#232;tre &#034;filter&#034; pour indiquer que &#034;OR&#034; au lieu de &#034;AND&#034; doit &#234;tre appliqu&#233;. Notez que vous pouvez &#233;galement r&#233;p&#233;ter &#034;filter1&#034; et cr&#233;er un &#034;ET&#034; dans un &#034;OU&#034;. Comme vous pouvez &#233;galement aller plus loin en ajoutant une lettre (a-f), vous pouvez cr&#233;er presque n'importe quel arbre de conditions relativement complexe.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notes :&lt;/strong&gt;
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Vous ne pouvez filtrer que sur la table demand&#233;e (pas sur la table incluse) et les filtres ne sont appliqu&#233;s qu'aux appels de liste.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;S&#233;lection de colonne&lt;/h3&gt;
&lt;p&gt;Par d&#233;faut, toutes les colonnes sont s&#233;lectionn&#233;es. Avec le param&#232;tre &#034;include&#034;, vous pouvez s&#233;lectionner des colonnes sp&#233;cifiques. Vous pouvez utiliser un point pour s&#233;parer le nom de la table du nom de la colonne. Plusieurs colonnes doivent &#234;tre s&#233;par&#233;es par des virgules. Un ast&#233;risque (&#034;*&#034;) peut &#234;tre utilis&#233; comme caract&#232;re g&#233;n&#233;rique pour indiquer &#034;toutes les colonnes&#034;. Semblable &#224; &#034;include&#034;, vous pouvez utiliser le param&#232;tre &#034;exclude&#034; pour supprimer certaines colonnes :&lt;/p&gt;
&lt;pre&gt;
GET / enregistrements / cat&#233;gories / 1 ? Include = nom
GET /records/categories/1 ?include=categories.name
GET /records/categories/1 ?exclude=categories.id
&lt;/pre&gt;
&lt;p&gt;Sortie :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt; {&lt;br /&gt; &#034;nom&#034;: &#034;Internet&#034;&lt;br /&gt; }&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Notes :&lt;/strong&gt;
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Les colonnes utilis&#233;es pour inclure des entit&#233;s associ&#233;es sont automatiquement ajout&#233;es et ne peuvent pas &#234;tre omises de la sortie.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Tri&lt;/h3&gt;
&lt;p&gt;Avec le param&#232;tre &#034;order&#034;, vous pouvez trier. Par d&#233;faut, le tri s'effectue par ordre croissant, mais en sp&#233;cifiant &#034;desc&#034;, cela peut &#234;tre invers&#233; :&lt;/p&gt;
&lt;pre&gt;GET / records / categories ? Order = nom, desc&lt;/pre&gt;&lt;pre&gt;GET / enregistrements / cat&#233;gories ? Order = id, desc &amp; order = name&lt;/pre&gt;
&lt;p&gt;Sortie :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt; {&lt;br /&gt; &#034;records&#034;: [&lt;br /&gt; {&lt;br /&gt; &#034;id&#034;: 3&lt;br /&gt; &#034;name&#034;: &#034;d&#233;veloppement Web&#034;&lt;br /&gt; },&lt;br /&gt; {&lt;br /&gt; &#034;id&#034;: 1&lt;br /&gt; &#034;nom&#034;: &#034;Internet&#034;&lt;br /&gt; }&lt;br /&gt; ]&lt;br /&gt; }&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Notes :&lt;/strong&gt;
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Vous pouvez trier sur plusieurs champs en utilisant plusieurs param&#232;tres &#034;ordre&#034;. Vous ne pouvez pas commander sur des colonnes &#034;jointes&#034;.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Taille limite&lt;/h3&gt;
&lt;p&gt;Le param&#232;tre &#034;size&#034; limite le nombre d'enregistrements renvoy&#233;s. Ceci peut &#234;tre utilis&#233; pour les N premi&#232;res listes avec le param&#232;tre &#034;order&#034; (utilisez l'ordre d&#233;croissant).&lt;/p&gt;
&lt;pre&gt;GET / records / categories ? Order = id, desc &amp; size = 1&lt;/pre&gt;
&lt;p&gt;Sortie :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt; {&lt;br /&gt; &#034;records&#034;: [&lt;br /&gt; {&lt;br /&gt; &#034;id&#034;: 3&lt;br /&gt; &#034;name&#034;: &#034;d&#233;veloppement Web&#034;&lt;br /&gt; }&lt;br /&gt; ]&lt;br /&gt; }&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Notes :&lt;/strong&gt;
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Si vous souhaitez &#233;galement conna&#238;tre le nombre total d'enregistrements, vous pouvez utiliser le param&#232;tre &#034;page&#034;.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Pagination&lt;/h3&gt;
&lt;p&gt;Le param&#232;tre &#034;page&#034; contient la page demand&#233;e. La taille de page par d&#233;faut est 20, mais peut &#234;tre ajust&#233;e (par exemple &#224; 50).&lt;/p&gt;
&lt;pre&gt;GET / records / categories ? Order = id &amp; page = 1&lt;/pre&gt;&lt;pre&gt;GET / records / categories ? Order = id &amp; page = 1,50&lt;/pre&gt;
&lt;p&gt;Sortie :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt; {&lt;br /&gt; &#034;records&#034;: [&lt;br /&gt; {&lt;br /&gt; &#034;id&#034;: 1&lt;br /&gt; &#034;nom&#034;: &#034;Internet&#034;&lt;br /&gt; },&lt;br /&gt; {&lt;br /&gt; &#034;id&#034;: 3&lt;br /&gt; &#034;name&#034;: &#034;d&#233;veloppement Web&#034;&lt;br /&gt; }&lt;br /&gt; ],&lt;br /&gt; &#034;r&#233;sultats&#034;: 2&lt;br /&gt; }&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Notes :&lt;/strong&gt;
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; les pages non command&#233;es ne pouvant pas &#234;tre pagin&#233;es, elles seront class&#233;es par cl&#233; primaire.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Jointures&lt;/h3&gt;
&lt;p&gt;Supposons que vous ayez une table des publications qui comporte des commentaires (formul&#233;s par les utilisateurs) et que les publications puissent avoir des balises. Les exemples suivants supposent le jeu de tables suivant :&lt;/p&gt;
&lt;table class=&#034;spip&#034;&gt;
&lt;thead&gt;&lt;tr class='row_first'&gt;&lt;th id='id1c65_c0'&gt;posts &lt;/th&gt;&lt;th id='id1c65_c1'&gt;commentaires &lt;/th&gt;&lt;th id='id1c65_c2'&gt;utilisateurs &lt;/th&gt;&lt;th id='id1c65_c3'&gt;post_tags &lt;/th&gt;&lt;th id='id1c65_c4'&gt;tags&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id1c65_c0'&gt;id&lt;/td&gt;
&lt;td headers='id1c65_c1'&gt;id&lt;/td&gt;
&lt;td headers='id1c65_c2'&gt;id&lt;/td&gt;
&lt;td headers='id1c65_c3'&gt;id&lt;/td&gt;
&lt;td headers='id1c65_c4'&gt;id&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id1c65_c0'&gt;titre&lt;/td&gt;
&lt;td headers='id1c65_c1'&gt;post_id&lt;/td&gt;
&lt;td headers='id1c65_c2'&gt;nom d'utilisateur&lt;/td&gt;
&lt;td headers='id1c65_c3'&gt;post_id&lt;/td&gt;
&lt;td headers='id1c65_c4'&gt;nom&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_odd odd'&gt;
&lt;td headers='id1c65_c0'&gt;content&lt;/td&gt;
&lt;td headers='id1c65_c1'&gt;user_id&lt;/td&gt;
&lt;td headers='id1c65_c2'&gt;phone&lt;/td&gt;
&lt;td headers='id1c65_c3'&gt;tag_id&lt;/td&gt;
&lt;td headers='id1c65_c4'&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr class='row_even even'&gt;
&lt;td headers='id1c65_c0'&gt;message&lt;/td&gt;
&lt;td headers='id1c65_c1'&gt;cr&#233;&#233;&lt;/td&gt;
&lt;td headers='id1c65_c2'&gt;&lt;/td&gt;
&lt;td headers='id1c65_c3'&gt;&lt;/td&gt;
&lt;td headers='id1c65_c4'&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Lorsque vous souhaitez r&#233;pertorier les publications avec leurs commentaires, les utilisateurs et les balises, vous pouvez demander deux chemins &#034;arborescents&#034; :&lt;/p&gt;
&lt;p&gt;messages -&gt; commentaires -&gt; utilisateurs&lt;br class='autobr' /&gt;
posts -&gt; post_tags -&gt; tags&lt;br class='autobr' /&gt;
Ces chemins ont la m&#234;me racine et cette demande peut &#234;tre &#233;crite au format URL comme suit :&lt;/p&gt;
&lt;pre&gt;GET / records / posts ? Join = commentaires, utilisateurs &amp; tags = join&lt;/pre&gt;
&lt;p&gt;Ici, vous &#234;tes autoris&#233; &#224; laisser de c&#244;t&#233; la table interm&#233;diaire qui lie les publications aux balises. Dans cet exemple, les trois types de relation de table (hasMany, belongsTo et hasAndBelongsToMany) sont en jeu :&lt;/p&gt;
&lt;p&gt;&#034;post&#034; a beaucoup de &#034;commentaires&#034;&lt;br class='autobr' /&gt;
&#034;commentaire&#034; appartient &#224; &#034;utilisateur&#034;&lt;br class='autobr' /&gt;
&#034;post&#034; a et appartient &#224; beaucoup de &#034;tags&#034;&lt;/p&gt;
&lt;p&gt;Cela peut entra&#238;ner les donn&#233;es JSON suivantes :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;{&lt;br /&gt; &#034;records&#034;: [&lt;br /&gt; {&lt;br /&gt; &#034;id&#034;: 1,&lt;br /&gt; &#034;title&#034;: &#034;Bonjour tout le monde!&#034;,&lt;br /&gt; &#034;content&#034;: &#034;Bienvenue dans le premier message.&#034;,&lt;br /&gt; &#034;created&#034;: &#034;2018-03-05T20: 12: 56Z&#034;,&lt;br /&gt; &#034;commentaires&#034;: [&lt;br /&gt; {&lt;br /&gt; id: 1,&lt;br /&gt; post_id: 1,&lt;br /&gt; identifiant d'utilisateur: {&lt;br /&gt; id: 1,&lt;br /&gt; nom d'utilisateur: &#034;mevdschee&#034;,&lt;br /&gt; t&#233;l&#233;phone: null,&lt;br /&gt; },&lt;br /&gt; message: &#034;Salut!&#034;&lt;br /&gt; },&lt;br /&gt; {&lt;br /&gt; id: 2,&lt;br /&gt; post_id: 1,&lt;br /&gt; identifiant d'utilisateur: {&lt;br /&gt; id: 1,&lt;br /&gt; nom d'utilisateur: &#034;mevdschee&#034;,&lt;br /&gt; t&#233;l&#233;phone: null,&lt;br /&gt; },&lt;br /&gt; message: &#034;Salut encore!&#034;&lt;br /&gt; }&lt;br /&gt; ],&lt;br /&gt; &#034;Mots cl&#233;s&#034;: []&lt;br /&gt; },&lt;br /&gt; {&lt;br /&gt; &#034;id&#034;: 2,&lt;br /&gt; &#034;title&#034;: &#034;Le noir est le nouveau rouge&#034;,&lt;br /&gt; &#034;content&#034;: &#034;Ceci est le deuxi&#232;me message.&#034;,&lt;br /&gt; &#034;created&#034;: &#034;2018-03-06T21: 34: 01Z&#034;,&lt;br /&gt; &#034;commentaires&#034;: [],&lt;br /&gt; &#034;Mots cl&#233;s&#034;: [&lt;br /&gt; {&lt;br /&gt; id: 1,&lt;br /&gt; message: &#034;dr&#244;le&#034;&lt;br /&gt; },&lt;br /&gt; {&lt;br /&gt; id: 2,&lt;br /&gt; message: &#034;informatif&#034;&lt;br /&gt; }&lt;br /&gt; ]&lt;br /&gt; }&lt;br /&gt; ]&lt;br /&gt;
}&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Vous voyez que les relations &#034;belongsTo&#034; sont d&#233;tect&#233;es et la valeur de la cl&#233; &#233;trang&#232;re est remplac&#233;e par l'objet r&#233;f&#233;renc&#233;. Dans le cas de &#034;hasMany&#034; et &#034;hasAndBelongsToMany&#034;, le nom de la table est utilis&#233; comme nouvelle propri&#233;t&#233; de l'objet.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Op&#233;rations par lots&lt;/h3&gt;
&lt;p&gt;Lorsque vous souhaitez cr&#233;er, lire, mettre &#224; jour ou supprimer, vous pouvez sp&#233;cifier plusieurs valeurs de cl&#233; primaire dans l'URL. Vous devez &#233;galement envoyer un tableau au lieu d'un objet dans le corps de la demande pour cr&#233;er et mettre &#224; jour.&lt;/p&gt;
&lt;p&gt;Pour lire un enregistrement de cette table, la demande peut &#234;tre &#233;crite au format URL sous la forme suivante :&lt;/p&gt;
&lt;pre&gt;GET / records / posts / 1,2&lt;/pre&gt;
&lt;p&gt;Le r&#233;sultat peut &#234;tre :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;[&lt;br /&gt; {&lt;br /&gt; &#034;id&#034;: 1,&lt;br /&gt; &#034;title&#034;: &#034;Bonjour tout le monde!&#034;,&lt;br /&gt; &#034;content&#034;: &#034;Bienvenue dans le premier message.&#034;,&lt;br /&gt; &#034;created&#034;: &#034;2018-03-05T20: 12: 56Z&#034;&lt;br /&gt; },&lt;br /&gt; {&lt;br /&gt; &#034;id&#034;: 2,&lt;br /&gt; &#034;title&#034;: &#034;Le noir est le nouveau rouge&#034;,&lt;br /&gt; &#034;content&#034;: &#034;Ceci est le deuxi&#232;me message.&#034;,&lt;br /&gt; &#034;created&#034;: &#034;2018-03-06T21: 34: 01Z&#034;&lt;br /&gt; }&lt;br /&gt;
]&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;De m&#234;me, lorsque vous souhaitez effectuer une mise &#224; jour par lot, la demande au format URL est &#233;crite comme suit :&lt;/p&gt;
&lt;pre&gt;PUT / records / posts / 1,2&lt;/pre&gt;
&lt;p&gt;O&#249; &#034;1&#034; et &#034;2&#034; sont les valeurs des cl&#233;s primaires des enregistrements que vous souhaitez mettre &#224; jour. Le corps devrait contenir le m&#234;me nombre d'objets qu'il y a de cl&#233;s primaires dans l'URL :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;[&lt;br /&gt; {&lt;br /&gt; &#034;titre&#034;: &#034;Titre ajust&#233; pour ID 1&#034;&lt;br /&gt; },&lt;br /&gt; {&lt;br /&gt; &#034;titre&#034;: &#034;Titre ajust&#233; pour ID 2&#034;&lt;br /&gt; }&lt;br /&gt;
]&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Ceci ajuste les titres des messages. Et les valeurs de retour sont le nombre de lignes d&#233;finies :&lt;/p&gt;
&lt;p&gt;1,1&lt;/p&gt;
&lt;p&gt;Ce qui signifie qu'il y avait deux op&#233;rations de mise &#224; jour et que chacune d'entre elles avait d&#233;fini une ligne. Les op&#233;rations en mode batch utilisent des transactions de base de donn&#233;es, de sorte qu'elles r&#233;ussissent ou &#233;chouent (les transactions r&#233;ussies sont renvoy&#233;es).&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>API HTTP REST</title>
		<link>https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html#apihttprest</link>
		<guid isPermaLink="true">https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html#apihttprest</guid>
		<dc:date>2019-06-25T17:30:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>DnC</dc:creator>



		<description>
&lt;p&gt;OAuthSD expose une API HTTP REST qui permet d'automatiser certaines t&#226;ches autour du serveur d'authentification. Une application d'administration (supervision) peut ainsi contr&#244;ler les donn&#233;es du serveur. L'API s'appuie sur HTTPFoundation de Symphony. Les objets sont manipul&#233;s au format Collection+JSON ou sous un format json simple. &lt;br class='autobr' /&gt;
Remarque : Il existe &#233;galement une API HTTP REST + TreeQL. &lt;br class='autobr' /&gt;
L'API r&#233;pond &#224; une unique action &#171; http.api &#187; qui va g&#233;rer trois param&#232;tres : &lt;br class='autobr' /&gt; - un format : c'est le nom de (...)&lt;/p&gt;


-
&lt;a href="https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html" rel="directory"&gt;Techniques et code du serveur OAuthSD&lt;/a&gt;


		</description>


 <content:encoded>&lt;img class='spip_logo spip_logo_right spip_logos' alt=&#034;&#034; style='float:right' src='https://static.oa.dnc.global/local/cache-vignettes/L141xH150/arton88-bbb3e.jpg?1733972200' width='141' height='150' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;OAuthSD expose une API HTTP REST qui permet d'automatiser certaines t&#226;ches autour du serveur d'authentification. Une application d'administration (supervision) peut ainsi contr&#244;ler les donn&#233;es du serveur.&lt;br class='autobr' /&gt;
L'API s'appuie sur HTTPFoundation de Symphony. Les objets sont manipul&#233;s au format &lt;a href=&#034;https://github.com/collection-json/spec#6-data-types&#034; class='spip_out' rel='external'&gt;Collection+JSON&lt;/a&gt; ou sous un format json simple.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;p&gt;Remarque : Il existe &#233;galement une &lt;a href='https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html#apihttpresttreeql' class='spip_in'&gt;API HTTP REST + TreeQL&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;L'API r&#233;pond &#224; une unique &lt;strong&gt;action&lt;/strong&gt; &#171; http.api &#187; qui va g&#233;rer trois param&#232;tres :&lt;/p&gt;
&lt;p&gt; - un &lt;strong&gt;format&lt;/strong&gt; : c'est le nom de l'API r&#233;ellement impl&#233;ment&#233;e : json, collectionjson.&lt;br class='autobr' /&gt; - un &lt;strong&gt;type&lt;/strong&gt; (ou une collection) : le type des donn&#233;es qu'on veut utiliser : auteurs, users, clients ...&lt;br class='autobr' /&gt; - une &lt;strong&gt;ressource&lt;/strong&gt; : l'identifiant unique d'un contenu (un nombre entier).&lt;/p&gt;
&lt;p&gt;Ces trois param&#232;tres sont tout simplement ajout&#233;s &#224; la suite dans l'URL, s&#233;par&#233;s par des &#171; / &#187;. Seul le premier est toujours obligatoire, les autres sont ajout&#233;s suivant ce que l'on veut manipuler. On se retrouve alors avec trois familles d'Url de requ&#234;tes.&lt;/p&gt;
&lt;p&gt;Exemple de requ&#234;te d'action :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/web/http.api/collectionjson/users/3&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;La deuxi&#232;me forme peut &#233;galement &#234;tre compl&#233;t&#233;e par des param&#232;tres d'URL. Exemple :&lt;/p&gt;
&lt;p&gt;Exemple de requ&#234;te avec param&#232;tres :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/web/http.api/collectionjson/users/?offset=10&amp;length=10&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;L'API permet d'effectuer les op&#233;rations CRUD&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href='#nb1' class='spip_note' rel='appendix' title='En r&#233;alit&#233; ce n'est pas &#233;quivalent. Voir :' id='nh1'&gt;1&lt;/a&gt;]&lt;/span&gt; sur une table de la base de donn&#233;es en fonction de la m&#233;thode de la requ&#234;te HTTP GET, POST, PUT ou DELETE, si toutefois les permissions sont accord&#233;es.&lt;/p&gt;
&lt;p&gt;L'API s'efforce de r&#233;pondre &#224; la &lt;a href=&#034;https://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-16&#034; class='spip_out' rel='external'&gt;sp&#233;cification de s&#233;mantique HTTP 1.1&lt;/a&gt;.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Types&lt;/h3&gt;
&lt;p&gt;Pour s'interfacer avec une application de supervision, OAuth SD expose les types :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; oidc_logs, &lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; users, &lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; clients
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; auteurs. &lt;br class='autobr' /&gt;
D'une fa&#231;on g&#233;n&#233;rale, les types correspondent aux tables &#233;ponymes.&lt;br class='autobr' /&gt;
Sauf exception (voir la constante de configuration API_HTTP_CHAMPS_SENSIBLES), tous les champs d'une table peuvent &#234;tre manipul&#233;s.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Formats&lt;/h3&gt;
&lt;p&gt;Dans le cadre d'OAuthSD, les objets sont manipul&#233;s aux formats suivants :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;collectionjson&lt;/strong&gt;&lt;br class='autobr' /&gt;
Ce format est assez lourd, retournant les donn&#233;es sous forme d'arrays associatifs et d'objets, ce qui permet de nombreuses applications. Voir : &lt;a href=&#034;https://github.com/collection-json/spec&#034; class='spip_out' rel='external'&gt;Collection+JSON&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Exemple : la requ&#234;te :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/web/http.api/collectionjson/oidc_logs/?offset=3000&amp;length=2&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;retourne :&lt;/p&gt;
&lt;div class=&#034;coloration_code code&#034;&gt;&lt;div class=&#034;spip_javascript code&#034;&gt;&lt;div class=&#034;javascript&#034;&gt;&lt;ol&gt;&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;collection&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;version&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1.0&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;href&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;https://oa.dnc.global/web/http.api/collectionjson/oidc_logs/?offset=3000&amp;length=2&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;items&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#91;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;href&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;https://oa.dnc.global/web/http.api/collectionjson/&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;links&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#91;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;rel&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;edit&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;href&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;https://oa.dnc.global/web/http.api/collectionjson/&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;rel&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;alternate&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;type&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;text/html&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;href&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;https://oa.dnc.global/web/urls_propres2_dist&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;data&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#91;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;id_oidc_log&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;3400&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;remote_addr&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;173.208.157.186&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;state&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;client_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;testopenid4&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;user_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Unk&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;datetime&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;origin&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Authorize&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;message&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09 - 173.208.157.186 - Information : Authorize : Begin&lt;span style=&#034;color: #000099; font-weight: bold;&#034;&gt;\n&lt;/span&gt;&lt;span style=&#034;color: #000099; font-weight: bold;&#034;&gt;\n&lt;/span&gt;&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;level&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;weight&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;0&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;errnum&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;href&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;https://oa.dnc.global/web/http.api/collectionjson/&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;links&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#91;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;rel&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;edit&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;href&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;https://oa.dnc.global/web/http.api/collectionjson/&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;rel&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;alternate&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;type&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;text/html&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;href&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;https://oa.dnc.global/web/urls_propres2_dist&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;data&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#91;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;id_oidc_log&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;3401&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;remote_addr&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;173.208.157.186&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;state&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;fc06ce8d03c189c7af1167d2e16e4a9a&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;client_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;testopenid4&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;user_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Unk&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;datetime&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;origin&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Authorize&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;message&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09 - 173.208.157.186 - Information : Authorize : Begin authentification for client = testopenid4&lt;span style=&#034;color: #000099; font-weight: bold;&#034;&gt;\n&lt;/span&gt;&lt;span style=&#034;color: #000099; font-weight: bold;&#034;&gt;\n&lt;/span&gt;&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;level&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;weight&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;name&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;errnum&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;value&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;110&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;objects&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#91;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;id_oidc_log&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;3400&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;remote_addr&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;173.208.157.186&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;state&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;client_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;testopenid4&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;user_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Unk&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;datetime&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;origin&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Authorize&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;message&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09 - 173.208.157.186 - Information : Authorize : Begin&lt;span style=&#034;color: #000099; font-weight: bold;&#034;&gt;\n&lt;/span&gt;&lt;span style=&#034;color: #000099; font-weight: bold;&#034;&gt;\n&lt;/span&gt;&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;level&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;weight&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;0&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;errnum&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;id_oidc_log&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;3401&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;remote_addr&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;173.208.157.186&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;state&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;fc06ce8d03c189c7af1167d2e16e4a9a&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;client_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;testopenid4&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;user_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Unk&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;datetime&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;origin&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Authorize&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;message&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09 - 173.208.157.186 - Information : Authorize : Begin authentification for client = testopenid4&lt;span style=&#034;color: #000099; font-weight: bold;&#034;&gt;\n&lt;/span&gt;&lt;span style=&#034;color: #000099; font-weight: bold;&#034;&gt;\n&lt;/span&gt;&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;level&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;weight&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;errnum&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;110&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class='download code_download'&gt;&lt;a href='https://static.oa.dnc.global/local/cache-code/4d84f6f91b706ca93f5b21cde5399282.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Format json&lt;/strong&gt;&lt;br class='autobr' /&gt;
Retourne un simple array. Exemple : la requ&#234;te :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/web/http.api/json/oidc_logs/?offset=3000&amp;length=2&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;retourne les m&#234;mes &#233;l&#233;ments sous une forme tr&#232;s compacte :&lt;/p&gt;
&lt;div class=&#034;coloration_code code&#034;&gt;&lt;div class=&#034;spip_javascript code&#034;&gt;&lt;div class=&#034;javascript&#034;&gt;&lt;ol&gt;&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#91;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;id_oidc_log&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;3400&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;remote_addr&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;173.208.157.186&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;state&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;client_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;testopenid4&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;user_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Unk&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;datetime&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;origin&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Authorize&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;message&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09 - 173.208.157.186 - Information : Authorize : Begin&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;level&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;weight&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;0&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;errnum&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;id_oidc_log&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;3401&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;remote_addr&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;173.208.157.186&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;state&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;fc06ce8d03c189c7af1167d2e16e4a9a&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;client_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;testopenid4&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;user_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Unk&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;datetime&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;origin&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Authorize&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;message&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;2019-03-06 03:04:09 - 173.208.157.186 - Information : Authorize : Begin authentification for client = testopenid4&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;level&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;weight&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;errnum&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;110&#034;&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class='download code_download'&gt;&lt;a href='https://static.oa.dnc.global/local/cache-code/299f57c1348140a1ecd20c2815a650d1.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Le format collectionjson est int&#233;ressant en lecture. En &#233;criture, on pr&#233;f&#233;rera le format json qui suffit &#224; d&#233;crire les objets &#224; enregistrer.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Actions&lt;/h3&gt;
&lt;p&gt;Suivant le paradigme HTTP Rest, les actions d&#233;coulent de la m&#233;thode HTTP utilis&#233;e pour appeler l'API : get, post, put ou delete.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Formes g&#233;n&#233;rales des requ&#234;tes GET&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Afficher la liste des collections disponibles sous le format indiqu&#233; :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/web/http.api/&lt;format&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Liste le contenu de la collection &#034;type&#034; :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/web/http.api/&lt;format&gt;/&lt;type&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Liste les &#233;l&#233;ments s&#233;lectionn&#233;s &#224; l'aide des param&#232;tres d'URL indiqu&#233;s :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/web/http.api/&lt;format&gt;/&lt;type&gt;?&lt;param&#232;tres&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Acc&#232;s &#224; une ressource pr&#233;cise :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/web/http.api/collectionjson/&lt;type&gt;/NN&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;NN est la valeur de l'identifiant (champ id_type, cl&#233; unique) de l'enregistrement dans la table.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Requ&#234;tes avec POST, PUT et DELETE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ces requ&#234;tes doivent &#234;tre g&#233;n&#233;r&#233;es programmatiquement : par exemple avec cURL c&#244;t&#233; serveur ou en Javascript c&#244;t&#233; client. On trouve couramment des biblioth&#232;que exposant des fonctions de ce type :&lt;/p&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; post_collection($requete, $reponse)&lt;br class='autobr' /&gt;
Cr&#233;er une nouvelle ressource dans la collection (cr&#233;er un nouvel enregistrement dans la table).&lt;/p&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; put_ressource($requete, $reponse)&lt;br class='autobr' /&gt;
Ce cas est sensiblement le m&#234;me que le pr&#233;c&#233;dent, &#224; ceci pr&#232;s que l'on travaille sur la modification d'une ressource pr&#233;cise.&lt;/p&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; delete_ressource($requete, $reponse)&lt;br class='autobr' /&gt;
Supprimer d&#233;finitivement une ressource.&lt;/p&gt;
&lt;p&gt;Pour la transmission des donn&#233;es aux requ&#234;tes avec POST et PUT, deux formats sont possibles :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; application/json :&lt;/p&gt;
&lt;div class=&#034;coloration_code code&#034;&gt;&lt;div class=&#034;spip_php code&#034;&gt;&lt;div class=&#034;php&#034;&gt;&lt;ol&gt;&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$data&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&lt;/span&gt; &lt;a href=&#034;http://www.php.net/array&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'client_id'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'testtest'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'client_secret'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'TheBigSecret'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'redirect_uri'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'https://oa.dnc.global/web/?action=oauth'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'grant_types'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'authorization_code'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'scope'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'openid sli'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&lt;/span&gt; &lt;a href=&#034;http://www.php.net/curl_init&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_init&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt;&#034;https://oa.dnc.global/web/http.api/json/clients/&#034;&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_RETURNTRANSFER&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;span style=&#034;color: #009900; font-weight: bold;&#034;&gt;true&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_TIMEOUT&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;span style=&#034;color: #cc66cc;&#034;&gt;10&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_POST&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;span style=&#034;color: #009900; font-weight: bold;&#034;&gt;true&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$data_string&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&lt;/span&gt; &lt;a href=&#034;http://www.php.net/json_encode&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;json_encode&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$data&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_POSTFIELDS&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$data_string&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_HTTPHEADER&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;a href=&#034;http://www.php.net/array&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'Content-Type: application/json'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'Content-Length: '&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;.&lt;/span&gt; &lt;a href=&#034;http://www.php.net/strlen&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;strlen&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$data_string&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'Accept: application/json'&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class='download code_download'&gt;&lt;a href='https://static.oa.dnc.global/local/cache-code/753882bf5ce1ddee7e3016858bdc6d81.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; application/x-www-form-urlencoded :&lt;/p&gt;
&lt;div class=&#034;coloration_code code&#034;&gt;&lt;div class=&#034;spip_php code&#034;&gt;&lt;div class=&#034;php&#034;&gt;&lt;ol&gt;&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #339933;&#034;&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_HTTPHEADER&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;a href=&#034;http://www.php.net/array&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'Content-Type: application/x-www-form-urlencoded'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'Accept: application/json'&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_POSTFIELDS&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;a href=&#034;http://www.php.net/http_build_query&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;http_build_query&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$data&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class='download code_download'&gt;&lt;a href='https://static.oa.dnc.global/local/cache-code/d5522cba063ca434dd736313eaa83667.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Actions possibles&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Toutes les combinaisons format/type/action ne sont pas disponibles.&lt;/p&gt;
&lt;p&gt;En premier lieu, l'acc&#232;s &#224; l'API est subordonn&#233; &#224; l'authentification de l'application cliente et de l'utilisateur final par OAuthSD.&lt;/p&gt;
&lt;p&gt;Ensuite, toutes les combinaisons type/action ne sont pas autoris&#233;es. Des droits sont d&#233;finis pour chaque action en fonction du profil de l'auteur (administrateur d'applications) authentifi&#233;.&lt;/p&gt;
&lt;p&gt;Enfin, certaines actions ne sont pas (ou pas encore) impl&#233;ment&#233;es.&lt;/p&gt;
&lt;p&gt;&lt;span class='spip_document_50 spip_documents spip_documents_center'&gt;
&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L500xH158/api_http_tableau-d0088.png?1733972200' width='500' height='158' alt=&#034;&#034; /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Protection des donn&#233;es&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Les donn&#233;es tr&#232;s sensibles (conditionnant la s&#233;curit&#233; de l'authentification) sont prot&#233;g&#233;es, elles ne peuvent &#234;tre vues ni a fortiori modifi&#233;es &#224; l'aide de l'API.&lt;/p&gt;
&lt;p&gt;Dans l'&#233;tat actuel, les champs suivants, d&#233;finis par la constante API_HTTP_CHAMPS_SENSIBLES, ne sont pas transmis : client_secret, client_ip, password'.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;clients (Applications clientes)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Requ&#234;tes GET&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le type clients permet de nombreuses requ&#234;tes GET avec les formats collectionjson et json, notamment avec les param&#232;tres offset et length. La requ&#234;te suivante est pratique pour g&#233;n&#233;rer des tableaux pagin&#233;s :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/web/http.api/collectionjson/clients/?offset=100&amp;length=10&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Pour assurer la s&#233;curit&#233; de l'authentification :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; les donn&#233;e sensibles &#034;client_secret&#034; et &#034;client_ip&#034; ne seront pas retourn&#233;es,
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; les paires de cl&#233;s publiques/priv&#233;es associ&#233;es ne peuvent &#234;tre atteintes,&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Edition : requ&#234;tes POST, PUT, DELETE&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Exemple d'&#233;criture d'un nouvel enregistrement en PHP avec cURL. Les donn&#233;es sont transmises au format application/x-www-form-urlencoded&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href='#nb2' class='spip_note' rel='appendix' title='Un int&#233;r&#234;t de ce format est de permettre de transmettre l'identifiant de (...)' id='nh2'&gt;2&lt;/a&gt;]&lt;/span&gt; :&lt;/p&gt;
&lt;div class=&#034;coloration_code code&#034;&gt;&lt;div class=&#034;spip_php code&#034;&gt;&lt;div class=&#034;php&#034;&gt;&lt;ol&gt;&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$data&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&lt;/span&gt; &lt;a href=&#034;http://www.php.net/array&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'client_id'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'testtest'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'client_secret'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'TheBigSecret'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'redirect_uri'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'https://oa.dnc.global/web/?action=oauth'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'grant_types'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'authorization_code'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'scope'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'openid sli'&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&lt;/span&gt; &lt;a href=&#034;http://www.php.net/curl_init&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_init&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt;&#034;https://oa.dnc.global/web/http.api/json/clients/&#034;&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_RETURNTRANSFER&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;span style=&#034;color: #009900; font-weight: bold;&#034;&gt;true&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_TIMEOUT&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;span style=&#034;color: #cc66cc;&#034;&gt;10&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_POST&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;span style=&#034;color: #009900; font-weight: bold;&#034;&gt;true&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_HTTPHEADER&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;a href=&#034;http://www.php.net/array&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt;'&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; Content-Type: application/x-www-form-urlencoded'&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'Accept: application/json'&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;a href=&#034;http://www.php.net/curl_setopt&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_setopt&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; CURLOPT_POSTFIELDS&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;a href=&#034;http://www.php.net/http_build_query&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;http_build_query&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$data&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$res&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&lt;/span&gt; &lt;a href=&#034;http://www.php.net/curl_exec&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;curl_exec&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$h&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #339933;&#034;&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class='download code_download'&gt;&lt;a href='https://static.oa.dnc.global/local/cache-code/6553dcfc6be53552cf0969c46e670dd9.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;En HTML cela &#233;quivaudrait &#224; :&lt;/p&gt;
&lt;div class=&#034;coloration_code code&#034;&gt;&lt;div class=&#034;spip_php code&#034;&gt;&lt;div class=&#034;php&#034;&gt;&lt;ol&gt;&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;&lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$data&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&lt;/span&gt; &lt;a href=&#034;http://www.php.net/array&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'client_id'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'testtest'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'client_secret'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'TheBigSecret'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'redirect_uri'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'https://oidc.dnc.global/web/?action=oauth'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'grant_types'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'authorization_code'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'scope'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'openid sli'&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;?&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;form id=&#034;test_api_post&#034; name=&#034;test_api_post&#034; method=&#034;post&#034; action=&#034;https://oidc.dnc.global/web/http.api/json/clients/&#034;&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;input type=&#034;hidden&#034; name=&#034;DBGSESSID&#034; value=&#034;435347910947900005@127.0.0.1;d=1&#034;&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;&lt;?php&lt;/span&gt; &lt;span style=&#034;color: #b1b100;&#034;&gt;foreach&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$data&lt;/span&gt; &lt;span style=&#034;color: #b1b100;&#034;&gt;as&lt;/span&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$name&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$value&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt; &lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;?&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;input type=&#034;hidden&#034; id=&#034;&lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;&lt;?php&lt;/span&gt; &lt;span style=&#034;color: #b1b100;&#034;&gt;echo&lt;/span&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$name&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;?&gt;&lt;/span&gt;&#034; name=&#034;&lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;&lt;?php&lt;/span&gt; &lt;span style=&#034;color: #b1b100;&#034;&gt;echo&lt;/span&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$name&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;?&gt;&lt;/span&gt;&#034; value=&#034;&lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;&lt;?php&lt;/span&gt; &lt;span style=&#034;color: #b1b100;&#034;&gt;echo&lt;/span&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$value&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;?&gt;&lt;/span&gt;&#034;&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;&lt;?php&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt; &lt;span style=&#034;color: #000000; font-weight: bold;&#034;&gt;?&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;input type=&#034;submit&#034;&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;/form&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class='download code_download'&gt;&lt;a href='https://static.oa.dnc.global/local/cache-code/47d3199e53c3a4ce78c60a0d0ead7fff.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;En cas de succ&#232;s, la table clients est mise &#224; jour et l'API retourne dans le corps de la r&#233;ponse un array Json avec le client_id et l'id_client (index unique de la table clients) :&lt;/p&gt;
&lt;div class=&#034;coloration_code code&#034;&gt;&lt;div class=&#034;spip_javascript code&#034;&gt;&lt;div class=&#034;javascript&#034;&gt;&lt;ol&gt;&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt; client_id&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;testtest&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;id_client&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt;&lt;span style=&#034;color: #CC0000;&#034;&gt;43&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class='download code_download'&gt;&lt;a href='https://static.oa.dnc.global/local/cache-code/1c4256fec19064740a49ce85823048a9.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;En cas de duplication, la r&#233;ponse suivante est retourn&#233;e :&lt;/p&gt;
&lt;div class=&#034;coloration_code code&#034;&gt;&lt;div class=&#034;spip_javascript code&#034;&gt;&lt;div class=&#034;javascript&#034;&gt;&lt;ol&gt;&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;collection&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;version&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;1.0&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;href&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;https://oa.dnc.global/web/http.api/json/clients/&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;error&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;title&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Erreur&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;code&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #CC0000;&#034;&gt;500&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;errors&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#91;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;title&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;Erreur SQL 1062 Duplicate entry 'testtest' for key 'client_id'&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #3366CC;&#034;&gt;&#034;code&#034;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;span style=&#034;color: #CC0000;&#034;&gt;500&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#93;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class='download code_download'&gt;&lt;a href='https://static.oa.dnc.global/local/cache-code/a2fb06a44f1dafa55139ea2a41f7ff34.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h3 class=&#034;spip&#034;&gt;users (Utilisateurs finaux)&lt;/h3&gt;
&lt;p&gt;Le type users permet de nombreuses requ&#234;tes GET avec les formats collectionjson et json, notamment avec les param&#232;tres offset et length. La requ&#234;te suivante est pratique pour g&#233;n&#233;rer des tableaux pagin&#233;s :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://oa.dnc.global/web/http.api/collectionjson/users/?offset=100&amp;length=10&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Notez que la donn&#233;e sensible &#034;password&#034; ne sera pas retourn&#233;e.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enregistrement d'un utilisateur final sur le serveur OIDC&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le type users permet l'&#233;criture (requ&#234;tes POST, PUT et DELETE).&lt;/p&gt;
&lt;p&gt;Pour fonctionner, le contr&#244;leur Authorize du serveur serveur OIDC n'a besoin que d'un username (ou d'un e-mail) et d'un mot de passe. Le contr&#244;leur exploite &#233;galement le contenu des autres champs fournis s'ils existent dans la table users et ne sont pas nuls. &lt;br class='autobr' /&gt;
En particulier, le champ scope peut &#234;tre utilis&#233; pour transmettre des autorisations propres &#224; l'utilisateur.&lt;/p&gt;
&lt;p&gt;Pour assurer la s&#233;curit&#233; de l'authentification :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; lors de l'&#233;criture, le secret client transmis en clair est enregistr&#233; sous forme de password_hash avec l'algorithme PASSWORD_BCRYPT.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;auteurs (Administrateurs d'applications ou &#034;superviseurs&#034;)&lt;/h3&gt;&lt;h3 class=&#034;spip&#034;&gt;oidc_logs (&#233;v&#233;nements)&lt;/h3&gt;
&lt;p&gt;Le type oidc_logs n'autorise que les requ&#234;tes suivantes, sous les formats json et collectionjson :&lt;/p&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Les &#233;v&#233;nements &#233;tant tri&#233;s par date d&#233;croissante, retourne length evenements depuis le rang 0 (donc les derniers &#233;v&#233;nements) :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://.../http.api/&lt;format&gt;/oidc_logs/?length=&lt;nombre&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Les &#233;v&#233;nements &#233;tant tri&#233;s par date d&#233;croissante, retourne length evenements depuis le rang offset :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://.../http.api/&lt;format&gt;/oidc_logs/?offset=&lt;rang&gt;&amp;length=&lt;nombre&gt; &lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Les &#233;v&#233;nements &#233;tant tri&#233;s par date d&#233;croissante, retourne length &#233;v&#233;nements autour du plus proche du temps indiqu&#233; par le timeserial ts :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://.../http.api/&lt;format&gt;/oidc_logs/?ts=&lt;timeserial&gt;&amp;length=&lt;nombre&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Retourne les &#233;v&#232;nements entre les timeserials tmin et tmax :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://.../http.api/&lt;format&gt;/oidc_logs/?tmin=&lt;timeserial&gt;&amp;tmax=&lt;timeserial&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Notes :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Il est interdit de lister l'ensemble de la collection.
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; length est limit&#233; &#224; 10000, sans g&#233;n&#233;ration d'erreur.&lt;/p&gt;
&lt;p&gt;&lt;a id=&#034;secuapirest&#034;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div style=&#034;clear:both;&#034;&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3 class=&#034;spip&#034;&gt;S&#233;curisation de l'acc&#232;s &#224; l'API&lt;/h3&gt;
&lt;p&gt;Deux configurations sont envisag&#233;es :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Le serveur qui porte l'API est accessible uniquement par des applications de confiance &#224; travers un canal s&#251;r (par exemple au sein d'un r&#233;seau local d'entreprise bien isol&#233;). Dans ce cas, la constante API_HTTP_AUTHENTICATE est fix&#233;e &#224; 'false' et des v&#233;rifications simples sont effectu&#233;es sur l'IP et/ou le domaine du client origine de la requ&#234;te. Les constantes API_HTTP_CLIENT_IP et API_HTTP_CLIENT_HOST d&#233;finissent les valeurs attendues.
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Le serveur se trouve sur un r&#233;seau public. Dans ce cas, la constante API_HTTP_AUTHENTICATE est fix&#233;e &#224; 'true' et l'application cliente doit s'authentifier avec le protocole OAuth 2.0. Pour ce faire, l'application cliente devra &#234;tre enregistr&#233;e sur ce ce serveur OAuthSD avec les flux Authorization Code et &lt;a href='https://static.oa.dnc.global/-Autorisation-de-serveur-a-serveur-Client-Credentials-Grant-.html#oauth20autorisationdeserveuraserveurexemplecomplet' class='spip_in'&gt;Client Credentials&lt;/a&gt;. Notez que les contraintes d&#233;finies par les constantes API_HTTP_CLIENT_IP et API_HTTP_CLIENT_HOST s'appliquent &#233;galement.&lt;/p&gt;
&lt;p&gt;Lorsqu'une application cliente veut acc&#233;der &#224; l'API au nom d'un utilisateur final :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; l'application authentifie son utilisateur final avec le flux &lt;a href='https://static.oa.dnc.global/-OpenID-Connect-Autorisation-via-un-code-Authorization-Code-Flow-.html' class='spip_in'&gt;Authorization Code&lt;/a&gt;,
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; si l'utilisateur final est authentifi&#233;, et seulement dans ce cas, l'application demande une autorisation d'acc&#232;s en son nom propre avec le flux &lt;a href='https://static.oa.dnc.global/-Autorisation-de-serveur-a-serveur-Client-Credentials-Grant-.html#oauth20autorisationdeserveuraserveurexemplecomplet' class='spip_in'&gt;Client Credentials&lt;/a&gt;, puis passe le jeton d'acc&#232;s obtenu dans l'appel &#224; l'API, &lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; l'API v&#233;rifie le jeton d'acc&#232;s par introspection.&lt;/p&gt;
&lt;p&gt;En fait, l'API peut aussi bien valider un jeton d'acc&#232;s qu'un jeton d'identification. L'application cliente peut donc s'authentifier directement avec le jeton d'identit&#233; obtenu avec le flux Authorization Code.&lt;/p&gt;
&lt;p&gt;Lorsqu'une application cliente veut acc&#233;der &#224; l'API en son nom propre :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; l'application demande une autorisation d'acc&#232;s avec le flux Client Credentials, puis passe le jeton d'acc&#232;s obtenu dans l'appel &#224; l'API, &lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; l'API v&#233;rifie le jeton d'acc&#232;s par introspection.&lt;/p&gt;
&lt;p&gt;Le jeton peut &#234;tre pass&#233; &#224; l'API sous le nom 'token' par les m&#233;thode POST ou GET, mais il est recommand&#233; d'utiliser la m&#233;thode Auth Bearer.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Options&lt;/h3&gt;
&lt;p&gt;Les options suivantes sont d&#233;finies dans le fichier collectionjsonoauthsd_options.php :&lt;/p&gt;
&lt;p&gt;/* Cette API permet l'acc&#232;s &#224; la plupart des donn&#233;es manipul&#233;es par SPIP, les &lt;br class='autobr' /&gt;
types correspondant aux tables &#233;ponymes de la base de donn&#233;es. Cependant, autant &lt;br class='autobr' /&gt;
pour des raisons pratiques que de s&#233;curit&#233;, les types servis sont limit&#233;s &#224; ceux &lt;br class='autobr' /&gt;
qui seront d&#233;finis ici.&lt;br class='autobr' /&gt;
Si la chaine est '', tous les types seront autoris&#233;s.&lt;br class='autobr' /&gt;
Attention : le type est au singulier !*/ &lt;br class='autobr' /&gt;
define('API_HTTP_TYPES_AUTORISES','oidc_log,user,client,auteur,credential') ;&lt;/p&gt;
&lt;p&gt;/* S'agissant d'un serveur d'authentification, certaines donn&#233;es sont particuli&#232;rement &lt;br class='autobr' /&gt;
sensibles et doivent rester sanctuaris&#233;es.*/ &lt;br class='autobr' /&gt;
define('API_HTTP_CHAMPS_SENSIBLES','client_secret,client_ip,password') ;&lt;/p&gt;
&lt;p&gt;/* Si l'API doit &#234;tre accessible autrement que par un client de confiance par &lt;br class='autobr' /&gt;
un canal s&#251;r, il faut authentifier l'origine de la requ&#234;te. &lt;br class='autobr' /&gt;
Cette constante peut aussi &#234;tre fix&#233;e &#224; false pendant le d&#233;veloppement */&lt;br class='autobr' /&gt;
define('API_HTTP_AUTHENTICATE', false) ;&lt;/p&gt;
&lt;p&gt;/* Si API_HTTP_AUTHENTICATE est fix&#233; &#224; true, l'authentification du client requiert &lt;br class='autobr' /&gt;
un jeton d'identit&#233; valide. Celui-ci contient la d&#233;claration sub &#233;gale &#224; l'id du &lt;br class='autobr' /&gt;
client (client_id). Si la constante suivante est non nulle, sub devra &#234;tre &#233;gal &#224; &lt;br class='autobr' /&gt;
la valeur indiqu&#233;e. */&lt;br class='autobr' /&gt;
define('API_HTTP_CLIENT_ID', '') ;&lt;/p&gt;
&lt;p&gt;/* Si API_HTTP_AUTHENTICATE a &#233;t&#233; fix&#233; &#224; false, il convient d'appliquer tout ou &lt;br class='autobr' /&gt;
partie des v&#233;rifications suivantes : */&lt;br class='autobr' /&gt;
define('API_HTTP_CLIENT_IP', '') ; // V&#233;rifier que la requ&#234;te vient de l'IP indiqu&#233;e si non nulle&lt;br class='autobr' /&gt;
define('API_HTTP_CLIENT_HOST', '') ; // V&#233;rifier que la requ&#234;te vient du host indiqu&#233; si non nul&lt;/p&gt;
&lt;p&gt;/* Si la requ&#234;te ne d&#233;finit pas le param&#232;tre limit, les requ&#234;tes acceptant le &lt;br class='autobr' /&gt;
param&#232;tre limit utiliseront la valeur suivante par d&#233;faut :*/&lt;br class='autobr' /&gt;
define ('API_DEFAULT_LENGTH', 100) ;&lt;/p&gt;
&lt;p&gt;/* Nombre maximum de lignes que peut retourner une requ&#234;te (dans le cas o&#249; le param&#232;tre &lt;br class='autobr' /&gt;
limit n'est pas requis, comme quand la requ&#234;te n'accepte que les param&#232;tres tmin et/ou tmax) :*/&lt;br class='autobr' /&gt;
define ('API_MAX_ITEMS_RETURNED', 1000) ;&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Utilisation de l'API par OAuthSD lui-m&#234;me&lt;/h3&gt;
&lt;p&gt;OAuthSD utilise l'API notamment pour :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; La pr&#233;sentation des &#233;v&#233;nements : charger les donn&#233;es de la table oidc_logs avec Ajax pour les pr&#233;senter en scrolling continu. Voir le tableau de la page &lt;a href=&#034;https://oa.dnc.global/web/spip.php?page=evenements_stats&#034; class='spip_out' rel='external'&gt;Statistiques&lt;/a&gt;.
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L8xH11/puce-32883.gif?1733817730' width='8' height='11' class='puce' alt=&#034;-&#034; /&gt; Permettre la supervision du serveur par une application ext&#233;rieure.&lt;/p&gt;&lt;/div&gt;
		&lt;hr /&gt;
		&lt;div class='rss_notes'&gt;&lt;div id='nb1'&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href='#nh1' class='spip_note' title='Notes 1' rev='appendix'&gt;1&lt;/a&gt;] &lt;/span&gt;En r&#233;alit&#233; ce n'est pas &#233;quivalent. Voir : &lt;a href=&#034;http://restcookbook.com/HTTP%20Methods/put-vs-post/&#034; class='spip_url spip_out auto' rel='nofollow external'&gt;http://restcookbook.com/HTTP%20Methods/put-vs-post/&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div id='nb2'&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href='#nh2' class='spip_note' title='Notes 2' rev='appendix'&gt;2&lt;/a&gt;] &lt;/span&gt;Un int&#233;r&#234;t de ce format est de permettre de transmettre l'identifiant de session du debugger&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Stylage des formulaires d'identification</title>
		<link>https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html#stylagedesformulairesdidentification</link>
		<guid isPermaLink="true">https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html#stylagedesformulairesdidentification</guid>
		<dc:date>2019-03-17T15:41:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>DnC</dc:creator>



		<description>
&lt;p&gt;OAuthSD offre deux moyens d'apdater les formulaires &#224; la charte graphique d'une organisation : my.css f&#233;finit les styles propres &#224; une organisation, qui s'appliqueront &#224; tous les clients inscrits sur le serveur, le champ css de la table Clients sera &#233;ventuellement utilis&#233; pour attribuer un stylage particulier &#224; une application. &lt;br class='autobr' /&gt;
Structure g&#233;n&#233;rale des formulaires &lt;br class='autobr' /&gt;
Le corps des formulaires pr&#233;sente la structure HTML suivante : &lt;br class='autobr' /&gt; ... ... ... (...)&lt;/p&gt;


-
&lt;a href="https://static.oa.dnc.global/-Techniques-et-code-du-serveur-OAuthSD-.html" rel="directory"&gt;Techniques et code du serveur OAuthSD&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_chapo'&gt;&lt;p&gt;OAuthSD offre deux moyens d'apdater les formulaires &#224; la charte graphique d'une organisation :
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/squelettes-dist/puce.gif' width=&#034;8&#034; height=&#034;11&#034; class=&#034;puce&#034; alt=&#034;-&#034; /&gt; my.css f&#233;finit les styles propres &#224; une organisation, qui s'appliqueront &#224; tous les clients inscrits sur le serveur,
&lt;br /&gt;&lt;img src='https://static.oa.dnc.global/squelettes-dist/puce.gif' width=&#034;8&#034; height=&#034;11&#034; class=&#034;puce&#034; alt=&#034;-&#034; /&gt; le champ css de la table Clients sera &#233;ventuellement utilis&#233; pour attribuer un stylage particulier &#224; une application.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&#034;spip&#034;&gt;Structure g&#233;n&#233;rale des formulaires&lt;/h3&gt;
&lt;p&gt;Le corps des formulaires pr&#233;sente la structure HTML suivante :&lt;/p&gt;
&lt;div class=&#034;coloration_code code&#034;&gt;&lt;div class=&#034;spip_css code&#034;&gt;&lt;div class=&#034;css&#034;&gt;&lt;ol&gt;&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;...&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;div id&lt;span style=&#034;color: #00AA00;&#034;&gt;=&lt;/span&gt;&lt;span style=&#034;color: #ff0000;&#034;&gt;&#034;page&#034;&lt;/span&gt; class&lt;span style=&#034;color: #00AA00;&#034;&gt;=&lt;/span&gt;&lt;span style=&#034;color: #ff0000;&#034;&gt;&#034;(le nom de la m&#233;thode)&#034;&lt;/span&gt;&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;div id&lt;span style=&#034;color: #00AA00;&#034;&gt;=&lt;/span&gt;&lt;span style=&#034;color: #ff0000;&#034;&gt;&#034;top&#034;&lt;/span&gt;&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt;&lt;/div&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;div id&lt;span style=&#034;color: #00AA00;&#034;&gt;=&lt;/span&gt;&lt;span style=&#034;color: #ff0000;&#034;&gt;&#034;container&#034;&lt;/span&gt;&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;h3 class&lt;span style=&#034;color: #00AA00;&#034;&gt;=&lt;/span&gt;&lt;span style=&#034;color: #ff0000;&#034;&gt;&#034;head-title&#034;&lt;/span&gt;&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt; ... &lt;/h3&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; ...&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;div class&lt;span style=&#034;color: #00AA00;&#034;&gt;=&lt;/span&gt;&lt;span style=&#034;color: #ff0000;&#034;&gt;&#034;error&#034;&lt;/span&gt;&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt; ... &lt;/div&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; ...&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;/div&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;div id&lt;span style=&#034;color: #00AA00;&#034;&gt;=&lt;/span&gt;&lt;span style=&#034;color: #ff0000;&#034;&gt;&#034;bottom&#034;&lt;/span&gt;&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; ...&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;/div&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;/div&lt;span style=&#034;color: #00AA00;&#034;&gt;&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class='download code_download'&gt;&lt;a href='https://static.oa.dnc.global/local/cache-code/16e66ce665d390344b13caa714e884fd.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h3 class=&#034;spip&#034;&gt;Adaptation de la charte graphique&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Styles par d&#233;faut&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Par d&#233;faut, les styles des formulaires d'identification sont d&#233;finis dans la section head de chacun d'eux.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fichier my.css&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;S'il existe un fichier /my.css &#224; la racine du serveur, celui-ci est adopt&#233; comme feuille de style.&lt;/p&gt;
&lt;p&gt;Ce fichier pourra &#234;tre utilis&#233; pour ins&#233;rer un logo de l'organisation. Le champ #top est sans doute bien adapt&#233; &#224; recevoir une image en background.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Champ css de la table Clients&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Qu'il s'agisse de la feuille de style ou du d&#233;faut, les styles peuvent &#234;tre compl&#233;t&#233;s ou surcharg&#233;s par le contenu du champ css de la table clients. Dans l'exemple ci-dessous, la variable $thecss contient les donn&#233;es de ce champ.&lt;/p&gt;
&lt;p&gt;Ces styles intervenant en final, ils l'emportent sur les pr&#233;c&#233;dents.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exemple&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Voici par exemple les d&#233;finitions de styles du formulaire de login :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PHP&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#034;coloration_code code&#034;&gt;&lt;div class=&#034;spip_php code&#034;&gt;&lt;div class=&#034;php&#034;&gt;&lt;ol&gt;&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #666666; font-style: italic;&#034;&gt;// Styles&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$thecss&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt; &lt;a href=&#034;http://www.php.net/empty&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$data&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt;'css'&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;? &lt;span style=&#034;color: #0000ff;&#034;&gt;''&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;:&lt;/span&gt; &lt;a href=&#034;http://www.php.net/htmlspecialchars&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;htmlspecialchars&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$data&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt;'css'&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #b1b100;&#034;&gt;if&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt; &lt;a href=&#034;http://www.php.net/file_exists&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;file_exists&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt;'my.css'&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt; &lt;span style=&#034;color: #666666; font-style: italic;&#034;&gt;//[dnc37]&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$style&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'&lt;link rel=&#034;stylesheet&#034; type=&#034;text/css&#034; href=&#034;my.css&#034;&gt;&#034; .'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #b1b100;&#034;&gt;if&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;!&lt;/span&gt;&lt;a href=&#034;http://www.php.net/empty&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&#034;color: #000088;&#034;&gt;$thecss&lt;/span&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$style&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;.=&lt;/span&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$thecss&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt; &lt;span style=&#034;color: #b1b100;&#034;&gt;else&lt;/span&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$style&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; &lt;style&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; body {font-family: &#034;Century Gothic&#034;, Helvetica, Arial, sans-serif !important;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #page {margin-left: auto; margin-right: auto; max-width: 360px; padding: 1.5em; border: solid 1px grey; border-radius: 10px; box-shadow: 10px 5px 5px silver;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; .head-title {text-align: center; background-color: gray; color: white; padding: 0.5em;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; .error {text_align: center; color : red; background-color : white; padding: 6px;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; .bouton {margin:15px; cursor:pointer;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; .tfacode {text-align: center;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #champ_login {box-shadow: 10px 5px 5px silver; margin-bottom: 10px;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #champ_password {border: none;};&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #btn_reset {float: left;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #btn_submit {float: right;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #submit {width:100px; font-size: 1.1em;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #nologin {clear: both; margin-bottom: 0.5em;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #ghostkeys {height: 120px; text-align: center;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #ghostkeys &gt; img {box-shadow: 10px 5px 5px silver;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #bottom {color : grey; font-size: .8em;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; #bottom a {color : grey;}&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; '&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;.&lt;/span&gt; &lt;span style=&#034;color: #000088;&#034;&gt;$thecss&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;.&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; &lt;/style&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt; '&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;
&lt;li style=&#034;font-weight: normal; vertical-align:top;&#034;&gt;&lt;div style=&#034;&#034;&gt; &lt;span style=&#034;color: #009900;&#034;&gt;&#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;p class='download code_download'&gt;&lt;a href='https://static.oa.dnc.global/local/cache-code/05fbdb90ee4571498aae77c90392354e.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;dl class='spip_document_75 spip_documents spip_documents_center'&gt;
&lt;dt&gt;&lt;img src='https://static.oa.dnc.global/local/cache-vignettes/L467xH622/login_std_fr-2-21614.png?1733821255' width='467' height='622' alt='' /&gt;&lt;/dt&gt;
&lt;dt class='crayon document-titre-75 spip_doc_titre' style='width:350px;'&gt;&lt;strong&gt;Formulaire d'identification avec GhostKeys&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
