Go to file
Matthieu Lamalle b5de7ee873
Some checks reported warnings
Cadoles/hydra-sql/pipeline/pr-develop This commit is unstable
correction phpstan
2023-12-14 10:25:22 +01: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 issue-21: actualisation de l'env de dev et maj dépendances 2023-12-13 15:52:43 +01:00
misc issue-21: actualisation de l'env de dev et maj dépendances 2023-12-13 15:52:43 +01:00
public maj manifest 2023-01-10 17:03:00 +01:00
src correction phpstan 2023-12-14 10:25:22 +01:00
templates issue-12: implémentation redis pour la gestion des session 2023-06-12 15:26:56 +02:00
tools/php-cs-fixer php-cs-fixer 2022-05-04 17:13:04 +02:00
translations ajout de l'updatde hashage selon algo indiqué en ver env, fix typo 2022-12-16 15:00:14 +01:00
.dockerignore feat: keep up with technical debt 2023-12-11 14:41:20 +01:00
.env Maj env et doc 2023-12-12 08:47:41 +01:00
.gitignore feat: keep up with technical debt 2023-12-11 14:41:20 +01:00
.trivyignore.yaml feat: keep up with technical debt 2023-12-11 14:41:20 +01:00
composer.json issue-12: implémentation redis pour la gestion des session 2023-06-12 15:26:56 +02:00
composer.lock issue-21: actualisation de l'env de dev et maj dépendances 2023-12-13 15:52:43 +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 issue-21: actualisation de l'env de dev et maj dépendances 2023-12-13 15:52:43 +01:00
Jenkinsfile feat: keep up with technical debt 2023-12-11 14:41:20 +01:00
Makefile feat: keep up with technical debt 2023-12-11 14:41:20 +01:00
package-lock.json issue-21: actualisation de l'env de dev et maj dépendances 2023-12-13 15:52:43 +01:00
package.json maj manifest 2023-01-10 17:03:00 +01:00
readme.md correction phpstan 2023-12-14 10:25:22 +01:00
webpack.config.js maj manifest 2023-01-10 17:03:00 +01:00

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

Configuration

Variables d'environnement

# Configuration symfony containers
PHP_FPM_MEMORY_LIMIT=128m
APP_ENV=dev
DATABASE_URL=postgresql://lasql:lasql@postgres:5432/lasql?serverVersion=15&chartset=utf8

DB_USER="lasql"
DB_PASSWORD="lasql"

ISSUER_URL="http://localhost:8000"
BASE_URL='http://localhost:8082'
# connexion hydra
HYDRA_ADMIN_BASE_URL='http://hydra:4445'
DSN_REMOTE_DATABASE="pgsql:host='postgres';port=5432;dbname=lasql"
APP_LOCALES="fr,en"
HASH_ALGO_LEGACY="sha256, bcrypt"
SECURITY_PATTERN="password,salt,pepper"
REDIS_DSN="redis://redis:6379"
PEPPER=

Algorithmes de hashage compatibles

La login app est compatible par défaut avec toutes les méthodes de hashage de PHP et avec SSHA. Aucune configuration supplémentaire n'est nécessaire.

Pattern de hashage

Définir dans la variable SECURITY_PATTERN le pattern utilisé avec les mots clés: password | salt | pepper séparé par des virgules pour représenter la séquence à employer pour le hashage du mot de passe. Exemple : SECURITY_PATTERN="salt,password,pepper"

Schéma de base de donnée

Permet d'adapter les requetes SQL à la base de donnée utilisée en indiquant les noms de colonnes de celle-ci.

# config/sql_login_configuration/sql_login.yaml
sql_login:
  login_column_name: email
  password_column_name: password
  salt_column_name: ~
  table_name: usager
  data_to_fetch:
    - email
    - lastname
    - firstname

Environnement de développement

Tester

Se rendre sur http://localhost:8000/ et cliquer Login pour commencer une nouvelle connexion. 3 utilisateurs d'exemple sont disponible pour les tests:

Login Mot de passe Algorithme
test1@test.com 123456 Bcrypt
test2@test.com 123456 SHA256
test3@test.com 123456 SSHA

Base de donnée

2 bases de données différentes sont disponible pour les tests. Pour choisir la base de donnée à utiliser, modifier les d'environnement relatives à la base de donnée.

  • URL Postgres: postgresql://lasql:lasql@mariadb:3306/lasql?serverVersion=15&chartset=utf8
  • URL Mariadb: mysql://lasql:lasql@postgres:5432/lasql

Redis

La variable REDIS_DSN est obligatoire. Hydra-sql utilise dorénavant Redis pour le stockage du cache et des session. Compatible Redis Sentinel ex : 'redis:?host[redis1:26379]&host[redis2:26379]&host[redis3:26379]&redis_sentinel=mymaster'

Liste des ports

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