Sélectionner une page


Dans ce didacticiel, vous apprendrez à enregistrer une nouvelle application client OAuth avec Keycloak et à demander un jeton d’accès à l’aide du type d’octroi d’informations d’identification du client.

Si vous souhaitez apprendre à effectuer d’autres flux d’autorisation OAuth 2 à l’aide de Keycloak, consultez également les didacticiels suivants.

Activer l’octroi des informations d’identification du client

La première étape consiste à créer un nouveau client OAuth dans Keycloak. Si l’application cliente a déjà été créée dans Keycloak, assurez-vous qu’elle est activée pour le type d’octroi des informations d’identification du client.

Suivez ce didacticiel pour apprendre à créer une nouvelle application client OAuth dans Keycloak: Créer un nouveau client OAuth dans Keycloak.

Pour activer le flux d’octroi des informations d’identification du client pour l’application client OAuth dans Keycloak, procédez comme suit:

  1. Ouvrez l’application cliente.
  2. Sélectionnez l’onglet Paramètres.
  3. Activez les comptes de service comme indiqué dans l’image ci-dessous.
  4. cliquer sur économiser Bouton.

Activer le flux d'octroi des informations d'identification du client dans Keycloak

Avec l’option Comptes de service activée, nous pouvons copier les informations d’identification du client et les utiliser dans la requête HTTP.

Identifiants du client

L’application cliente doit s’authentifier auprès du serveur d’autorisation pour que les informations d’identification du client soient accordées. Pour ce faire, l’application cliente doit inclure les valeurs client_id et client_secret dans la demande de publication HTTP pour un jeton d’accès. Utilisez les étapes suivantes pour rechercher les valeurs client_id et client_secret pour votre application client OAuth dans Keycloak.

  1. Ouvrez les détails de l’application cliente dans Keycloak.
  2. Basculer vers identifiants Languette,
  3. Copiez la valeur Client Secret.

Trouvez la valeur secrète du client dans Keycloak

Vous pouvez trouver la valeur de l’ID client sur le les paramètres Languette.

Trouvez la valeur de l'ID client dans Keycloak

Demander un jeton d’accès

Pour demander un jeton d’accès à l’aide du flux d’octroi des informations d’identification du client, l’application cliente doit en envoyer un. Requête HTTP POST directement à un point de terminaison / token.

curl --location --request POST 'http://localhost:8080/auth/realms/appsdeveloperblog/protocol/openid-connect/token' 
--header 'Content-Type: application/x-www-form-urlencoded' 
--data-urlencode 'client_id=photo-app-client-credentials' 
--data-urlencode 'client_secret=91813ee4-0769-4a7f-9dd3-a12f1f67631e' 
--data-urlencode 'scope=email' 
--data-urlencode 'grant_type=client_credentials'

Où:

  • N ° de client – est un ID client de l’application client OAuth enregistrée auprès du serveur d’autorisation.
  • client_secret – est une valeur secrète client d’une application client OAuth,
  • portée – Valeur de portée facultative,
  • grant_type – doit être client_credentials pour un type d’octroi d’informations d’identification client.

Si la demande est OK et que les informations d’identification du client sont vérifiées avec succès par le serveur d’autorisation, le serveur d’autorisation répond immédiatement avec un jeton d’accès.

{
    "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICItNUlsX2I0cUktdWFvaEI3d244UHY3WEM2UEktU3BNbmZCRnlJZUx6QTJNIn0.eyJleHAiOjE1OTQyMTY0OTQsImlhdCI6MTU5NDIxNjE5NCwianRpIjoiZjVmNTBjMzEtNWIwNC00OWQ2LTljYmMtM2YwMWU5OTg5ZWQxIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL2FwcHNkZXZlbG9wZXJibG9nIiwic3ViIjoiNTlmODFhMzYtYTIyMC00ZmE4LTlhZWEtMzRlN2JhNjY4OTAxIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoicGhvdG8tYXBwLWNsaWVudC1jcmVkZW50aWFscyIsInNlc3Npb25fc3RhdGUiOiI3NTAyY2YzMS1iMjEwLTQ3NTQtYjkxOS0wN2UxZDg0OTNmYTMiLCJhY3IiOiIxIiwic2NvcGUiOiJlbWFpbCIsImNsaWVudElkIjoicGhvdG8tYXBwLWNsaWVudC1jcmVkZW50aWFscyIsImNsaWVudEhvc3QiOiIxMjcuMC4wLjEiLCJjbGllbnRBZGRyZXNzIjoiMTI3LjAuMC4xIn0.fQVsLpQJchcofA18FOSr0gtjeo01s9bMFF1ewsI-trrzzNL28QABmm_rsb4-p0iw5fGG3-bEInFe-Owxm9sZbQ_O7je_BVMDrlJEs-bAY5cLIQWVqy3P5xCsyFt-F6y89LAOCUCGI127W18zoUagLAoi5bGCIgxKled-MYRK8MQ-PcZzYCp5FkPFMv6Wd8I5m6TZJ6xK0eG79LVDPqj-s9YGfjY_n64uiT9VneYHG261SisgZ978ZMF-gkjit9CsSTQEW2cBlyeriy133s0E0ycvybLwnHYsGzRs5k8xhgqa3ZYovtZeK2SWARoNSXWQjUCBcndT9teWcZSgQxPIzw",
    "expires_in": 300,
    "refresh_expires_in": 1800,
    "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJlYWQyMDZmOS05MzczLTQ1OTAtOGQ4OC03YWNkYmZjYTU5MmMifQ.eyJleHAiOjE1OTQyMTc5OTQsImlhdCI6MTU5NDIxNjE5NCwianRpIjoiMDQ0MDEwMjItY2QwNy00MTczLTkwMjctMTQwMGU4Yjg1MzdlIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL2FwcHNkZXZlbG9wZXJibG9nIiwiYXVkIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL2FwcHNkZXZlbG9wZXJibG9nIiwic3ViIjoiNTlmODFhMzYtYTIyMC00ZmE4LTlhZWEtMzRlN2JhNjY4OTAxIiwidHlwIjoiUmVmcmVzaCIsImF6cCI6InBob3RvLWFwcC1jbGllbnQtY3JlZGVudGlhbHMiLCJzZXNzaW9uX3N0YXRlIjoiNzUwMmNmMzEtYjIxMC00NzU0LWI5MTktMDdlMWQ4NDkzZmEzIiwic2NvcGUiOiJlbWFpbCJ9.9qWVA-pyBp0AZ7BUj2Z_RAlQlDSU15kyvpcwEGfXj1k",
    "token_type": "bearer",
    "not-before-policy": 0,
    "session_state": "7502cf31-b210-4754-b919-07e1d8493fa3",
    "scope": "email"
}

Selon Spécifications OAuth 2.0le jeton d’actualisation ne doit pas être inclus dans la réponse. Mais apparemment, Keycloak contient quand même le jeton d’actualisation.

Une fois que l’application cliente reçoit un jeton d’accès, elle peut utiliser ce jeton d’accès pour envoyer une demande à un serveur de ressources.

J’espère que ce tutoriel vous a été utile. Si vous souhaitez en savoir plus sur Keycloak et comment l’utiliser avec d’autres flux d’autorisation OAuth, consultez les autres Tutoriels Keycloak sur cette page. J’espère que vous le trouverez également utile.

Amusez-vous avec vos études!



Source link

Recent Posts