Authentification unique SSO Java Spring Boot
La solution d'authentification unique (SSO) Java Spring Boot JWT de miniOrange offre un accès sécurisé aux applications Java Spring Boot grâce à un identifiant unique. Basée sur les jetons JSON Web Token (JWT), elle s'intègre facilement à Java Spring Boot, quel que soit le framework ou le langage utilisé. Vous pouvez activer la connexion via les réseaux sociaux pour permettre à vos utilisateurs d'accéder en toute sécurité aux applications en utilisant leurs plateformes habituelles telles que Facebook, Twitter, Google ou LinkedIn.
Avec miniOrange Java Spring Boot SSO, vous obtenez :
- Expérience de connexion utilisateur transparente.
- Personnalisations infinies de vos formulaires et pages de connexion.
- Intégration simplifiée des clients ou des utilisateurs.
Suivez le guide étape par étape ci-dessous pour Java Spring Boot Single Sign-On (SSO) :
1. Configurer Java Spring Boot dans miniOrange :
- Connectez-vous à la console d'administration miniOrange.

- Allez dans Apps et cliquez sur Ajouter une application .

- In Choisissez l'application, Sélectionner JWT à partir de la liste déroulante du type d’application.

- À l'étape suivante, recherchez Démarrage de Spring Java application de la liste. Si votre candidature n'est pas trouvée, recherchez Application JWT et vous pouvez configurer votre application.

-
Vous pouvez configurer les détails suivants dans l'application :
| Nom du profil |
Entrer le Nom du profil (c'est-à-dire le nom de cette application) |
| URL de redirection |
Entrer le URL de redirection (c'est-à-dire le point de terminaison où vous souhaitez envoyer/publier votre jeton JWT). Vous pouvez ajouter plusieurs URL de redirection en les séparant par un « ; ». Par exemple : abc.com;xyz.com
|
| identité du client |
Le identité du client est affiché dans le champ ci-dessous. Cliquez sur l'icône du presse-papiers pour le copier. |
| Secret client |
Secret client est masqué par défaut. Cliquez sur l'icône en forme d'œil pour l'afficher et utilisez l'icône du presse-papiers pour le copier. Ce paramètre est utilisé dans l'algorithme de signature HS256 pour générer la signature.
|
| Description (facultatif) |
Ajoutez une description si nécessaire.
|

- Cliquez à nouveau Enregistrer.
- Vous allez être redirigé vers Politiques .

- Cliquez sur le Attribuer un groupe bouton. Un nouveau Configurer l'affectation de groupe La fenêtre modale s'ouvrira.
- Groupe d'affectation : Sélectionnez les groupes que vous souhaitez associer à l'application. Vous pouvez sélectionner jusqu'à 20 groupes à la fois.

- Si vous devez créer un nouveau groupe, cliquez sur Ajouter un nouveau groupe .
- Saisissez le nom du groupe et cliquez sur Créer un groupe.

- Cliquez sur Suivant.
- Attribuer des politiques : Ajoutez les politiques requises aux groupes sélectionnés. Saisissez les informations suivantes :
- Premier facteur : Sélectionnez la méthode de connexion dans le menu déroulant.
- Si vous sélectionnez Mot de passe comme méthode de connexion, vous pouvez activer Authentification à deux facteurs (MFA) et Authentification adaptative, si besoin.
- Si vous sélectionnez Sans mot de passe comme méthode de connexion, vous pouvez activer Authentification à deux facteurs (MFA) si besoin.
- Si vous sélectionnez Lien magique Les options suivantes apparaissent comme méthode de connexion :
- Autoriser la connexion depuis d'autres adresses IP : Une fois activée, cette option permet aux utilisateurs d'ouvrir le lien magique depuis une adresse IP différente de celle à partir de laquelle la demande a été effectuée.
- Autoriser la connexion depuis d'autres appareils : Une fois activée, cette option permet aux utilisateurs d'ouvrir le Magic Link sur un appareil différent de celui utilisé pour le demander.

- Cliquez sur EnregistrerDes politiques seront élaborées pour tous les groupes sélectionnés.
- Vous verrez la politique répertoriée une fois qu'elle aura été ajoutée avec succès.

- Cliquez sur Avancé languette.
- Saisissez les informations suivantes si nécessaire :
| Jeton d'accès |
Saisissez le jeton d'accès qui sera envoyé à votre URL de redirection après la connexion d'un utilisateur. Ce jeton permet à votre application de savoir que l'utilisateur est autorisé à accéder à certaines fonctionnalités. |
| Expiration du jeton d'identification (en minutes) |
Définissez la durée de validité (en minutes) du jeton d'identification. Passé ce délai, l'utilisateur devra se reconnecter pour obtenir un nouveau jeton. |
| Sujet |
Choisissez les informations, comme l'adresse e-mail de l'utilisateur, qui seront utilisées pour l'identifier dans le jeton. Cela permet à votre application de savoir quel utilisateur est connecté. |
| Algorithme de signature |
Sélectionnez votre algorithme de signature dans la liste déroulante. |
| L'URL de déconnexion de votre application |
Saisissez l'adresse Web vers laquelle les utilisateurs doivent être envoyés après leur déconnexion. |
| Activer l'identité partagée |
Cette fonctionnalité vous permet de contrôler si une application spécifique est accessible ou non à un utilisateur partagé. |

- Algorithmes de signature pour JWT
RSA-SHA256
- Asymétrique, utilise un ensemble de clés privées et publiques pour générer et valider la signature incluse dans le jeton JWT.
- La clé privée est utilisée pour générer la signature côté IDP.
- La clé publique est utilisée pour vérifier la signature côté SP.
- Nous fournissons la clé publique pour cela.
HS256
- Symétrique, utilise la même clé secrète pour générer et valider la signature
- La clé secrète dans ce cas est configurable depuis la page de configuration de l'application.
-
Basculer vers Options de connexion languette.
| Fournisseur d'identité principal |
Sélectionnez la source d'identification par défaut dans la liste déroulante de l'application. Si cette option n'est pas sélectionnée, les utilisateurs verront l'écran de connexion par défaut et pourront choisir leur propre fournisseur d'identité. [Choisissez miniOrange dans ce cas.]
|
| Forcer l'authentification |
Si vous activez cette option, les utilisateurs devront se connecter à chaque fois, même si leur session existe déjà. |
| Activer le mappage des utilisateurs |
Activez cette option si vous souhaitez que l'application indique quel utilisateur est connecté lorsqu'elle répond. |
| Afficher sur le tableau de bord de l'utilisateur final |
Activez cette option si vous souhaitez afficher cette application dans le tableau de bord de l'utilisateur final. |

- Accédez à Endpoints et copiez les détails suivants :

-
URL d'authentification unique :
- Cette URL est utilisée pour lancer l'authentification de l'utilisateur afin d'obtenir le jeton JWT.
- Prenez redirect_uri comme l'un des paramètres de requête.
- Après une authentification réussie du côté de l'IDP, une session utilisateur active est créée dans l'IDP et l'utilisateur est redirigé vers redirect_uri avec le jeton JWT.
-
-
URL de déconnexion unique :
- Cette URL est utilisée pour déconnecter l'utilisateur de l'IDP en supprimant la session utilisateur active.
- Prenez redirect_uri comme l'un des paramètres de requête.
- Après avoir supprimé la session utilisateur active, l'IDP redirige l'utilisateur vers redirect_uri.
-
URL de réponse pour la déconnexion initiée par l'IdP :
- Cette URL est utilisée pour lancer la déconnexion au cas où la connexion de l'utilisateur JWT aurait été initiée par IDP [Utilisateur connecté au tableau de bord
d'abord, puis initialisé la connexion à l'application à partir du tableau de bord.]
- Après avoir déconnecté l'utilisateur de l'IDP, l'utilisateur est redirigé vers la page de connexion du tableau de bord IDP.
2. Ajout d'un script à la fin du démarrage de Java Spring
- Pour activer SSO côté Java Spring Boot, il vous suffit d'ajouter un URL d'authentification unique et Script personnalisé pour récupérer les attributs requis du jeton JWT.
- Veuillez cliquez ici pour nous contacter pour le script qui doit être ajouté.
3. Tester la configuration SSO
Testez la connexion SSO à votre compte Java Spring Boot avec miniOrange IdP :
4. Connectez-vous à l'aide du fournisseur social (facultatif)
miniOrange assure l'authentification des utilisateurs à partir de diverses sources externes, telles que des annuaires (ADFS, Microsoft Active Directory, Microsoft Entra ID, OpenLDAP, Google, AWS Cognito, etc.), des fournisseurs d'identité (Okta, Shibboleth, Ping, OneLogin, Keycloak), des bases de données (MySQL, MariaDB, PostgreSQL, etc.) et bien d'autres . Vous pouvez configurer votre annuaire/référentiel d'utilisateurs existant ou ajouter des utilisateurs dans miniOrange.
4.1. Configurez Google Apps en tant que fournisseur OAuth 2.0 dans miniOrange.
- Allez dans Console d'administration miniOrange.
- Dans la barre de navigation de gauche, sélectionnez Fournisseurs d'identité >> Ajouter un fournisseur d'identité.

- Configurer OAuth/OpenID, sélectionnez OAuth/OpenID de la liste déroulante.

- Sélectionner Google.

- Saisissez les valeurs suivantes:
| Nom du fournisseur d'identité |
Fournisseur personnalisé |
| Nom du profil |
Choisissez le nom approprié |
| URL de rappel OAuth |
URL vers laquelle le fournisseur d'identité redirige les utilisateurs après une authentification réussie. |
| identité du client |
À partir de l'étape 4.2 |
| Secret client |
À partir de l'étape 4.2 |
| Domaine |
en nous envoyant un mail |

- Cliquez sur Suivant pour Avancé languette.
- Type de subvention: Sélectionnez le type d'autorisation OAuth utilisé pour obtenir le jeton d'accès.
- Cartographie de domaine : Veuillez indiquer le domaine associé à ce fournisseur d'identité pour la connexion.

- Cliquez sur Enregistrer.
4.2. Configuration de miniOrange en tant que fournisseur de services (SP) dans Google Apps
- Allez dans https://console.developers.google.com/ et inscrivez-vous/connectez-vous.
- Cliquez sur Sélectionnez un projet pour créer un nouveau projet Google Apps, vous verrez une fenêtre contextuelle avec la liste de tous vos projets.

- Vous pouvez cliquer sur le Nouveau projet bouton pour créer un nouveau projet.

- Entrez le nom de votre projet sous le Nom Du Projet champ et cliquez sur Créer.

- Allez dans Menu de navigation >> API >> Services >> Informations d'identification.

- Cliquez sur Créer des identifiants puis sélectionnez ID client OAuth parmi les options proposées.

- Si vous recevez un avertissement indiquant que pour créer un identifiant client OAuth, vous devez définir un nom de produit sur l'écran de consentement (comme indiqué dans l'image ci-dessous). Clique sur le Configurer l'écran de consentement .

- Entrez les détails requis tels que Nom de l'application, e-mail d'assistance utilisateur. et cliquez sur Sauvegarder et continuer .


- Maintenant, pour configurer les étendues, cliquez sur Ajouter ou supprimer les étendues .

- Maintenant, sélectionnez le Scopes pour permettre à votre projet d'accéder à des types spécifiques de données d'utilisateurs privées à partir de leur compte Google et cliquez sur Sauvegarder et continuer .

- Rendez-vous dans la section Onglet Informations d'identification et cliquez sur Créer des identifiants bouton. Sélectionner Application Web dans la liste déroulante pour créer une nouvelle application.

- Pour obtenir le URL de redirection:
- Allez dans Console d'administration miniOrange.
- Dans la barre de navigation de gauche, sélectionnez Fournisseur d'identité.

- Copiez le URL de rappel as URL de redirection requis pour la prochaine étape.

- Entrez le nom que vous souhaitez pour votre ID client dans le champ du nom et entrez le URI de redirection/rappel et cliquez sur Créer .

- Vous verrez une fenêtre contextuelle avec l'ID client et le secret client. Copiez votre identité du client et Secret client.

- Vous avez terminé avec succès vos configurations côté serveur OAuth de Google App.
4.1. Configurez LinkedIn en tant que fournisseur OAuth 2.0 dans miniOrange.
- Allez dans Console d'administration miniOrange.
- Dans la barre de navigation de gauche, sélectionnez Fournisseurs d'identité >> Ajouter un fournisseur d'identité.

- Configurer OAuth/OpenID, sélectionnez OAuth/OpenID de la liste déroulante.

- Sélectionner LinkedIn.

- Saisissez les valeurs suivantes:
| Nom du fournisseur d'identité |
Fournisseur personnalisé |
| Nom du profil |
Choisissez le nom approprié |
| URL de rappel OAuth |
URL vers laquelle le fournisseur d'identité redirige les utilisateurs après une authentification réussie. |
| identité du client |
À partir de l'étape 4.2 |
| Secret client |
À partir de l'étape 4.2 |
| Domaine |
en nous envoyant un mail |

- Cliquez sur Suivant pour Avancé languette.
- Type de subvention: Sélectionnez le type d'autorisation OAuth utilisé pour obtenir le jeton d'accès.
- Cartographie de domaine : Veuillez indiquer le domaine associé à ce fournisseur d'identité pour la connexion.

- Cliquez sur Enregistrer.
4.2. Configurer miniOrange en tant que fournisseur de services (SP) dans LinkedIn
- Allez dans https://www.linkedin.com/secure/developer?newapp= afin de créer une nouvelle application. Cliquer sur Créer une application bouton pour créer une nouvelle application.

- Entrez les détails requis et cliquez sur le Créer une application bouton pour enregistrer vos modifications.

- Ici, vous devez vérifier la page fournie. Si la vérification de la page n'est pas effectuée, alors le SSO ne fonctionnera pas.

- Accédez à la section Produits, puis sélectionnez Connectez-vous avec LinkedIn.

- Copiez le Identité du client et la Secret client et enregistrez-le dans votre Configuration de l'application miniOrange OAuth sous Identité du client et la Champs de texte Secret client respectivement.

- Pour obtenir le URL de redirection:
- Allez dans Console d'administration miniOrange.
- Dans la barre de navigation de gauche, sélectionnez Fournisseur d'identité.

- Copiez le URL de rappel as URL de redirection requis pour la prochaine étape.

- Copiez le URL de redirection/rappel à partir de au-dessus de l'étape et saisissez-le sous OAuth 2.0 -> Autorisé URL de redirection zone de texte. Clique sur le Ajouter bouton adjacent à la zone de texte pour l’enregistrer. Enfin, cliquez sur le Mises à jour bouton pour enregistrer vos configurations. (image page suivante).

4.1. Configurez Facebook en tant que fournisseur OAuth 2.0 dans miniOrange.
- Allez dans Console d'administration miniOrange.
- Dans la barre de navigation de gauche, sélectionnez Fournisseurs d'identité >> Ajouter un fournisseur d'identité.

- Configurer OAuth/OpenID, sélectionnez OAuth/OpenID de la liste déroulante.

- Sélectionner Facebook.

- Saisissez les valeurs suivantes:
| Nom du fournisseur d'identité |
Fournisseur personnalisé |
| Nom du profil |
Choisissez le nom approprié |
| URL de rappel OAuth |
URL vers laquelle le fournisseur d'identité redirige les utilisateurs après une authentification réussie. |
| identité du client |
À partir de l'étape 4.2 |
| Secret client |
À partir de l'étape 4.2 |
| Domaine |
en nous envoyant un mail |

- Cliquez sur Suivant pour Avancé languette.
- Type de subvention: Sélectionnez le type d'autorisation OAuth utilisé pour obtenir le jeton d'accès.
- Cartographie de domaine : Veuillez indiquer le domaine associé à ce fournisseur d'identité pour la connexion.

- Cliquez sur Enregistrer.
4.2. Configurer miniOrange en tant que fournisseur de services (SP) sur Facebook
- Tout d'abord, connectez-vous/inscrivez-vous dans la console des développeurs Facebook à l'adresse https://developers.facebook.com/

- Allez dans Mes applications.

- Cliquez sur Créer une application pour créer une nouvelle application.

- Entrez les détails requis et cliquez sur créer une application.

- Complétez le contrôle de sécurité et cliquez sur Soumettre .

- Sélectionner Facebook Connexion en cliquant sur le bouton configurer .

- Sélectionner Connexion Facebook >> Paramètres sous l’option Produits dans la barre de navigation.

- Pour obtenir le URL de redirection:
- Allez dans Console d'administration miniOrange.
- Dans la barre de navigation de gauche, sélectionnez Fournisseur d'identité.

- Copiez le URL de rappel as URL de redirection requis pour la prochaine étape.

- Sous Paramètres OAuth du client, saisissez l'URL de rappel/de redirection dans le champ URI de redirection OAuth valides champ. Clique sur le Enregistrer bouton pour enregistrer vos configurations.
Plus important encore, votre URI de rappel/redirection devrait être https ne le comptant pas http. Ceci est obligatoire lors de la configuration de Facebook en tant que serveur OAuth.

- Allez dans Paramètres -> De base pour afficher votre identifiant d'application et votre secret d'application (reportez-vous à l'image ci-dessous).

- Vous avez terminé avec succès les configurations côté serveur OAuth de votre application Facebook.
4.1. Configurez Apple Apps en tant que fournisseur OAuth 2.0 dans miniOrange.
- Allez dans Console d'administration miniOrange.
- Dans la barre de navigation de gauche, sélectionnez Fournisseurs d'identité >> Ajouter un fournisseur d'identité.

- Configurer OAuth/OpenID, sélectionnez OAuth/OpenID de la liste déroulante.

- Sélectionner Apple.

- Remplissez les détails indiqués dans l'image ci-dessous.
| Afficher un nom: |
ID apple |
| Identité du client* |
{Votre identifiant de service}, par exemple com.john.serviceid |
| Secret client* |
eyJraWQiOiJCOTJQUDg1VUw4IiwiYWxnIjoiRVMyNTYifQ.eyJpc3MiOiJFW.... |
| OAuth Autoriser le point de terminaison |
https://appleid.apple.com/auth/authorize?response_mode=form_post |
| Point de terminaison du jeton d'accès OAuth* |
https://appleid.apple.com/auth/token |
| Domaine |
nom e-mail |

- Cliquez sur Suivant pour Avancé languette.
- Type de subvention: Sélectionnez le type d'autorisation OAuth utilisé pour obtenir le jeton d'accès.
- Cartographie de domaine : Veuillez indiquer le domaine associé à ce fournisseur d'identité pour la connexion.

- Cliquez sur Enregistrer.
4.2. Configurer miniOrange en tant que fournisseur de services (SP) dans les applications Apple
- Allez dans https://developer.apple.com cliquez sur Compte et Connectez-vous avec votre compte développeur Apple.

- Cliquez sur Certificats, identifiants et Profils dans le compte Apple.

- Dans le menu de gauche Cliquez sur Identifiants et après cela, cliquez sur le Icône Plus (couleur bleue). Cliquez sur Continuer pour les 2 prochaines pages du compte Apple.

- Entrer Description et Identifiant de l'offre groupée pour ID de l'application. (L'ID du bundle est préférable lorsqu'il s'agit d'une chaîne de style DNS inversé.)

- Dans l' faites défiler la section vers le bas et sélectionnez S'inscrire avec Apple. Cliquez sur Modifier et sélectionnez Activer comme identifiant d'application principal et cliquez sur Enregistrer. Cliquez sur Continuer puis cliquez sur S'enregistrer.


- Dans le coin droit, cliquez sur Continuer et après ça S'enregistrer .
- Cliquez à nouveau sur le Icône Plus( couleur bleue). Sélectionner ID de service et cliquez sur Continuer.

- Entrer Description et Identifiant(L'identifiant serait votre identifiant client - Copiez cet identifiant et collez-le dans le champ ci-dessus de l'ID client). et cliquez sur le Continuer et après ça S'enregistrer .

- Cliquez à nouveau Clés / Key dans le menu de gauche. Cliquez sur le Icône Plus pour enregistrer une nouvelle clé.

- Donne ton ACTIVITES un nom, puis sélectionnez Connectez-vous avec Apple et cliquez sur Configurer bouton (dans la fenêtre de contrôle qui apparaît maintenant)

- Sélectionnez votre Identifiant principal et cliquez sur le Enregistrer puis dans le coin droit, cliquez sur Continuer et s'inscrire .

- Cliquez sur le Télécharger une fois la clé téléchargée cliquez sur le bouton OK .

- Dans le menu de gauche cliquez sur Identifiants.
- En haut à droite, cliquez sur ID d'application.
- Sélectionner ID de service Dans le menu déroulant.

- Sélectionnez votre Numéro de service de la liste.
- Sélectionnez Se connecter avec Apple et cliquez sur Configurer .

- Sélectionnez le Identifiant de l'application principale dans la liste déroulante et entrez le Domaine et URL de redirection dans Domaines et sous-domaines et URL de retour respectivement et cliquez sur le Suivant (Vous obtiendrez le nom de domaine et l'URL de redirection à partir du tableau de bord miniOrange).

- Vérifiez les détails et cliquez sur le OK bouton. Après cela, dans le coin droit, cliquez sur le Continuer .
- Copiez le Valeur de l'identifiant et cliquez sur le Enregistrer .

- Entrez la valeur de l'identifiant dans le champ App Id et copiez le clé téléchargée valeur dans le champ App secret du plugin miniOrange d’instructions de connexion Apple.
Générer une clé secrète
- Téléchargez le programme d'installation de Ruby à partir du lien suivant https://rubyinstaller.org/downloads/ puis installez-le.
- Recherchez l'invite de commande Démarrer avec Ruby, ouvrez l'invite de commande Ruby et installez la gemme JWT en exécutant la commande suivante sur la ligne de commande : gem installer jwt.
- Copiez le code ci-dessous dans un fichier et enregistrez le fichier avec l'extension .rb. Conservez ce fichier .rb et le fichier .p8 téléchargé dans le même dossier.
- Entrez le nom du fichier téléchargé example= "key.P8", key_id , client_id, team_id dans le code
require 'jwt'
key_file = 'key.P8'
team_id = ''
client_id = ''
key_id = ''
ecdsa_key = OpenSSL::PKey::EC.new IO.read key_file
headers = {
'kid' => key_id
}
claims = {
'iss' => team_id,
'iat' => Time.now.to_i,
'exp' => Time.now.to_i + 86400*180,
'aud' => 'https://appleid.apple.com',
'sub' => client_id,
}
token = JWT.encode claims, ecdsa_key, 'ES256', headers
puts token
- Ouvrez l'invite de commande Ruby et exécutez le code ci-dessus à l'aide de la commande suivante : nom de fichier ruby.rb.
- Vous recevrez votre clé secrète client. Copiez et enregistrez la clé secrète ; vous en aurez besoin pour configurer l'identifiant Apple dans miniOrange Dashboard.

Références externes