Go to file
Rudy Masson 51d20c6e15
Cadoles/hydra-sql/pipeline/head Something is wrong with the build of this commit Details
maj: sémantique, révision vérification ppassword
2022-12-14 16:38:46 +01:00
.cache/composer suppression des fichiers cachés 2022-12-13 16:07:48 +01:00
.config/composer environnement complet autonome, révision complete de la méthode, ajout de configuration 2022-12-09 17:31:07 +01:00
.local/share/composer environnement complet autonome, révision complete de la méthode, ajout de configuration 2022-12-09 17:31:07 +01:00
.npm suppression des fichiers cachés 2022-12-13 16:07:48 +01:00
.vscode php-cs-fixer 2022-05-04 17:13:04 +02:00
assets traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
bin first commit 2022-04-07 11:49:17 +02:00
config maj: sémantique, révision vérification ppassword 2022-12-14 16:38:46 +01:00
containers maj: sémantique, révision vérification ppassword 2022-12-14 16:38:46 +01:00
public traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
src maj: sémantique, révision vérification ppassword 2022-12-14 16:38:46 +01:00
templates traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
tools/php-cs-fixer php-cs-fixer 2022-05-04 17:13:04 +02:00
translations traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
.env traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
.gitignore suppression des fichiers de logs supervisor 2022-12-13 16:12:30 +01:00
Jenkinsfile jenkinsfile 2022-05-19 09:51:04 +02:00
Makefile traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
composer.json traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
composer.lock traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
composer.phar environnement complet autonome, révision complete de la méthode, ajout de configuration 2022-12-09 17:31:07 +01:00
docker-compose.yml traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
package-lock.json traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
package.json traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
readme.md maj: sémantique, révision vérification ppassword 2022-12-14 16:38:46 +01:00
supervisord.pid maj: sémantique, révision vérification ppassword 2022-12-14 16:38:46 +01:00
symfony.lock traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
webpack.config.js traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00
yarn.lock traductions, sentry, form, mariadb, assets 2022-12-13 15:46:24 +01:00

readme.md

Hydra-sql

Une LoginApp pour le serveur OpenID Connect Ory/Hydra. Elle permet de se connecter à une base de donnée et de vérifier un mot de passe donné sur une mire locale puis d'aller chercher des données demandées

Usage

Dans le cas d'utilsation du thème pour personaliser la page de login

Développement

Un environnement Docker Compose est proposé comme support de développement.

Afin de démarrer celui-ci:


# Démarrer l'environnement docker-compose
make up

# fermer l'environnement
make down

Variables d'environnement

DB_USER="lasql"
DB_PASSWORD="lasql"

ISSUER_URL="http://localhost:8000"
BASE_URL='http://localhost:8080'
# connexion hydra
HYDRA_ADMIN_BASE_URL='http://hydra:4445'
DSN_REMOTE_DATABASE="pgsql:host='postgres';port=5432;dbname=lasql"
APP_LOCALES="fr,en"

Tests password

Postgres

Les mot de passe inscrits en bdd sont hachés en tenant compte du salt si non vide (cf données de la bdd plus bas) et du pepper inscrit en variable d'environnement (généré avec : bin2hex(random_bytes(32))
Il faut inscrire dans slq_login_configuration salt_column_name: salt
et conserver le pepper dans service.yaml
env(PEPPER): "257d62c24cd352c21b51c26dba678c8ff05011a89022aec106185bf67c69aa8b"

mariadb

En plus de tester la connexion à une différente base de donnée, on teste le hashage de password sans salt ni pepper
Il faut mettre dans sql_login_configuration salt_column_name: ~
et dans service.yaml
env(PEPPER): ~

test connexion mariadb

Modifier la variable d'environnement avec cette valeur
DSN_REMOTE_DATABASE="mysql:host=mariadb;port=3306;dbname=lasql;"

Données de test

postgres

|email|password|salt|lastname|firstname
    |test1@test.com| 8ad4025044b77ae6a5e3fcf99e53e44b15db9a4ecf468be21cbc6b9fbdae6d9f| cesaltestunexemple| Locke|John|
    |test2@test.com| 50626fa21f45a275cea0efff13ff78fd02234cade322da08b7191c7e9150141d| NULL| Dubois| Angela|
    |test3@test.com| 504ae1c3e2f5fdaf41f868164dabcef21e17059f5f388b452718a1ce92692c67| cesaltestunautreexemple| Dupont| Henri|
    |test4@test.com| 50626fa21f45a275cea0efff13ff78fd02234cade322da08b7191c7e9150141d| NULL| Durand|Isabelle|

mariadb (sans salt)

|email|password|lastname|firstname
    |test1@test.com| 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92| Sassot|Charles|
    |test2@test.com| 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92| Dubois| Angela|
    |test3@test.com| 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92| Dupont| Henri|
    |test4@test.com| 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92| Durand|Isabelle|

Mot de passe = '123456' hashé en par sha256

configuration

Permet d'adapter les requetes SQL en indiquant les noms de colonnes nécessaires.

pdo_configuration/pdo.yaml

pdo: 
  login_column_name: email
  password_column_name: password
  salt_column_name: ~
  table_name: usager
  data_to_fetch:
    - email
    - lastname
    - firstname

Conteneurs

Nom Description Port(s) hôte utilisé(s)
oidc-test Application factice permettant de tester l'authentification OpenID Connect 8080
hydra Serveur Ory/Hydra 8081
hydra-sql Login/Consent/Logout App (ce projet) 8082
postgres Base de donnée postgres support du test et pour hydra 5432
mariadb Base de donnée mariadb support du test 3306
pgadmin pour administrer la base de donnée 8085