2022-12-13 15:46:24 +01:00
|
|
|
# Hydra-sql
|
|
|
|
|
|
|
|
Une [LoginApp](https://www.ory.sh/docs/hydra/concepts/login) pour le serveur OpenID Connect [Ory/Hydra](https://github.com/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:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
|
|
# 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"
|
|
|
|
```
|
|
|
|
|
|
|
|
### 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
|
|
|
|
|
|
|
|
un base de données postgres est montée dans l'environnement pour tester la connexion:
|
|
|
|
|
|
|
|
utilisateurs disponibles au démarage:
|
|
|
|
('test1@test.com', '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92', 'Locke', 'John'),
|
|
|
|
('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:
|
|
|
|
column_login_name: email
|
|
|
|
column_password_name: password
|
|
|
|
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`
|