Docs/Configuration SSO/Configuration SAML 2.0

Configuration SAML 2.0

Configurez l'authentification unique en utilisant SAML 2.0 pour les fournisseurs d'identité qui prennent en charge le protocole SAML. Ce guide couvre la configuration SAML générique applicable à tout IdP conforme.

Prérequis

  • Un fournisseur d'identité conforme SAML 2.0 (Okta, Azure AD, OneLogin, PingFederate, etc.)
  • Accès administrateur à votre fournisseur d'identité pour créer et configurer des applications
  • Un compte Administrateur de l'organisation SecureCodingHub

Détails du fournisseur de services

Ces valeurs sont nécessaires lors de la configuration de SecureCodingHub dans votre fournisseur d'identité :

ParamètreValeur
SP Entity IDhttps://api.limeplate.com
URL ACS (Assertion Consumer Service)https://api.limeplate.com/api/sch/auth/sso/callback/saml
URL de métadonnées SPhttps://api.limeplate.com/api/sch/auth/sso/metadata
Format Name IDurn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
BindingHTTP-POST

Étape 1 — Configurer votre fournisseur d'identité

1
Créer une nouvelle application SAML
Dans la console d'administration de votre fournisseur d'identité, créez une nouvelle application SAML 2.0 pour SecureCodingHub.
2
Définir l'URL ACS et l'Entity ID
Copiez l'URL ACS et le SP Entity ID depuis le tableau de détails du fournisseur de services ci-dessus dans la configuration d'application de votre IdP.
3
Configurer le mappage d'attributs
Mappez l'attribut requis email comme NameID. Mappez éventuellement les attributs firstName et lastName pour le remplissage automatique du profil.
4
Télécharger ou copier l'URL de métadonnées de l'IdP
Vous aurez besoin de l'URL de métadonnées de votre IdP (ou du certificat de signature) à l'étape suivante lors de la configuration de SecureCodingHub.

Étape 2 — Configurer SAML dans SecureCodingHub

1
Ouvrir les paramètres SSO
Connectez-vous en tant qu'Administrateur de l'organisation et naviguez vers Paramètres SSO depuis la barre latérale.
2
Sélectionner le protocole SAML
Choisissez SAML comme protocole SSO dans la liste déroulante.
3
Saisir l'URL de métadonnées de l'IdP
Collez l'URL de métadonnées de votre fournisseur d'identité. Cela permet à SecureCodingHub de découvrir automatiquement les points de terminaison et les certificats.
4
Ajouter le certificat de signature (facultatif)
Si votre IdP n'expose pas d'URL de métadonnées, collez directement le certificat de signature de l'IdP.
5
Activer SSO et enregistrer
Activez SSO et cliquez sur Enregistrer pour activer l'authentification SAML pour votre organisation.
app.securecodinghub.com/organization/sso
Authentification unique
Authentifiez les apprenants via votre fournisseur d'identité.
OIDC
OpenID Connect — recommandé
SAML
Fédération SAML 2.0
https://api.limeplate.com/api/sch/auth/sso/saml/{orgId}
https://idp.example.com/app/saml2/sso/metadata
-----BEGIN CERTIFICATE----- MIICmzCCAYMCBgF8... ... -----END CERTIFICATE-----
SSO activé

Étape 3 — Tester

1
Ouvrir une fenêtre incognito
Utilisez une fenêtre de navigateur privée/incognito pour éviter les conflits de session avec votre compte administrateur.
2
Naviguer vers la page de connexion SSO
Allez à app.securecodinghub.com et cliquez sur Se connecter avec SSO.
3
Saisir votre e-mail d'entreprise
Le système détectera la configuration SSO de votre organisation et vous redirigera vers votre IdP.
4
S'authentifier chez votre IdP
Complétez le flux de connexion chez votre fournisseur d'identité. Vous devriez être redirigé vers SecureCodingHub et connecté automatiquement.

Mappage d'attributs

SecureCodingHub lit les attributs suivants de l'assertion SAML :

Attribut SAMLChamp SecureCodingHubRequis
NameID (format e-mail)E-mailOui
givenName (…/claims/givenname)Nom (première partie — concaténée avec le nom de famille en un nom d'affichage unique)Non
surname (…/claims/surname)Nom (deuxième partie — jointe avec givenName au moment du provisionnement)Non
Expiration du certificat : Les certificats SAML expirent. Définissez un rappel de calendrier pour faire tourner votre certificat avant l'expiration afin d'éviter les perturbations de connexion.

Lire une réponse SAML dans la nature

Lorsque SAML échoue, le chemin le plus rapide vers un diagnostic est d'inspecter la réponse SAML réelle plutôt que le symptôme dans le navigateur. Installez une extension de navigateur SAML tracer, reproduisez la connexion en échec et regardez le POST que l'IdP envoie à l'URL ACS. Trois champs vous disent presque tout. L'élément Issuer devrait correspondre à l'entityID publié dans vos métadonnées IdP. L'élément Audience imbriqué dans Conditions devrait correspondre au SP Entity ID configuré dans SecureCodingHub. Le NameID du sujet devrait être l'adresse e-mail de l'utilisateur au format que vous avez spécifié.

Au-delà de ces champs, vérifiez l'identifiant InResponseTo si votre IdP le prend en charge, confirmez que la réponse est signée (l'élément ds:Signature est présent), et vérifiez que les horodatages NotBefore et NotOnOrAfter sont cohérents avec l'horloge actuelle. Un décalage horaire significatif entre IdP et SP cause le rejet silencieux d'assertions par ailleurs valides. Si la réponse semble bien formée mais que l'assertion est toujours rejetée, copiez la valeur SAMLResponse encodée en base64 du tracer et décodez-la hors ligne. Lire le XML brut par rapport à la spécification SAML 2.0 est le moyen le plus fiable de trouver un attribut manquant ou une déclaration mal configurée.

Quand demander de l'aide à l'équipe IdP versus l'équipe SP

La plupart des tickets de support SAML peuvent être triés en moins d'une minute si vous savez de quel côté de la fédération vit l'erreur. En règle générale, les non-correspondances d'audience et d'émetteur sont des problèmes côté SP : la configuration SecureCodingHub attend des valeurs que l'IdP ne produit pas, ou elle a été configurée contre un SP entity ID différent de celui pour lequel l'IdP signe. Ceux-ci sont résolus en ajustant les paramètres SSO SecureCodingHub ou le SP Entity ID et l'URL ACS dans la configuration d'application IdP. Contactez d'abord le côté SecureCodingHub.

Les problèmes de revendication et de mappage d'attributs sont généralement côté IdP. Si les utilisateurs atterrissent dans SecureCodingHub avec des prénoms manquants, des adresses e-mail erronées ou des attributions de rôle inattendues, l'IdP émet des attributs que le SP ne peut pas consommer. L'administrateur IdP doit ajouter ou renommer les revendications dans la configuration d'application. Les échecs de certificat et de signature sont partagés : si le certificat IdP a expiré ou a été tourné, c'est une correction côté IdP. Si SecureCodingHub a cessé de faire confiance à une signature précédemment valide, les métadonnées ou le certificat stocké côté SP est devenu obsolète et doit être rafraîchi. En cas de doute, capturez la sortie du tracer SAML et partagez-la avec les deux équipes ; la réponse elle-même montre quel côté possède la prochaine action. Voir la Vue d'ensemble SSO pour des conseils de sélection de protocole.

SAML 2.0 : questions fréquentes

Que signifie réellement « SAML fédéré » ?

SAML fédéré fait référence à la relation de confiance établie entre un fournisseur d'identité (IdP) et un fournisseur de services (SP) pour qu'un utilisateur puisse s'authentifier une fois chez l'IdP et que cette assertion soit acceptée par le SP. La fédération est le contrat XML signé : chaque côté fait confiance aux métadonnées et au certificat de signature de l'autre. SecureCodingHub fait partie de votre fédération une fois que vous téléchargez les métadonnées IdP et que l'IdP connaît le SP entity ID.

Comment faire tourner un certificat SAML sans casser les connexions ?

Une rotation de certificat SAML s'exécute mieux avec une brève fenêtre de chevauchement. Si votre IdP prend en charge la publication de plusieurs certificats de signature dans les métadonnées, ajoutez le nouveau certificat avant de retirer l'ancien et faites recharger les métadonnées IdP à SecureCodingHub pour que les deux certificats soient de confiance pendant le basculement. Après que l'IdP commence à signer avec la nouvelle clé, surveillez les connexions pendant un jour, puis retirez l'ancien certificat des métadonnées. La panne de production la plus courante est de faire tourner sans chevauchement, un vendredi.

SAML vs OAuth vs OpenID Connect — lequel choisir ?

Lorsque les équipes comparent SAML vs OAuth vs OpenID Connect, la réponse pratique est de suivre l'adéquation opérationnelle. SAML 2.0 est le standard de fédération mature, basé sur XML, dominant dans les IdP d'entreprise comme ADFS et PingFederate. OAuth 2.0 seul est un cadre d'autorisation, non d'authentification. OpenID Connect superpose l'identité par-dessus OAuth 2.0 et est le défaut moderne pour Azure AD et Okta. SAML ou OIDC vous donneront une sécurité SSO équivalente avec SecureCodingHub.

Comment décoder une réponse SAML pour dépanner un échec ?

Pour décoder une réponse SAML, capturez le paramètre SAMLResponse encodé en base64 que l'IdP poste à l'URL ACS — une extension de navigateur SAML tracer est le moyen le plus simple de le saisir. Décodez la valeur en base64 vers du XML brut et inspectez Issuer, Audience, NameID et les horodatages. La plupart des échecs se résolvent une fois que vous comparez ces quatre champs aux valeurs configurées dans les paramètres SSO SecureCodingHub et la configuration d'application de votre IdP.