Matthieu Lamalle
6ec21e4677
Some checks are pending
Cadoles/hydra-sql/pipeline/pr-develop Build started...
|
||
---|---|---|
assets | ||
bin | ||
config | ||
misc | ||
public | ||
src | ||
templates | ||
tools/php-cs-fixer | ||
translations | ||
.dockerignore | ||
.env | ||
.gitignore | ||
.trivyignore.yaml | ||
composer.json | ||
composer.lock | ||
composer.phar | ||
docker-compose.yml | ||
Jenkinsfile | ||
Makefile | ||
package-lock.json | ||
package.json | ||
readme.md | ||
webpack.config.js |
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
Variable | Description | Valeur par défaut | Utilisation |
---|---|---|---|
APP_ENV |
Environnement symfony | prod | dev:prod |
APP_DEBUG |
Console de debug symofny | false | true:false |
PHP_FPM_MEMORY_LIMIT |
php-fpm memory limit | 128mo | |
NGINX_APP_SERVER_LISTEN |
Port d'écoute de l'application | 8080 | |
HYDRA_ADMIN_BASE_URL |
Url d'admin Hydra ou dispatcher | http://hydra:4445 | obligatoire |
BASE_URL |
Url d'accès | http://localhost:8080 | obligatoire |
DSN_REMOTE_DATABASE |
DSN de la BDD | postgresql://lasql:lasql@postgres:5432/lasql?serverVersion=15&chartset=utf8 | |
DB_USER |
User de connection à la BDD | lasql | obligatoire |
DB_PASSWORD |
PAssword de l'utilisateur de la BDD | lasql | obligatoire |
APP_LOCALES |
Langues disponibles dans l'application | fr,en | obligatoire |
HASH_ALGO_LEGACY |
ALgorythme de Hashage par défaut | sha256 | |
SECURITY_PATTERN |
Séquence à employer pour le hashage du mot de passe | password,salt,pepper | obligatoire |
PEPPER |
Pepper utilisé pour le Hashage | ||
REDIS_DSN |
DSN du serveur Redis | redis://redis:6379 | obligatoire |
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 |