Skip to content
Snippets Groups Projects
Commit 9f6ff924 authored by thibault.capt's avatar thibault.capt
Browse files

finish README.md

parent 778351ff
No related branches found
No related tags found
No related merge requests found
......@@ -315,6 +315,8 @@ Dans notre cas précis, nous allons utiliser la ligne de commande :
$ curl http://localhost:8080/students
```
Réponse :
```json
[
{
......@@ -564,8 +566,13 @@ func basicAuth(router *gin.Engine) {
Voici le résultat visualisé dans Postman :
1. Si nous ne sommes pas connectés, l'erreur 401 - unauthorized est retournée
![Reponse élève - Status unauthorize](./img/imgUnauthorize.png)
2. Si nous ne sommes pas connectés, l'erreur 200 - OK est retournée
![Reponse élève - Status ok](./img/img1.png)
### Implémenter un OIDC consumer en utilisant Okta
Pour la partie des enseignants, il a fallu implémenter un OIDC consumer en utilisant Okta. Pour commencer, il a fallu
......@@ -776,10 +783,38 @@ func oktaAuth(router *gin.Engine) {
Pour vérifier le bon fonctionnement de notre token JWT, il a fallu vérifier la bonne implémentation avec Postman.
1. Générer le code d'accès pour récupérer le Token
2. Générer le Token
3. L'utiliser pour les requêtes sur les enseignants
// TODO Screen
![get access token](./img/imgGetAccessToken.png)
Il faut exécuter le lien dans votre navigateur préféré et se connecter avec un compte qui a été créer au préalable.
Le code se situe dans l'Url retourné.
Par exemple, dans mon cas, l'Url retourné est le suivant :
http://localhost:8080/authorization-code/callback?code=ezBFqHWR5T-2Mb9MgwOwbMmVwEmHpPW2YFNp9_Q5F_8&state=100
Il faut donc récupérer le code entre le "code=" et le "&".
3. Générer le Token
![Get token](./img/getToken.png)
Remplir le champ "code" par le code généré à l'étape 2. Le token est retourné dans le JSON dans le champ "Access token".
4. L'utiliser pour les requêtes sur les enseignants
1. Si nous ne sommes pas connectés, l'erreur 401 - unauthorized est retournée
![Reponse enseignant - Status unauthorized](./img/imgNoAuthTeachers.png)
2. Si nous ne sommes pas connectés, l'erreur 200 - OK est retournée
![Reponse enseignant - Status ok](./img/imgTeachers.png)
3. Si le token est incorrect, l'erreur 403 - Forbidden est retournée
![Reponse enseignant - Status forbidden](./img/imgForbidden.png)
Comme nous avons créé trois utilisateurs, il a fallu les utiliser. J'ai donc implémenté les autorisations suivantes :
......@@ -1059,4 +1094,7 @@ func oktaAuth(router *gin.Engine) {
```
Pour une question de practicité et que ce projet reste un exercice, je n'ai pas déplacé le fichier `.env` dans un Git
à part. Sinon, il aurait fallu cacher ce fichier aux éventuels regards malveillants.
Voilà. Vous avez une RESTful API complétement fonctionnelle et sécurisée !
\ No newline at end of file
img/getToken.png

427 KiB

img/img1.png

278 KiB

img/imgForbidden.png

271 KiB

img/imgGetAccessToken.png

97.7 KiB

img/imgNoAuthTeachers.png

260 KiB

img/imgTeachers.png

283 KiB

img/imgUnauthorize.png

256 KiB

......@@ -181,7 +181,6 @@ func verify(c *gin.Context) bool {
// Authorizations by user
sub := jwt.Claims["sub"].(string)
if targetAuth, ok := authorization[sub]; ok {
m := c.Request.Method
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment