J'essaie de comprendre ce concept de bearer-only
clients dans Keycloak.
Je comprends le concept de public vs confidentiel et le concept de comptes de service et le grant_type=client_credentials
des trucs. Mais avec bearer-only
, Je suis coincé.
La recherche sur Google ne révèle que des fragments de discussions disant:
Vous ne pouvez pas obtenir un jeton de keycloak avec un
bearer-only
client.
Les documents ne sont pas clairs non plus. Tout ce qu'ils disent c'est:
Le type d'accès uniquement au porteur signifie que l'application n'autorise que les demandes de jeton au porteur.
Ok, si mon application n'autorise que les demandes de jeton au porteur, comment puis-je obtenir ce jeton si je ne peux pas l'obtenir auprès de Keycloak en utilisant l'ID client/secret client?
Et si vous ne pouvez pas obtenir de jeton, que pouvez-vous du tout? Pourquoi ces clients existent-ils? Quelqu'un peut-il donner un exemple d'utilisation de ce type de client?
Réponse courte: vous ne pouvez pas obtenir de jeton d'accès à l'aide d'un client au porteur uniquement, mais vous pouvez obtenir un jeton d'accès qu'un client au porteur peut accepter à l'aide d'un autre client.
Plus de détails, les clients au porteur représentent utilement les applications dorsales, comme le service Web, appelées par l'application frontale et sécurisées par le serveur d'autorisation (= keycloak)
Les applications de service backend/Web ne sont pas appelées directement par l'utilisateur, elles ne peuvent donc pas jouer dans le flux interactif utilisateur Oauth2.0. La définition de "support uniquement" documente ce fait sur le serveur keycloak, permettant à l'administrateur de configurer le client sans valeurs autrement obligatoires (exemple, rediriger uri ...) et permettant des messages d'erreur utiles si quelqu'un essaie d'obtenir un jeton pour un tel client
Cependant, cela ne signifie pas que vous ne pouvez pas configurer de rôles spécifiques pour ce client: il doit donc apparaître dans le domaine keycloak.
De plus, le client uniquement porteur doit vérifier le jeton d'accès reçu, en particulier, si cette fonctionnalité de l'adaptateur (recommenden) "Verify-token-audience" est activée, le client uniquement porteur doit vérifier que le jeton d'accès a été émis pour cela: le client au porteur uniquement doit se trouver dans l'attribut audience du jeton d'accès: voir https://www.keycloak.org/docs/latest/server_admin/index.html#_audience
pour la gestion d'audience par keycloak, les clients au porteur uniquement doivent être enregistrés dans le domaine keycloak.