Valentin Carroy
dca6d05e33
Cadoles/hydra-sql/pipeline/head This commit is unstable
Details
|
||
---|---|---|
assets | ||
bin | ||
config | ||
misc | ||
public | ||
src | ||
templates | ||
tools/php-cs-fixer | ||
translations | ||
.dockerignore | ||
.env | ||
.gitignore | ||
.trivyignore.yaml | ||
Jenkinsfile | ||
Makefile | ||
composer.json | ||
composer.lock | ||
composer.phar | ||
docker-compose.yml | ||
package-lock.json | ||
package.json | ||
readme.md | ||
webpack.config.js |
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
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 |