11.3. Authentification de tierce partie via RH-SSO
Pour utiliser les services à distance différents fournis par Red Hat JBoss Suite BPM ou par Intelligent Process Server, votre client doit être authentifié sur le serveur de RH-SSO, et avoir un jeton valide pour exécuter les requêtes. Pour utiliser les services à distance, l’utilisateur authentifié doit avoir les rôles suivants :
rest-all: pour utiliser les services à distance de Business CentralNote
Le rôle rest-all doit contenir l'utilisateur dans la propriétéorg.kie.server.controller.user.kie-server: pour utiliser les services à distance Intelligent Process Server
Utiliser la console d'administration RH-SSO pour créer ces rôles et les assigner aux utilisateurs qui vont consommer les services distants.
Pour réussir une authentification de client de tierce partie via RH-SSO, vous pourrez choisir l'une des options suivantes :
- Authentification de base (si le client de l'application le supporte)
- Authentification basée jetons
11.3.1. Authentification de base Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Si vous avez activé l'authentification de base dans la configuration de l'adaptateur du client RH-SSO pour Business Central et Intelligent Process Server à la fois, vous pourrez éviter les appels de demandes/réactualisation de jetons et appeler les services comme expliqué dans l'exemple ci-dessous.
- Pour les points de terminaison distants basés web :
curl http://admin:password@localhost:8080/business-central/rest/repositories
curl http://admin:password@localhost:8080/business-central/rest/repositoriesCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Pour Intelligent Process Server :
curl http://admin:password@localhost:8080/kie-server/services/rest/server/
curl http://admin:password@localhost:8080/kie-server/services/rest/server/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.3.2. Authentification basée jetons Copier lienLien copié sur presse-papiers!
Copier lienLien copié sur presse-papiers!
Si vous souhaitez opter pour une option plus sécurisée de l’authentification, vous pouvez consommer les services à distance de Central Business et Intelligent Process Server en utilisant un jeton obtenu par un nouveau client RH-SSO.
Procédure 11.8. Obtenir et utiliser un jeton pour autoriser les appels distants
- Cliquer sur l'onglet Client dans le menu principal d'administration de console, et cliquer sur pour créer un nouveau client.La page Ajouter Client s'ouvrira.
- Dans la page Ajouter Client, fournir les informations requises pour créer un nouveau client pour votre domaine. Exemple :
- ID Client : kie-remote
- Protocole Client : openid-connect
- Type d'accès : public
- URI de redirection valides: http://localhost/
- Cliquez pour enregistrer vos modifications.
- Obtenir un jeton à partir de Configurations de domaine.
- Dans la console admin RH-SSO, cliquer sur l'onglet Configurations de domaine.
- Cliquer sur l'onglet Jetons.
- Changer la valeur de Durée de vie des jetons d'accès à
15minutes.Cela vous donne suffisamment de temps pour obtenir un jeton et invoquer le service avant qu'il n'expire. - Cliquez pour enregistrer vos modifications.
- Une fois qu'un client public est créé pour vos clients distants, vous pourrez obtenir le jeton en faisant une requête HTTP au point de terminaison de jeton du serveur RH-SSO, en utilisant :
RESULT=`curl --data "grant_type=password&client_id=kie-remote&username=admin&password=password" http://localhost:8180/auth/realms/demo/protocol/openid-connect/token`
RESULT=`curl --data "grant_type=password&client_id=kie-remote&username=admin&password=password" http://localhost:8180/auth/realms/demo/protocol/openid-connect/token`Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Pour apercevoir le jeton obtenu du serveur RH-SSO, utiliser la commande suivante :
TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'`
TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'`Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Vous pouvez maintenant utiliser ce jeton pour autoriser les appels distants. Par exemple, si vous souhaitez vérifier les référentiels internes BPM Suite, utiliser le jeton comme expliqué ci-dessous :
curl -H "Authorization: bearer $TOKEN" http://localhost:8080/business-central/rest/repositories
curl -H "Authorization: bearer $TOKEN" http://localhost:8080/business-central/rest/repositories