Extension OpenID Connect pour phpBB

  publie le par DnC

Un client OIDC pour phpBB. Permet à phpBB d’utiliser OpenID Connect au lieu de l’authentification classique. (Attention : à ne pas confondre avec les extension pour OpenID !)

Les développeurs d’application phpBB pourront faciliter l’intégration des forums dans leurs autres applications Web en permettant l’accès des utilisateurs avec une authentification unique configurée sur le serveur OIDC (single sign-on, SSO) [1].

Prérequis

- phpBB 3.x
- système Linux + PHP 5.6 ou 7.1,
- ionCube PHP Loader installé sur le serveur de l’application phpBB [2] [3] .
- Attention ! le fonctionnement d’OIDC exige une application cliente installée sur un serveur sécurisé (protocole https://).

Inscription sur le serveur OAuthSD

L’application recevant l’extension doit être enregistrée sur le serveur OAuthSD [4].
La procédure est décrite ici : OpenID Connect : Lier une application cliente au serveur OAuthSD.

En suivant cette procédure :
- vous vous inscrirez en tant qu’auteur sur le serveur,

- vous enregistrerez votre application. L’enregistrement se fait ici : Inscrire une application cliente.
Vous devrez :

  • configurer l’adresse de retour (Redirect URI) sous la forme suivante : https://mon_application.com/ucp.php?mode=login&login=external&oauth_service=oauthsd
  • Inscrire les scopes "openid sli".

Notez les valeurs de "Client id" (qui correspondra à "Key" dans phpBB) et "Client secret".

Installation et configuration sur phpBB

1. Le client OIDC pour phpBB s’installe comme toute extension de phpBB :
- télécharger l’extension OIDC client for phpBB,
- décompresser l’archive,
- installer le code dans /ext/dnc/oauthsd,
- dans phpBB, installez l’extension "DnC OIDC client for OAuthSD" (section Customize -> Extension Manager).

2. Installez le Service OAuthSD pour Lusitanian/PHPoAuthLib :
phpBB utilise la librairie Lusitanian/PHPoAuthLib pour mettre en oeuvre le SSO avec OIDC. Il faut compléter cette librairie avec le service Oauthsd :
- Téléchargez le fichier Oauthsd.php.
- Copiez le fichier Oauthsd.php dans le répertoire /vendor/lusitanian/oauth/src/OAuth/OAuth2/Service de votre serveur Web.

3. dans phpBB, section Client Communication -> Authentication, sélectionnez la méthode d’authentification Oauth :

- Entrez les paramètres pour OAuthSD :

- puis actionnez le bouton "Submit".

Si tout s’est bien passé, un bouton "OAuthSD" doit apparaître dans la page de Connexion :

Notre prototype est visible à l’URL : https://phpbb.dnc.global/.

Notes :
- Le bouton "OAuthSD" n’apparait pas partout où la connexion est possible : cela dépend de phpBB [5], pas de l’extension.
- l’extension permet la connexion unique et le rafraîchissement silencieux sans autre configuration.

phpBB : Tentative de connexion avec un compte inconnu du forum

Si on tente de se connecter avec un login (un "Nom d’utilisateur" dans le vocabulaire phpBB) qui n’est pas enregistré sur le forum, phpBB signale l’erreur :

il est proposé de :
- lier le compte à un compte existant : Entrer le Nom d’utilisateur et le Mot de passe puis actionner "Connexion".
- créer un nouveau compte : Actionnez le bouton "S’enregistrer".

Notes :
- Seul le login (le Nom d’utilisateur) doit être identique des deux côtés, le mot de passe est propre à chaque système.
- On pourrait penser à une autre solution : inscrire le compte phpBB sur le serveur d’authentification. Mais cela irait à l’encontre du principe de connexion unique (SSO) : si un utilisateur a une inscription sur OAuthSD, c’est pour pouvoir se connecter à différents systèmes avec les mêmes identifiants.

Feuille de route

- paramétrer l’URL du serveur OIDC afin de pouvoir choisir le serveur d’authentification. Cela devrait conduire à un client OpenID Connect universel.

En conclusion : voir la conclusion de cet article : SSO pour Wordpress avec OAuthSD.

Notes

[1Pour l’instant, ce plugin n’a été validé que sur le serveur OAuthSD (ce serveur).

[2IonCube est installé par défaut sur la plupart des configurations Linux

[3L’intention est de compléter le développement puis de placer le code en open source sur GitHub. Le code sera encrypté tant que ce ne sera pas fait.

[4Dans l’état actuel du développement, l’extension ne permet que la connexion à ce serveur OAuthSD, cela n’est donc envisageable que dans une phase de développement. DnC propose à ses clients de posséder leur propre serveur OIDC afin de bénéficier de toute la sécurité offerte par un système d’authentification privé.

[5La connexion à l’aide d’un système extérieur n’est gérée que dans le script ucp.php.

Plugin OpenID Connect Client pour SPIP

  publie le par DnC

Un client OIDC pour SPIP. Permet à une application SPIP de proposer l’authentification avec OpenID Connect, à côté de l’authentification classique.

Les développeurs d’application SPIP pourront renforcer la protection de l’accès aux fonctionnalités réservées et à l’espace privé en limitant l’accès aux seules personnes enregistrées sur le serveur OIDC configuré [1].

Prérequis

- SPIP 3.x
- système Linux + PHP 5.6 ou 7.1,
- ionCube PHP Loader installé sur le serveur de l’application SPIP [2] [3] .
- Attention ! le fonctionnement d’OIDC exige une application cliente installée sur un serveur sécurisé (protocole https://).

Inscription sur le serveur OAuthSD

L’application recevant le plugin doit être enregistrée sur le serveur OAuthSD.
La procédure est décrite ici : OpenID Connect : Lier une application cliente au serveur OAuthSD.

En suivant cette procédure :
- vous vous inscrirez en tant qu’auteur sur le serveur OAuthSD,

- vous enregistrerez votre application. L’enregistrement se fait ici : Inscrire une application cliente.
Vous devrez :

  • configurer l’adresse de retour (Redirect URI) sous la forme suivante : https://mon_application.com/?action=auth
  • Inscrire au moins le scope "openid".

- l’installation et la configuration du plugin répond à l’étape 3.

Installation et configuration du plugin

- Télécharger le plugin (momentanément indisponible, merci de patienter) : https://oa.dnc.global/web/downloads...
- décompresser l’archive.
Le plugin s’installe ensuite selon la procédure d’installation manuelle de tout plugin SPIP :

  • transférer le répertoire oidcclient dans le répertoire plugins,
  • activer le plugin dans l’administration.

- ouvrir le formulaire de configuration et indiquer l’ID de l’application cliente et son secret fournis lors de l’enregistrement de l’application sur le serveur OAuthSD :

Inscription en tant qu’utilisateur OpenID Connect

Pour enregistrer votre application, vous vous êtes inscrit sur ce serveur en tant qu’auteur. Pour utiliser le SSO OpenID Connect [4], vous devez vous inscrire sur un serveur d’authentification compatible. Les deux inscriptions sont distinctes.

Si vous n’êtes pas déjà inscrit sur un serveur OpenID Connect, vous pouvez si vous le souhaitez vous s’inscrire sur ce serveur en tant qu’utilisateur.

Il faut ensuite établir une correspondance entre OpenID Connect et SPIP.

Correspondance entre l’utilisateur OpenID Connect et l’auteur (l’utilisateur) SPIP

Si vous tentez la connexion OpenID Connect avec un utilisateur inconnu de l’application, vous obtiendrez un message d’erreur comme celui-ci :

Il faut que l’utilisateur OpenID Connect soit lié à un compte d’auteur de l’application SPIP pour que celle-ci accepte la connexion. Ceci est réalisé en inscrivant le login OIDC dans le champ oidc de la fiche de l’auteur.

Bien entendu, pour faire cette modification, vous devrez fournir le mot de passe du compte d’auteur [5] :

Notes :
- On pourrait imaginer de créer un compte SPIP avec le même login, mais cela n’est pas nécessaire.
- On pourrait également penser à une autre solution : créer un nouvel utilisateur OpenID Connect avec le login SPIP ; Mais cela irait à l’encontre du principe de connexion unique (SSO) : si un utilisateur a une inscription sur OAuthSD, c’est pour pouvoir se connecter à différents systèmes avec les mêmes identifiants. La bonne solution est donc de lier un auteur SPIP à un compte OIDC pré-existant, non l’inverse.

Une fois liés les utilisateurs OpenID Connect et SPIP, le formulaire de connexion fait apparaître le lien et propose la connexion avec OIDC :

Dans cette situation, il reste possible de se connecter "normalement" en actionnant le lien "Ne pas utiliser OIDC, utiliser un mot de passe".

Notes :
- Un seul utilisateur OpenID Connect peut-être lié à un compte d’auteur de l’application SPIP. De même, un seul compte d’auteur de l’application SPIP peut être lié à un même utilisateur OpenID Connect.
- Seul les logins servent à établir la correspondance, les mots de passe sont propres à chaque système.

Connexion à l’application SPIP

Le plugin modifie le cadre de connexion de SPIP en ajoutant la possibilité d’utiliser OpenID Connect. La méthode classique reste disponible :

Entrez votre email ou votre signature (pseudo) puis :

Pour vous identifier avec OpenID Connect, assurez-vous que le champ "Mot de passe" est vide et actionnez le bouton "Valider".

Pour vous connecter avec la méthode standard, entrez le mot de passe d’auteur (ou utilisateur) SPIP avant d’appuyer sur le bouton "Valider".

Notes :
- Le plugin ajoute ’oidcclient’ à la liste des méthodes disponibles (variable $GLOBALS[’liste_des_authentifications’]). SPIP tente les différentes méthodes d’authentifications enregistrées en commançant par la méthode standard. En cas d’échec, SPIP passe à la méthode suivante.
- Si vous vous connectez avec la méthode standard, et que votre login ou mot de passe est faux, vous serez redirigé vers la connexion avec OpenID Connect. Dans cette situation, la fonctionnalité SLI pourrait aboutir à une connexion automatique.
- Si votre navigateur vous propose de mémoriser les identifiants de connexion, il est inutile de le faire : le mot de passe vu par le navigateur est crypté et change à chaque fois.

Commentaires et avertissements :

- Ce plugin n’est pas un remplacement ou un équivalent du plugin OpenID.

- Il reprend cependant le principe du plugin OpenID qui consiste à donner le choix entre la connexion avec OpenID Connect ou la méthode login/mot de passe classique. Merci aux auteurs d’OpenID à qui a été emprûntée la structure générale du plugin.

- OpenID Connect (OIDC) ne doit pas être confondu avec OpenID. La connexion automatique avec un identifiant OpenID universel n’existe pas dans le standard OIDC. OIDC offre une sécurité supérieure en permettant de construire un système propriétaire dans lequel les applications clientes et les serveurs, ainsi que les utilisateurs, sont limités à un ensemble bien identifié.

- Un utilisateur qui souhaite utiliser OIDC pour s’identifier doit être enregistré sur un serveur OIDC que lui a désigné le concepteur de l’application et dont l’URL est configurée dans l’administration de ce plugin.

- Un concepteur d’application qui utilise ce plugin doit enregistrer l’application en tant que client sur un serveur OpenID Connect.

Si vous voulez le faire sur ce serveur OAuthSD, il faut vous inscrire comme auteur et administrateur d’applications puis enregistrer l’application.

- Dans l’état actuel du développement, le plugin n’a été testé qu’en relation avec le serveur OauthSD (sur ce site web).

- Ce site web implémente un démonstrateur d’OAuthSD ; le serveur peut être indisponible et les données enregistrées effacées à tout moment.

- Aucune garantie d’aucune sorte n’est attachée à l’utilisation de ce serveur, des plugins, du code et de la documentation fourni par DnC.

- Le plugin est distribué sous licence GPL3.

- une partie sensible du source du plugin n’est pas fournie pour des raisons de sécurité.

Notes

[1Pour l’instant, ce plugin n’a été validé que sur le serveur OAuthSD (ce serveur).

[2IonCube est installé par défaut sur la plupart des configurations Linux.

[3L’intention est de placer le code en open source sur GitHub. Le code sera encrypté tant que ce ne sera pas fait.

[4Ne pas confondre avec OpenID

[5Y compris si l’opération est effectuée par l’administrateur, afin de protéger parfaitement les intérêts de l’utilisateur.

Service OAuthSD pour Lusitanian/PHPoAuthLib

  publie le par DnC

La bibliothèque Lusitanian/PHPoAuthLib fournit un support oAuth en PHP et est très facile à intégrer à tout projet nécessitant un client OAuth 2.

Cet article présente le code du service OAuthSD à inclure dans la librairie.


Si la classe Oauthsd n’est pas fournie par un plugin ou une extension, le code ci-dessous doit être inséré dans la librairie à l’emplacement et sous le nom indiqué :

.../vendor/lusitanian/oauth/src/OAuth/OAuth2/Service/Oauthsd.php

Notes :
- Le scope openid indique que nous utilisons la couche OpenID Connect.
- ’response_type’ => ’code’ indique que nous utilisons le flux Authorization code.
- Le scope "sli" permet (notamment) la connexion unique.
- Pour une utilisation en simple SSO, il est inutile de risquer de dévoiler les données de l’utilisateur avec le scope profile. En supprimant le scope profile, OAuthSD utilisera le scope par défaut basic, et seul le champ sub (subject) sera retourné par la demande d’authentification.

PHP

  1. <?php
  2. /**
  3. * OpenID Connect Authentication with Oauthsd
  4. * @link https://oa.dnc.global
  5. * Oauthsd.php OAuth service for the Lusitanian PHPoAuthLib
  6. * @link https://github.com/Lusitanian/PHPoAuthLib
  7. * @author Bertrand Degoy bertrand@degoy.com
  8. * @copyright (c) 2018 B.Degoy DnC https://degoy.com
  9. * @license http://www.opensource.org/licenses/mit-license.html MIT License
  10. */
  11.  
  12. namespace OAuth\OAuth2\Service;
  13.  
  14. use OAuth\OAuth2\Token\StdOAuth2Token;
  15. use OAuth\Common\Http\Exception\TokenResponseException;
  16. use OAuth\Common\Http\Uri\Uri;
  17. use OAuth\Common\Consumer\CredentialsInterface;
  18. use OAuth\Common\Http\Client\ClientInterface;
  19. use OAuth\Common\Storage\TokenStorageInterface;
  20. use OAuth\Common\Http\Uri\UriInterface;
  21.  
  22.  
  23. class Oauthsd extends AbstractService
  24. {
  25.  
  26. /**
  27. * Available scopes (will be tested by AbstractService).
  28. * Might be larger than those defined by client application.
  29. * @link https://oa.dnc.global/-Sujets-communs-.html#definitionetgestiondesscopesdansOAuthsd
  30. * @see #attributes
  31. */
  32. const SCOPE_OPENID = 'openid';
  33. const SCOPE_PROFILE = 'profile';
  34. const SCOPE_EMAIL = 'email';
  35. const SCOPE_ADDRESS = 'address';
  36. const SCOPE_PHONE = 'phone';
  37. const SCOPE_SLI = 'sli';
  38.  
  39. public function __construct(
  40. CredentialsInterface $credentials,
  41. ClientInterface $httpClient,
  42. TokenStorageInterface $storage,
  43. $scopes = array(),
  44. UriInterface $baseApiUri = null
  45. ) {
  46.  
  47. $scopes = array_merge($scopes, array(openid, sli, profile));
  48.  
  49. parent::__construct($credentials, $httpClient, $storage, $scopes, $baseApiUri);
  50.  
  51. if (null === $baseApiUri) {
  52. $this->baseApiUri = new Uri('https://oa.dnc.global/');
  53. }
  54. }
  55.  
  56. /**
  57. * Override abstract function in order to provide required parameters in authorization request.
  58. * State is required by OAuthSD
  59. * Scopes :
  60. * 'openid' is required by OpenID Connect, 'sli' is particular to OAuthSD. Do not mention 'basic'.
  61. * @link https://oa.dnc.global/-Sujets-communs-.html#definitionetgestiondesscopesdansOAuthsd
  62. */
  63. public function getAuthorizationUri(array $additionalParameters = array())
  64. {
  65. $parameters = array_merge(
  66. $additionalParameters,
  67. 'client_id' => $this->credentials->getConsumerId(),
  68. 'redirect_uri' => $this->credentials->getCallbackUrl(),
  69. 'response_type' => 'code',
  70. 'scope' => 'openid sli', // do not mention basic.
  71. )
  72. );
  73.  
  74. if (!isset($parameters['state'])) {
  75. $parameters['state'] = $this->generateAuthorizationState();
  76. }
  77. $this->storeAuthorizationState($parameters['state']);
  78.  
  79. // Build the url
  80. $url = clone $this->getAuthorizationEndpoint();
  81. foreach ($parameters as $key => $val) {
  82. $url->addToQuery($key, $val);
  83. }
  84. return $url;
  85. }
  86.  
  87. /**
  88. * {@inheritdoc}
  89. */
  90. public function getAuthorizationEndpoint()
  91. {
  92. return new Uri('https://oa.dnc.global/authorize');
  93. }
  94.  
  95. /**
  96. * {@inheritdoc}
  97. */
  98. public function getAccessTokenEndpoint()
  99. {
  100. return new Uri('https://oa.dnc.global/token');
  101. }
  102.  
  103. /**
  104. * {@inheritdoc}
  105. */
  106. protected function getAuthorizationMethod()
  107. {
  108. return static::AUTHORIZATION_METHOD_HEADER_BEARER; // ou AUTHORIZATION_METHOD_QUERY_STRING ???
  109. }
  110.  
  111. /**
  112. * {@inheritdoc}
  113. */
  114. protected function parseAccessTokenResponse($responseBody)
  115. {
  116. $data = json_decode($responseBody, true);
  117.  
  118. if (null === $data || !is_array($data)) {
  119. throw new TokenResponseException('Unable to parse response.');
  120. } elseif (isset($data['message'])) {
  121. throw new TokenResponseException('Error in retrieving token: "' . $data['message'] . '"');
  122. } elseif (isset($data['name'])) {
  123. throw new TokenResponseException('Error in retrieving token: "' . $data['name'] . '"');
  124. }
  125.  
  126. $token = new StdOAuth2Token();
  127. $token->setAccessToken($data['access_token']);
  128. $token->setLifeTime($data['expires_in']);
  129.  
  130. if (isset($data['refresh_token'])) {
  131. $token->setRefreshToken($data['refresh_token']);
  132. unset($data['refresh_token']);
  133. }
  134.  
  135. unset($data['access_token']);
  136. unset($data['expires_in']);
  137.  
  138. $token->setExtraParams($data);
  139.  
  140. return $token;
  141. }
  142.  
  143. /**
  144. * {@inheritdoc}
  145. */
  146. public function requestAccessToken($code, $state = null)
  147. {
  148. if (null !== $state) {
  149. $this->validateAuthorizationState($state);
  150. }
  151.  
  152. $bodyParams = array(
  153. 'code' => $code,
  154. 'client_id' => $this->credentials->getConsumerId(),
  155. 'client_secret' => $this->credentials->getConsumerSecret(),
  156. 'redirect_uri' => $this->credentials->getCallbackUrl(),
  157. 'grant_type' => 'authorization_code',
  158. );
  159.  
  160. $responseBody = $this->httpClient->retrieveResponse(
  161. $this->getAccessTokenEndpoint(),
  162. $bodyParams,
  163. $this->getExtraOAuthHeaders()
  164. );
  165.  
  166. $token = $this->parseAccessTokenResponse($responseBody);
  167. $this->storage->storeAccessToken($this->service(), $token);
  168.  
  169. return $token;
  170. }
  171. }

Télécharger

Feuille de route

Dans une organisation fermée (corporate realm), on souhaite posséder son propre serveur OIDC et obtenir des données Userinfo selon un format spécifique, généralement en utilisant une base user existante.
Pour cela, il faudrait :
- une fonction setter pour l’URL du serveur OIDC afin de pouvoir choisir le serveur d’authentification.
- une fonction setter pour configurer les données de Userinfo.
- cela devrait conduire à un client OpenID Connect universel. Tenter alors un pull request vers lusitanian ?

SSO pour Wordpress avec OAuthSD

  publie le par DnC

Cet article montre comment réaliser le SSO sur un site Wordpress en le connectant au serveur OAuthSD. Dans cet exemple, nous utiliserons l’extension mini Orange OpenID Connect.

Avertissements :
1. Cette démonstration met en oeuvre un service de SSO géré par miniOrange Security Software Private Limited (Inde). La phase d’authentification passe par un web service de cette entreprise, qui lui permet de collecter les e-mails des utilisateurs. Des mails de prospection commerciale suivront. De plus, la localisation de données personnelle des utilisateurs hors de tout contrôle est contraire au RGPD. Cette extension de Wordpress ne peut donc être utilisée que pour démonstration.
2. Le site oa.dnc.global implémente un démonstrateur d’OAuthSD ; le serveur peut être indisponible et les données enregistrées effacées à tout moment. Si vous êtes intéressé par une version de production de OAuthSD, sur un serveur privé de votre propriété, contactez DnC

Configurez votre site Wordpress comme client OIDC

Vous devez avant tout installer l’extension mini Orange OpenID Connect sur votre site Wordpress.

L’exemple qui suit montre notre site de test wp.dnc.global configuré comme application cliente de OAuthSD.

Vous pouvez faire de votre propre site Wordpress un client de OAuthSD en remplaçant nos données par les vôtres comme suit :

Champ Nos données Vos données
Application = Client Id wpdemo Chaine identifiant l’application de façon unique
Redirect / Callback URL http://wp.dnc.global Simplement l’URL de votre site Wordpress
Client Secret Ghx45 !La1qBas Une chaîne aléatoire comme un mot de passe fort
Scope openid sli profile Idem ou voyez ici

Pour les autres champs, adoptez nos données.

La page de démo sur wp.dnc.global

Configurer MiniOrange OpenIDConnect

Une fois l’extension installée, il apparait une entrée "mini Orange OpenID Connect" dans la colonne de gauche du tableau de bord de votre site Wordpress. Cliquez dessus.

Dans la liste des serveurs OpenID Connect supportés, sélectionnez "Custom server" puis continuez la configuration sur l’onglet "Configure Apps".

Inscrire l’application sur le serveur OAuthSD

Vous devez pour cela :
- vous inscrire en tant qu’auteur si ce n’est déjà fait,
- inscrire l’application :

Tester la configuration

Lancez le test en revenant à l’onglet "Configure Apps" de l’extension et actionnant le bouton "Test configuration".

Le test doit afficher le formulaire de login sur OAuthSD :

Il faut un utilisateur identique sur Wordpress et sur OAuthSD (même login). En supposant que vous avez déjà un utiisateur Wordpress (par exemple votre compte d’administration), enregistrez-le sur OAuthSD.

Identifiez-vous. Vous devez obtenir :

Bravo ! votre site Web Wordpress est devenu client OpenID Connect !

En conclusion ...

Cette inscription d’une application Wordpress montre qu’OAuthSD est bien un serveur d’authentification tout aussi accessible que les grandes plateformes. Mais avec OAuthSD nous vous offrons beaucoup plus : le moyen de protéger vos données et de protéger les visiteurs de vos sites à l’aide d’un serveur de votre propriété.

Notons que cette utilisation qui est faite d’OpenID Connect réduit le point de vue au SSO. OpenID Connect, c’est énormément plus que le SSO, qui n’en est qu’un aspect mineur.

OpenID Connect, c’est :
- la protection des mots de passe,
- la sécurisation des échanges entre applications réparties dans le Cloud,
- la SSO et connexion unique (Single Login Identification, SLI)
etc.

Tester OAuthSD avec OIDC Debugger

  publie le par DnC

Une application cliente a été enregistrée sur ce serveur OAuthSD pour interagir avec https://oidcdebugger.com/ et tester le bon fonctionnement d’AUthSD.

Lancez le debugger : https://oidcdebugger.com/

Remplissez le formulaire comme suit :

Notez la mention du scope sli. Que vous l’indiquiez ou non, le SLI ne fonctionnera pas car OpenID Connect debugger n’accepte pas les cookies. Voyez SLI, SLO et SRA sont dans un bateau : OAuthSD.

Entrez dans le champ State une chaîne quelconque.

N’entrez rien dans le champ nonce (il se peut que OAuthSD soit configuré pour attendre un nonce particulier. Dans le doute, autant ne pas en indiquer).

Sélectionnez une ou plusieures valeurs de "Response Type. Cette sélection détermine le type de flux d’autorisation (Grant Type) comme décrit ici : Synthèse des flux d’autorisation (Grant Type) d’OpenID Connect.

Actionnez "Send Request".

Entrez le password = 012345678
puis actionnez "Submit".

La réponse montre le bon fonctionnement d’OAuthSD :

Tester OAuthSD avec OpenID Connect Playground

  publie le par DnC

Cet article décrit comment utiliser OpenID Connect Playground pour tester le fonctionnement de OAuth Server by DnC pour le protocole OpenID Connect.

1. Créer un client pour le test :

Nota : S’il s’agit de tester le fonctionnement du serveur, le client mentionné dans la configuration est déjà créé, vous pouvez donc passer cette étape.

Aller à http://oa.dnc.global/?page=creer-client, créer un client testidc comme suit :

2. Configurer le client :

Aller à l’URL https://openidconnect.net/,
- Dans le champ "Server Template", sélectionner "Custom".
- Cliquer sur le bouton CONFIGURATION pour faire apparaître le formulaire de configuration.
- Dans le champ "Discovery Document URL" indiquer : https://oa.dnc.global/.well-known/openid-configuration
- Actionner le bouton "USE DISCOVERY DOCUMENT". Les 3 champs suivants sont complétés automatiquement (c’est heureux car il y a un bug dans le playground empêchant l’inscription de ces champs).
- Compléter les 3 champs suivants avec les données de votre application. S’il s’agit de tester OAuthSD, indiquez "testidc", "thesecret" et "openid profile".

Le formulaire de configuration doit être rempli comme suit :

3. Lancer le Test :

- Actionner le bouton "SAVE".

Dans la fenêtre qui apparaît, entrez le login "bebert" et le password "012345678" :