1

J'évalue actuellement keycloak comme Identity Manager central pour plusieurs backend avec plusieurs services REST (Resteasy/Wildfly).Authentificateur personnalisé pour le domaine OpenCL Keycloak

Après beaucoup d'essais et d'erreurs et la lecture du docu, j'ai réussi à succès faire un Openid connecter connexion dans mon keycloakrealm personnalisé (analogique à ce poste http://blog.keycloak.org/2015/10/getting-started-with-keycloak-securing.html)

Je peux voir les accès jeton + id_token venir dans la réponse et sont en mesure de faire des demandes aux services REST en passant ces tokes.

Cependant, je ne peux m'authentifier qu'en utilisant les informations d'identification des utilisateurs définis dans keycloak lui-même. Cependant, dans notre cas réel, les utilisateurs résident dans SAP et sont inconnus à keycloak.

Nous disposons cependant d'une javalibrary pour authentifier ces utilisateurs via le connecteur SAPJCO.

Quelqu'un peut-il me dire comment configurer keycloak pour utiliser un module "d'authentification personnalisée" pour l'authentification réelle?

La mise en œuvre d'un SPI d'authentificateur personnalisé (https://keycloak.gitbooks.io/server-developer-guide/content/v/2.1/topics/auth-spi.html) est-elle la solution? Si non, quelle serait une solution possible?

J'espère que vous pouvez aider les gars!

Reagrds,

Kim Zeevaarders Pays-Bas

Répondre

2

Si vous pouvez accéder aux utilisateurs SAP détails via le connecteur SAPJCO, vous pouvez alors écrire une coutume Federation Provider. L'exemple fourni est rudimentaire mais il donne l'idée de base et les dépendances maven.

En un mot, vous devrez étendre org.keycloak.models.UserFederationProvider et fournir des méthodes pour obtenir les détails de l'utilisateur, la validation des informations d'identification et la recherche par attributs. Dans votre cas, vous utiliserez votre connecteur SAPJCO pour remplir chacune de ces fonctions par rapport à votre base d'utilisateurs existante.

+0

Thx pour le conseil. J'ai réussi à le mettre en œuvre comme vous l'avez suggéré et ça marche bien! Maintenant, pour la deuxième partie: comment transmettre les informations d'identification à keycloak directement depuis l'intérieur de l'appel REST? Dans l'en-tête Authorization? –