Wiki source code of Authenticating with your OIDC client and fetch collab user info
Hide last authors
| author | version | line-number | content |
|---|---|---|---|
| |
1.2 | 1 | == Abstract == |
| 2 | |||
| 3 | You had been creating an OIDC client following our guide [[https:~~/~~/wiki.ebrains.eu/bin/view/Collabs/collaboratory-community-apps/Community%20App%20Developer%20Guide/Registering%20an%20OIDC%20client/>>https://wiki.ebrains.eu/bin/view/Collabs/collaboratory-community-apps/Community%20App%20Developer%20Guide/Registering%20an%20OIDC%20client/]] | ||
| 4 | |||
| 5 | The redirect_uri is set with the url of your application, in this exemple we will use postman, a platform for api developement, use your own application, for exemple when you loggin to this wiki, the redirect uri is [[https:~~/~~/wiki.ebrains.eu/*>>https://wiki.ebrains.eu/*]] | ||
| 6 | |||
| 7 | The client is confidential with a secret, you obtain it throught the registering oidc client tutorial above. | ||
| 8 | |||
| |
2.2 | 9 | [[image:Screenshot 2020-07-15 at 17.47.12.png]] |
| |
1.2 | 10 | |
| |
2.2 | 11 | |
| 12 | The whole authentication flow presented here is based on the official OAuth2 rfc describe in the section 4.1 | ||
| 13 | |||
| 14 | [[https:~~/~~/tools.ietf.org/html/rfc6749#section-4.1>>https://tools.ietf.org/html/rfc6749#section-4.1]] | ||
| 15 | |||
| 16 | == Authentication flow == | ||
| 17 | |||
| 18 | === Authorization Code Grant === | ||
| 19 | |||
| 20 | ==== Request ==== | ||
| 21 | |||
| 22 | /GET on [[https:~~/~~/iam.ebrains.eu/auth/realms/hbp/protocol/openid-connect/auth >>https://iam.ebrains.eu/auth/realms/hbp/protocol/openid-connect/auth]] | ||
| 23 | |||
| 24 | with query parameters | ||
| 25 | |||
| 26 | * response_type=code | ||
| 27 | * client_id=community-apps-tutorial | ||
| 28 | * redirect_uri=[[https:~~/~~/www.getpostman.com/oauth2/callback>>https://www.getpostman.com/oauth2/callback]] | ||
| 29 | * login=true | ||
| 30 | * scope=openid+group+team | ||
| 31 | |||
| 32 | so | ||
| 33 | |||
| 34 | [[https:~~/~~/iam.ebrains.eu/auth/realms/hbp/protocol/openid-connect/auth?response_type=code&client_id=community-apps-tutorial&redirect_uri=https:~~/~~/www.getpostman.com/oauth2/callback&login=true&scope=openid+group+team>>https://iam.ebrains.eu/auth/realms/hbp/protocol/openid-connect/auth?response_type=code&client_id=community-apps-tutorial&redirect_uri=https://www.getpostman.com/oauth2/callback&login=true&scope=openid+group+team]] | ||
| 35 | |||
| 36 | Of course replace **client_id** and **redirect_uri** with your own configuration | ||
| 37 | |||
| 38 | This will redirect you to the login page of **iam **where your user must enter they username/password | ||
| 39 | |||
| 40 | ==== Scope ==== | ||
| 41 | |||
| 42 | In the request you can see a scope **parameter** | ||
| 43 | |||
| 44 | * **openid : **This scope is required in oidc, it contains basic information of the user such as it username, email and full name. | ||
| 45 | * **group **( optional ) **:** | ||
| 46 | |||
| 47 | ==== Response ==== | ||
| 48 | |||
| 49 | After the loggin, you got a 301 redirection and 200 success http response with a **code** inside | ||
| 50 | |||
| 51 | [[https:~~/~~/www.getpostman.com/oauth2/callback?session_state=a0ff8a68-2654-43ef-977a-6c15ce343546&code=f3f04f93-hbp-482d-ac3d-demo.turtorial.7122c1d9-3f7e-4d80-9c4f-dcd244bc2ec7>>https://www.getpostman.com/oauth2/callback?session_state=a0ff8a68-2654-43ef-977a-6c15ce598886&code=f3f04f93-b98d-482d-ac3d-414cead54de0.a0ff8a68-2654-43ef-977a-6c15ce598886.7122c1d9-3f7e-4d80-9c4f-dcd244bc2ec7]] | ||
| 52 | |||
| 53 | (% class="box infomessage" %) | ||
| 54 | ((( | ||
| 55 | the code is very important for the next step here the code is //f3f04f93-hbp-482d-ac3d-demo.turtorial.7122c1d9-3f7e-4d80-9c4f-dcd244bc2ec7// | ||
| 56 | ))) | ||
| 57 | |||
| 58 | |||
| |
1.2 | 59 |