<?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>Installer (ou mettre &#224; jour) OAuthSD avec Composer </title>
		<link>https://static.oa.dnc.global/-Demarrer-.html#installeroumettreajouroauthsdaveccomposer</link>
		<guid isPermaLink="true">https://static.oa.dnc.global/-Demarrer-.html#installeroumettreajouroauthsdaveccomposer</guid>
		<dc:date>2019-07-11T17:29:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>DnC</dc:creator>



		<description>
&lt;p&gt;Lancer un client SSH avec l'utilisateur du domaine &lt;br class='autobr' /&gt;
Il ne faut pas ex&#233;cuter composer en root. Pour acc&#233;der &#224; notre serveur, on configure un terminal SSH avec les identifiants de l'utilisateur du domaine. Dans notre exemple, le domaine est &#034;domain&#034; et l'utilisateur est &#034;username&#034;. &lt;br class='autobr' /&gt;
Note : les exemples de code correspondent &#224; CentOS. Il faut v&#233;rifier que cet utilisateur appartient au groupe &#034;wheel&#034; des sudoers. Si ce n'est pas le cas, ex&#233;cuter (en root) : root@mon.site.com [ ]#usermod -aG wheel (...)&lt;/p&gt;


-
&lt;a href="https://static.oa.dnc.global/-Demarrer-.html" rel="directory"&gt;D&#233;marrer&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/L123xH150/arton161-331c0.png?1733968433' width='123' height='150' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&#034;spip&#034;&gt;Lancer un client SSH avec l'utilisateur du domaine&lt;/h3&gt;
&lt;p&gt;Il ne faut pas ex&#233;cuter composer en root. &lt;br class='autobr' /&gt;
Pour acc&#233;der &#224; notre serveur, on configure un terminal SSH avec les identifiants de l'utilisateur du domaine. Dans notre exemple, le domaine est &#034;domain&#034; et l'utilisateur est &#034;username&#034;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note :&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 exemples de code correspondent &#224; CentOS.
&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 faut v&#233;rifier que cet utilisateur appartient au groupe &#034;wheel&#034; des sudoers. Si ce n'est pas le cas, ex&#233;cuter (en root) :&lt;br class='autobr' /&gt;
&lt;code class='spip_code' dir='ltr'&gt;root@mon.site.com [~]#usermod -aG wheel username&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;On se place dans le cas d'une &lt;a href=&#034;https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos&#034; class='spip_out' rel='external'&gt;installation locale de Composer&lt;/a&gt;, c'est &#224; dire dans le dossier racine des documents web (web document root).&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code' dir='ltr'&gt;username@domain [~]# cd public_html&lt;/code&gt;&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;1&#176; M&#233;thode : avec le script go_xxx.sh&lt;/h3&gt;
&lt;p&gt;Il existe (&#224; l'heure actuelle) deux scripts, selon que l'on installe OAuthSD avec une base de donn&#233;es PostgreSql ou MySQL : go_pgsql.sh et go_mysql.sh.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pr&#233;requis&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; un domaine nomm&#233; &#034;domain&#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; un utilisateur nomm&#233; &#034;user&#034; est propri&#233;taire du domaine avec le mot de passe &#034;user_pswd&#034;&lt;/p&gt;
&lt;p&gt;Contrairement &#224; go_mysql.sh (pour MySQL), le script go_pgsql.sh n'installe pas &lt;br class='autobr' /&gt;
PostgreSQL ety ne cr&#233;e pas la base de donn&#233;es ni l'utilisateur. Il faudra donc :&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; Installer PostgreSQL
&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; cr&#233;er une base de donn&#233;es avec les identifiants suivants (exemple) :&lt;br class='autobr' /&gt; Nom de la base de donn&#233;es &#034;database&#034; (oauthsdc_data)&lt;br class='autobr' /&gt; Utilisateur : &#034;database_user&#034; (oauthsdc_user)&lt;br class='autobr' /&gt; Mot de passe : &#034;database_user_pswd&#034; (oautW...!)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Proc&#233;dure d'installation avec go_xxx.sh&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;La proc&#233;dure est la suivante :
&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 le r&#233;pertoire des documents du serveur web du domaine (document root), cr&#233;er un r&#233;pertoire /install et y recopier le fichier go_xxx.sh.
&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; 1 - Copier le script go_pgsql.sh dans un r&#233;pertoire /install &#224; la racine web.&lt;/p&gt;
&lt;p&gt;2 - ouvrir un client SSH sur &#034;domain&#034; avec l'utilisateur &#034;user&#034; et le mot de passe &#034;user_pswd&#034;.&lt;/p&gt;
&lt;p&gt;3 - lancer go_pgsql.sh :&lt;br class='autobr' /&gt; &lt;user&gt;@&lt;domain&gt; [ ]# sh public_html/install/go_pgsql.sh &lt;br class='autobr' /&gt; (le script fait appel &#224; Composer pour installer le code depuis GitHub)&lt;/p&gt;
&lt;p&gt; Si tout va bien, vous devez obtenir quelque chose comme :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;&#034;Composer is installed&lt;br /&gt; &gt;&gt;&gt; Updating Composer&lt;br /&gt; You are already using composer version 1.9.0 (stable channel).&lt;br /&gt; &gt;&gt;&gt; Installing OAuthSD&lt;br /&gt; Clearing cache (cache-vcs-dir): /home/oauthsdc/.composer/cache/vcs&lt;br /&gt; Clearing cache (cache-repo-dir): /home/oauthsdc/.composer/cache/repo&lt;br /&gt; Clearing cache (cache-files-dir): /home/oauthsdc/.composer/cache/files&lt;br /&gt; Clearing cache (cache-dir): /home/oauthsdc/.composer/cache&lt;br /&gt; All caches cleared.&lt;br /&gt; Loading composer repositories with package information&lt;br /&gt; Updating dependencies (including require-dev)&lt;br /&gt; Package operations: 1 install, 0 updates, 0 removals&lt;br /&gt; - Installing bdegoy/oauthsd-c (0.1.0): Cloning master from cache&lt;br /&gt; Writing lock file&lt;br /&gt; Generating autoload files&lt;br /&gt; OK&#034;&lt;/code&gt;&lt;/div&gt;&lt;h3 class=&#034;spip&#034;&gt;2&#176; M&#233;thode : installation manuelle&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;V&#233;rifier l'installation de Composer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ex&#233;cuter :&lt;br class='autobr' /&gt;
&lt;code class='spip_code' dir='ltr'&gt;username@domain [~/public_html]# composer diagnose&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Retourne :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;Checking composer.json: WARNING&lt;br /&gt; Checking platform settings: OK&lt;br /&gt; Checking git settings: OK&lt;br /&gt; Checking http connectivity to packagist: OK&lt;br /&gt; Checking https connectivity to packagist: OK&lt;br /&gt; Checking github.com rate limit: OK&lt;br /&gt; Checking disk free space: OK&lt;br /&gt; Checking pubkeys: FAIL&lt;br /&gt; Missing pubkey for tags verification&lt;br /&gt; Missing pubkey for dev verification&lt;br /&gt; Run composer self-update --update-keys to set them up&lt;br /&gt; Checking composer version: OK&lt;br /&gt; Composer version: 1.9.0&lt;br /&gt; PHP version: 5.6.40&lt;br /&gt; PHP binary path: /opt/cpanel/ea-php56/root/usr/bin/php&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Nous avons un &lt;strong&gt;probl&#232;me avec les cl&#233;s publiques de Composer&lt;/strong&gt;. Lan&#231;ons :&lt;br class='autobr' /&gt;
&lt;code class='spip_code' dir='ltr'&gt;username@mon.site.com [~/public_html]# composer self-update --update-keys&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Comme indiqu&#233;, il faudra naviguer &#224; l'URL &lt;a href=&#034;https://composer.github.io/pubkeys.html&#034; class='spip_url spip_out' rel='external'&gt;https://composer.github.io/pubkeys.html&lt;/a&gt; pour copier ces cl&#233;s et les coller comme demand&#233; :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;Open https://composer.github.io/pubkeys.html to find the latest keys&lt;br /&gt; Enter Dev / Snapshot Public Key (including lines with -----): -----BEGIN PUBLIC KEY-----&lt;br /&gt; MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAnBDHjZS6e0ZMoK3xTD7f&lt;br /&gt; ...&lt;br /&gt; wSEuAuRm+pRqi8BRnQ/GKUcCAwEAAQ==&lt;br /&gt; -----END PUBLIC KEY-----&lt;br /&gt; Stored key with fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952&lt;br /&gt; Enter Tags Public Key (including lines with -----): -----BEGIN PUBLIC KEY-----&lt;br /&gt; MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0Vi/2K6apCVj76nCnCl2&lt;br /&gt; ...&lt;br /&gt; TzCFWGk/HM6a4f0IzBWbJ5ot0PIi4amk07IotBXDWwqDiQTwyuGCym5EqWQ2BD95&lt;br /&gt; RGv89BPD+2DLnJysngsvVaUCAwEAAQ==&lt;br /&gt; -----END PUBLIC KEY-----&lt;br /&gt; Stored key with fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642&lt;br /&gt; Public keys stored in /home/user/.composer&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Nous pouvons &lt;strong&gt;v&#233;rifier &#224; nouveau Composer&lt;/strong&gt; :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;username@domain [~/public_html]# composer diagnose&lt;/code&gt;&lt;/div&gt;&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;Checking composer.json: OK&lt;br /&gt; Checking platform settings: OK&lt;br /&gt; Checking git settings: OK&lt;br /&gt; Checking http connectivity to packagist: OK&lt;br /&gt; Checking https connectivity to packagist: OK&lt;br /&gt; Checking github.com rate limit: OK&lt;br /&gt; Checking disk free space: OK&lt;br /&gt; Checking pubkeys:&lt;br /&gt; Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0 87719BA6 8F3BB723 4E5D42D0 84A14642&lt;br /&gt; Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B 0C708369 153E328C AD90147D AFE50952&lt;br /&gt; OK&lt;br /&gt; Checking composer version: OK&lt;br /&gt; Composer version: 1.9.0&lt;br /&gt; PHP version: 5.6.40&lt;br /&gt; PHP binary path: /opt/cpanel/ea-php56/root/usr/bin/php&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Cette fois-ci c'est bon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mettre &#224; jour de Composer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class='spip_code' dir='ltr'&gt;username@domain [~/public_html]# composer self-update&lt;/code&gt;&lt;br class='autobr' /&gt;
Si Composer &#233;tait &#224; jour, on obtient :&lt;br class='autobr' /&gt;
&lt;code class='spip_code' dir='ltr'&gt;You are already using composer version 1.9.0 (stable channel).&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Installer le code d'OAuthSD ou v&#233;rifier l'installation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;L'installation ou la v&#233;rification se fait en ex&#233;cutant :&lt;br class='autobr' /&gt;
&lt;code class='spip_code' dir='ltr'&gt;username@mon.site.com [~/public_html]# composer install&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Si OAuthSD est d&#233;j&#224; install&#233; et complet, on obtient :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;Loading composer repositories with package information&lt;br /&gt; Installing dependencies (including require-dev) from lock file&lt;br /&gt; Nothing to install or update&lt;br /&gt; Generating autoload files&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&#034;Installing dependencies (including require-dev) from lock file&#034; signifie qu'une installation avait d&#233;j&#224; &#233;t&#233; effectu&#233;e. La mise &#224; jour conserve les versions des composants (inscrites dans le fichier composer.lock) de la version courante d'OAuthSD. C'est important pour assurer la coh&#233;rence de l'ensemble du code par rapport &#224; la derni&#232;re version stable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mettre &#224; jour le code d'OAuthSD&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attention !&lt;/strong&gt; une mise &#224; jour du code avec les derni&#232;res versions des composants n'est pas recommand&#233;e &#224; moins qu'une nouvelle version stable d'OAuthSD ait &#233;t&#233; notifi&#233;e comme pr&#234;te pour la mise &#224; jour.&lt;/p&gt;
&lt;p&gt;La mise &#224; jour se fait en ex&#233;cutant :&lt;br class='autobr' /&gt;
&lt;code class='spip_code' dir='ltr'&gt;username@domain [~/public_html]# composer update&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Notre application &#233;tait &#224; jour des derniers d&#233;veloppements, ainsi que les composants. On obtient donc :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;Loading composer repositories with package information&lt;br /&gt; Updating dependencies (including require-dev)&lt;br /&gt; Nothing to install or update&lt;br /&gt; Generating autoload files&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&#034;Updating dependencies (including require-dev)&#034; signifie que les composants auraient &#233;t&#233; mis &#224; jour dans leur derni&#232;re version. Un nouveau fichier composer.lock est cr&#233;&#233;.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Apr&#232;s l'installation&lt;/h3&gt;
&lt;p&gt;4 - ouvrir en &#233;dition /commons/keepsecret/database.php et inscrire les identifiants &lt;br class='autobr' /&gt;
de connexion &#224; la base de donn&#233;es.&lt;/p&gt;
&lt;p&gt;5 - Initialiser les donn&#233;es avec le contenu du fichier /install/data.sql&lt;/p&gt;
&lt;p&gt;6 - tester le fonctionnement avec https://&#034;domain&#034;/oidc/tests/essai1.php&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Echec avec les messages : &#034;remote : Invalid username or password&lt;/h3&gt;
&lt;p&gt;Ceci signifie que :
&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 repository GitHub est priv&#233;,
&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 cl&#233;s SSH sont manquantes ou erron&#233;es.&lt;/p&gt;
&lt;p&gt;Se connecter sur le compte GitHub.
&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 Settings -&gt; SSH and GPG Keys, v&#233;rifier qu'il existe une SSH Key pour le domaine oauthsd-c&lt;br class='autobr' /&gt;
Si c'est le cas :
&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; v&#233;rifier qu'il existe un dossier /home/oauthsdc/.ssh/ et contr&#244;ler que la cl&#233; &lt;br class='autobr' /&gt;
publique id_rsa_pub est identique au champ Key (ce n'est probablement pas le cas).&lt;br class='autobr' /&gt;
Si ce n'est pas le cas :
&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; Installer une paire de cl&#233;s dans /home/oauthsdc/.ssh/ (fichiers id_rsa, id_rsa.pub et known_hosts)&lt;br class='autobr' /&gt; g&#233;n&#233;rer les cl&#233;s :&lt;br class='autobr' /&gt; - ssh-keygen -t rsa -b 4096 -C &#034;your_email@example.com&#034;&lt;br class='autobr' /&gt; Enter file in which to save the key (/home/oauthsdc/.ssh/id_rsa) : etc... &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; ouvrir le fichier id_rsa.pub, copier son contenu
&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; c&#244;t&#233; GitHub, actionner &#034;New SSH Key&#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; coller le contenu dans le champ Key
&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 le champ Title, indiquer le nom du serveur et le domaine (ex : vpsxxx-domain)&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Installation du serveur OAuthSD</title>
		<link>https://static.oa.dnc.global/-Demarrer-.html#installationduserveuroauthsd</link>
		<guid isPermaLink="true">https://static.oa.dnc.global/-Demarrer-.html#installationduserveuroauthsd</guid>
		<dc:date>2019-07-11T08:45:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>DnC</dc:creator>



		<description>
&lt;p&gt;L'installation d'un serveur OAuthSD se fait dans un environnement Linux d&#233;crit dans cet article. &lt;br class='autobr' /&gt;
Bien que faisant appel &#224; Composer, cette installation est en partie manuelle, ainsi que la configuration du serveur et le chargement d'un jeu initial de donn&#233;es. &lt;br class='autobr' /&gt;
Pr&#233;requis h&#244;te Linux : CentOs 6.5 ou 7 (pr&#233;f&#233;r&#233;), CloudLinux 6 ou 7, RHEL 6 ou 7, . Voir les d&#233;tails au paragraphe : &#034;Environnement mat&#233;riel et logiciel du serveur&#034;. &lt;br class='autobr' /&gt;
Pour installer et administrer la configuration d&#233;crite ci-dessous, il sera utile (...)&lt;/p&gt;


-
&lt;a href="https://static.oa.dnc.global/-Demarrer-.html" rel="directory"&gt;D&#233;marrer&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/L150xH110/arton160-61377.jpg?1733968434' width='150' height='110' /&gt;
		&lt;div class='rss_chapo'&gt;&lt;p&gt;L'installation d'un serveur OAuthSD se fait dans un environnement Linux d&#233;crit dans cet article.&lt;/p&gt;
&lt;p&gt;Bien que faisant appel &#224; Composer, cette installation est en partie manuelle, ainsi que la configuration du serveur et le chargement d'un jeu initial de donn&#233;es.&lt;/p&gt;&lt;/div&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&#034;spip&#034;&gt;Pr&#233;requis&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; h&#244;te Linux : CentOs 6.5 ou 7 (pr&#233;f&#233;r&#233;), CloudLinux 6 ou 7, RHEL 6 ou 7,&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href='#nb1' class='spip_note' rel='appendix' title='D&#233;sactiver SELinux.' id='nh1'&gt;1&lt;/a&gt;]&lt;/span&gt;. Voir les d&#233;tails au paragraphe : &#034;Environnement mat&#233;riel et logiciel du serveur&#034;.&lt;/p&gt;
&lt;p&gt;Pour installer et administrer la configuration d&#233;crite ci-dessous, il sera utile de disposer d'un &#034;panneau d'administration&#034; pour la gestion de l'h&#244;te et des serveurs. &lt;a href=&#034;http://httpupdate.cpanel.net/&#034; class='spip_out' rel='external'&gt;WHM/cPanel&lt;/a&gt; est un bon choix&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href='#nb2' class='spip_note' rel='appendix' title='Offrant notamment le stateful firewall CSF-LFD, l'outil de configuration (...)' id='nh2'&gt;2&lt;/a&gt;]&lt;/span&gt;. On peut &#233;galement utiliser Webmin.&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; serveur Apache 2.x&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href='#nb3' class='spip_note' rel='appendix' title='Nginx incompatible. Ne pas configurer de proxy inverse' id='nh3'&gt;3&lt;/a&gt;]&lt;/span&gt;. La s&#233;curit&#233; de fonctionnement d'OIDC exige une installation sur un domaine s&#233;curis&#233; par TLS (protocole https://).
&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; PHP 5.6 ou 7.x (7.x obligatoire si /crud/api.php est install&#233;)&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href='#nb4' class='spip_note' rel='appendix' title='Autoriser allow_url_fopen dans php.ini.' id='nh4'&gt;4&lt;/a&gt;]&lt;/span&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; serveur de base de donn&#233;es MySQL ou &#233;quivalent&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href='#nb5' class='spip_note' rel='appendix' title='PostGres SQL incompatible.' id='nh5'&gt;5&lt;/a&gt;]&lt;/span&gt; + phpMyAdmin (ou &#233;quivalent)
&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; serveur sshd/sFTP, &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; client SSH (console et sFTP), acc&#232;s par l'user root.&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Installation d'OAuthSD&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;1. Installer le code d'OAuthSD&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; T&#233;l&#233;charger le code depuis GitHub : &lt;a href=&#034;https://github.com/bdegoy/oauthsd&#034; class='spip_url spip_out auto' rel='nofollow external'&gt;https://github.com/bdegoy/oauthsd&lt;/a&gt;, -&gt; 'Clone or download&#034; -&gt; &#034;Download ZIP.
&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; Installer le contenu d&#233;-zipp&#233; dans le r&#233;pertoire web du domaine(web document root)&lt;span class=&#034;spip_note_ref&#034;&gt; [&lt;a href='#nb6' class='spip_note' rel='appendix' title='C'est &#224; dire le r&#233;pertoire /public_html (dans le cas de CentOS). Notez que (...)' id='nh6'&gt;6&lt;/a&gt;]&lt;/span&gt; .&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Installer et ex&#233;cuter Composer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Voir : &lt;a href='https://static.oa.dnc.global/-Demarrer-.html#installeroumettreajouroauthsdaveccomposer' class='spip_in'&gt;Installer (ou mettre &#224; jour) OAuthSD avec Composer &lt;/a&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; Ouvrir un client SSH, &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; se d&#233;placer dans le r&#233;pertoire web du domaine, exemple pour CentOS :&lt;br class='autobr' /&gt;
&lt;code class='spip_code' dir='ltr'&gt;user@mon.site.com [~]# cd public_html&lt;/code&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; Si le code d'OAuthSD comporte le fichier /composer.phar et le dossier /composer/, alors Composer est d&#233;j&#224; t&#233;l&#233;vers&#233; sur l'h&#244;te pour une utilisation locale. En cas de doute, vous pouvez v&#233;rifier l'installation de Composer en suivant les indications de cet article : &lt;a href='https://static.oa.dnc.global/-Demarrer-.html#installeroumettreajouroauthsdaveccomposer' class='spip_in'&gt;Installer (ou mettre &#224; jour) OAuthSD avec Composer &lt;/a&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; Sinon, se reporter &#224; l'installation de &lt;a href=&#034;https://getcomposer.org/download/&#034; class='spip_out' rel='external'&gt;Composer&lt;/a&gt;. Le plus simple est une installation locale (dans le r&#233;pertoire web du domaine).&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; Ex&#233;cuter &lt;code class='spip_code' dir='ltr'&gt;user@mon.site.com [~]# composer install&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A l'issue, les packages utilis&#233;s par OAuthSD se trouvent install&#233;s dans le dossier /vendor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Initialiser les donn&#233;es&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; avec le client SSH, acc&#233;der au serveur MySQL et ex&#233;cuter le contenu du fichier : /install/data.sql.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Configuration initiale&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; Connexion &#224; la base de donn&#233;es : ouvrir le fichier &lt;strong&gt;/commons/keepsecret/database.php&lt;/strong&gt; ; dans la fonction make_credentials, inscrire les valeurs correctes pour dmname, host, driver, port et prefix.&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; Si la version t&#233;l&#233;charg&#233; inclut l'&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; (r&#233;pertoire http.api), il convient d'adapter les valeurs du fichier de configuration /http.api/api_configure.php.&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; Options et r&#233;glages : les valeurs par d&#233;faut suffisent dans la plupart des cas. Pour plus d'information, voir &lt;a href='https://static.oa.dnc.global/-Demarrer-.html#parametragedoauthsd' class='spip_in'&gt;Param&#233;trage d'OAuthSD&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Cr&#233;er un r&#233;pertoire pour les sessions d'OAuthSD&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; cr&#233;er un r&#233;pertoire &#034;sessions_oauthsd&#034; un niveau au dessus du r&#233;pertoire web du domaine.
&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; attribuer &#224; ce r&#233;pertoire le m&#234;me user/group et les m&#234;mes permissions que le r&#233;pertoire web du domaine.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6. Programmer une t&#226;che Cron&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le script cron.php doit &#234;tre appel&#233; toutes les minutes afin d'ex&#233;cuter diff&#233;rentes t&#226;ches dont l'&#233;laboration de synth&#232;ses statistiques (table oidc_stats).&lt;/p&gt;
&lt;p&gt;Une t&#226;che cron est programm&#233;e pour ex&#233;cuter toutes les minutes la commande suivante (exemple pour Linux) :&lt;br class='autobr' /&gt;
&lt;code class='spip_code' dir='ltr'&gt;wget -O /dev/null https://&lt;serveur-url&gt;/cron/cron.php &gt;/dev/null 2&gt;&amp;1&lt;/code&gt;&lt;/p&gt;
&lt;h3 class=&#034;spip&#034;&gt;Environnement mat&#233;riel et logiciel du serveur&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Connexion au r&#233;seau : routeur et firewall&lt;/strong&gt;&lt;br class='autobr' /&gt;
Un serveur OIDC est sensible aux attaques par d&#233;ni de service. On &#233;vitera de router les paquets TCP entrants &#224; l'aide d'une DMZ. On pr&#233;f&#232;rera configurer un filtrage de port au niveau du routeur/firewall et une r&#232;gle de routage NAT/PAT pour lier le port entrant (443) &#224; l'IP fixe du serveur sur le r&#233;seau local. &lt;br class='autobr' /&gt;
Un Pare-feu &#224; &#233;tats (stateful inspection firewall) serait favorable pour faire face aux attaques de type DDOS. Un routeur/firewall d&#233;di&#233; &#224; la connexion du serveur serait favorable &#224; l'adoption de param&#232;tres de filtrage adapt&#233;s.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mat&#233;riel, RAM et Disques&lt;/strong&gt;&lt;br class='autobr' /&gt;
Un serveur OIDC doit r&#233;pondre rapidement &#224; de nombreuses requ&#234;tes. Une machine d&#233;di&#233;e &#224; OAuthSD serait favorable. Le processeur doit &#234;tre performant (2 &#224; 4 c&#339;urs), la m&#233;moire suffisante ; un disque SSD serait favorable.&lt;br class='autobr' /&gt;
RAM : 4 GB minimum.&lt;br class='autobr' /&gt;
Partition / : 40GB minimum.&lt;br class='autobr' /&gt;
Partition swap : m&#234;me taille que la RAM.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sauvegarde&lt;/strong&gt;&lt;br class='autobr' /&gt;
Il faut pr&#233;voir un disque interne d&#233;di&#233; &#224; la sauvegarde ainsi qu'une sauvegarde externe. Les sauvegardes pourront &#234;tre r&#233;alis&#233;es &#224; l'aide du panel d'administration du serveur. La capacit&#233; du disque de sauvegarde interne sera &#233;gal &#224; 3 fois au moins la capacit&#233; du disque principal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Administration &#224; distance&lt;/strong&gt;&lt;br class='autobr' /&gt;
Il est utile de disposer d'un tunnel SSH ou VPN pour acc&#233;der au panneau d'administration ainsi qu'au serveur sshd &#224; l'aide d'une console distante.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Connexion Internet pour les tests&lt;/strong&gt;&lt;br class='autobr' /&gt;
Certains tests n&#233;cessitent la connexion du serveur au r&#233;seau Internet. Il en est ainsi par exemple des tests d&#233;crits dans la rubrique &lt;a href='https://static.oa.dnc.global/-Tests-et-certification-.html' class='spip_in'&gt;Tests et certification&lt;/a&gt;. Cette connexion peut-&#234;tre ferm&#233;e par la suite si le serveur doit fonctionner dans un r&#233;seau local ou priv&#233;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Avertissement quant aux proxies&lt;/strong&gt;&lt;br class='autobr' /&gt;
Si un proxy doit &#234;tre install&#233; en amont du serveur ( par ex. un r&#233;partiteur de charge), il est important qu'il ait une IP fixe vu du serveur OAuthSD et qu'il transmette l'IP de la requ&#234;te d'origine par la d&#233;claration HTTP_X_FORWARDED_FOR.&lt;br class='autobr' /&gt;
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;/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;D&#233;sactiver SELinux.&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;Offrant notamment le stateful firewall CSF-LFD, l'outil de configuration EasyApache, des outils de s&#233;curit&#233; avec un audit tr&#232;s complet et permettant de configurer facilement un certificat SSL/TLS pour un fonctionnement en https://.&lt;/p&gt;
&lt;/div&gt;&lt;div id='nb3'&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href='#nh3' class='spip_note' title='Notes 3' rev='appendix'&gt;3&lt;/a&gt;] &lt;/span&gt;Nginx incompatible. Ne pas configurer de proxy inverse&lt;/p&gt;
&lt;/div&gt;&lt;div id='nb4'&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href='#nh4' class='spip_note' title='Notes 4' rev='appendix'&gt;4&lt;/a&gt;] &lt;/span&gt;Autoriser allow_url_fopen dans php.ini.&lt;/p&gt;
&lt;/div&gt;&lt;div id='nb5'&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href='#nh5' class='spip_note' title='Notes 5' rev='appendix'&gt;5&lt;/a&gt;] &lt;/span&gt;PostGres SQL incompatible.&lt;/p&gt;
&lt;/div&gt;&lt;div id='nb6'&gt;
&lt;p&gt;&lt;span class=&#034;spip_note_ref&#034;&gt;[&lt;a href='#nh6' class='spip_note' title='Notes 6' rev='appendix'&gt;6&lt;/a&gt;] &lt;/span&gt;C'est &#224; dire le r&#233;pertoire /public_html (dans le cas de CentOS). Notez que OAuthSD comprend un r&#233;pertoire /public_html/web/ : ne pas confondre !&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
<item xml:lang="fr">
		<title>Param&#233;trage d'OAuthSD</title>
		<link>https://static.oa.dnc.global/-Demarrer-.html#parametragedoauthsd</link>
		<guid isPermaLink="true">https://static.oa.dnc.global/-Demarrer-.html#parametragedoauthsd</guid>
		<dc:date>2019-07-11T08:45:00Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>DnC</dc:creator>



		<description>
&lt;p&gt;Configuration obligatoire au d&#233;marrage &lt;br class='autobr' /&gt;
L'adaptation du fichier /commons/keepsecret/database.php est la seule configuration obligatoire lors d'un nouveau d&#233;ploiement du serveur OAuthSD. fichier /commons/keepsecret/database.php. Il permet de d&#233;finir la connexion &#224; la base de donn&#233;es et doit contenir le code suivant : /** Database * $dsn is the Data Source Name for your database, for example &#034;mysql:dbname=my_oauth2_db ;host=localhost&#034; */ $connection = array( * 'dsn' =&gt; 'mysql:dbname=... (...)&lt;/p&gt;


-
&lt;a href="https://static.oa.dnc.global/-Demarrer-.html" rel="directory"&gt;D&#233;marrer&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/L150xH110/arton165-415c1.png?1733968434' width='150' height='110' /&gt;
		&lt;div class='rss_texte'&gt;&lt;h3 class=&#034;spip&#034;&gt;Configuration obligatoire au d&#233;marrage&lt;/h3&gt;
&lt;p&gt;L'adaptation du fichier /commons/keepsecret/database.php est la seule configuration obligatoire lors d'un nouveau d&#233;ploiement du serveur OAuthSD.&lt;/p&gt;
&lt;div style=&#034;clear:both;&#034;&gt;&lt;br /&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; fichier &lt;strong&gt;/commons/keepsecret/database.php&lt;/strong&gt;.&lt;br class='autobr' /&gt;
Il permet de d&#233;finir la connexion &#224; la base de donn&#233;es et doit contenir le code suivant :&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: #009933; font-style: italic;&#034;&gt;/** Database&lt;/span&gt;&lt;/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: #009933; font-style: italic;&#034;&gt;* $dsn is the Data Source Name for your database, for example &#034;mysql:dbname=my_oauth2_db;host=localhost&#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: #009933; font-style: italic;&#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;$connection&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: #339933;&#034;&gt;*&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'dsn'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'mysql:dbname=...;host=localhost'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;span style=&#034;color: #666666; font-style: italic;&#034;&gt;// MySQL &lt;/span&gt;&lt;/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;span style=&#034;color: #0000ff;&#034;&gt;'username'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&gt;&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;/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;span style=&#034;color: #0000ff;&#034;&gt;'password'&lt;/span&gt; &lt;span style=&#034;color: #339933;&#034;&gt;=&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: #339933;&#034;&gt;*&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/a5d8d395a15e7db8f4ccf862b2306c81.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;h3 class=&#034;spip&#034;&gt;Options TFA par SMS&lt;/h3&gt;
&lt;p&gt;Si l'identification &#224; deux facteurs avec SMS est activ&#233;e (constante 'TFA_PROVIDER' = 'checkbysms'), le fichier &lt;strong&gt;/commons/keepsecret/sms.php&lt;/strong&gt; doit contenir les identifiants de connexion &#224; l'API OVH SMS :&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;a href=&#034;http://www.php.net/define&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;define&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;'OVHSMSAPI_APPLICATIONKEY'&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;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/define&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;define&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;'OVHSMSAPI_APPLICATIONSECRET'&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;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/define&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;define&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;'OVHSMSAPI_CONSUMER_KEY'&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;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/define&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;define&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;'OVHSMSAPI_ENDPOINT'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt;&lt;span style=&#034;color: #0000ff;&#034;&gt;'ovh-eu'&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/define&#034;&gt;&lt;span style=&#034;color: #990000;&#034;&gt;define&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;'OVHSMSAPIUSER'&lt;/span&gt;&lt;span style=&#034;color: #339933;&#034;&gt;,&lt;/span&gt; &lt;span style=&#034;color: #0000ff;&#034;&gt;'OAUTHSD'&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/31538386d0205dbe07d5d71379bca20c.txt'&gt;T&#233;l&#233;charger&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Vous devez avoir un compte valide sur l'API SMS d'OVH. Les identifiants sont obtenus avec la requ&#234;te suivante :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;https://api.ovh.com/createToken/index.cgi?GET=/sms&amp;GET=/sms/*&amp;PUT=/sms/*&amp;DELETE=/sms/*&amp;POST=/sms/*&lt;/code&gt;&lt;/div&gt;&lt;h3 class=&#034;spip&#034;&gt;Autres options&lt;/h3&gt;
&lt;p&gt;Les fichiers &lt;strong&gt;/commons/configure_oauth.php&lt;/strong&gt; et &lt;strong&gt;/commons/configure_oidc&lt;/strong&gt; ne n&#233;cessitent pas de modification pour une premi&#232;re configuration. On se reportera aux titres et commentaires des constantes.&lt;/p&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>



</channel>

</rss>
