Aller au contenu

SCIM

Le fournisseur SCIM est un client générique pour tout système d’identité qui expose une API admin standard SCIM 2.0 (Okta, Azure AD, un IdP maison, etc.), plutôt qu’une API de gestion propre à un éditeur. Si votre fournisseur n’a pas d’intégration dédiée dans AUMS mais parle SCIM, utilisez ce fournisseur pour le gérer.

FonctionnalitéSupport
Gestion utilisateurs✅ Complète (/Users SCIM)
Organisations⚠️ Groupes uniquement, nécessite l’endpoint SCIM /Groups
Journaux d’audit❌ Non supporté (aucune ressource de journal d’audit en SCIM)
  1. Obtenir des identifiants SCIM auprès de votre fournisseur d’identité

    La plupart des fournisseurs de service SCIM délivrent une URL de base (ex. https://idp.example.com/scim/v2) et un jeton porteur (bearer) dédié au provisioning. Créez-en un depuis la console d’administration de votre IdP (cherchez « SCIM provisioning » ou « jeton API SCIM »).

    Vous testez en local, ou développez face à votre propre serveur SCIM ? Lancez cerberauth/scimply, une bibliothèque de serveur SCIM 2.0 conforme aux RFC 7642/7643/7644 en Go avec un backend en mémoire — elle expose une API /Users et /Groups conforme à la spec en quelques lignes, ce qui permet de développer et tester le fournisseur SCIM d’AUMS sans IdP réel.

  2. Définir les variables d’environnement

    Terminal window
    PROVIDER=scim
    SCIM_BASE_URL=https://idp.example.com/scim/v2
    SCIM_BEARER_TOKEN=your-scim-bearer-token

    Optionnel :

    Terminal window
    SCIM_GROUPS_ENABLED=true # à false si le fournisseur n'expose pas /Groups (défaut : true)

AUMS associe les organisations à la ressource Group du schéma core SCIM (urn:ietf:params:scim:schemas:core:2.0:Group) :

Opération AUMSAppel API SCIM
Lister les orgsGET /Groups
Créer une orgPOST /Groups
Modifier une orgPATCH /Groups/{id} (displayName)
Supprimer une orgDELETE /Groups/{id}
Lister les membresGET /Groups/{id} (members)
Ajouter un membrePATCH /Groups/{id} (add sur members)
Retirer un membrePATCH /Groups/{id} (remove sur members)

Définissez SCIM_GROUPS_ENABLED=false si votre fournisseur n’implémente pas /Groups — AUMS signalera alors les organisations comme non supportées au lieu d’échouer à l’appel.

  • Identifiant — AUMS utilise le userName SCIM comme adresse e-mail lorsqu’aucun e-mail principal n’est défini ; sinon l’entrée principale (ou la première) de emails est utilisée.
  • État actif — Bloquer un utilisateur définit active à false sur la ressource SCIM.
  • Vérification e-mail — Le schéma core User de SCIM n’a pas d’attribut de vérification d’e-mail ; les utilisateurs sont donc toujours signalés comme vérifiés.
  • Nom d’affichage — Lu depuis name.formatted, avec repli sur name.givenName + name.familyName. AUMS écrit givenName / familyName à la création et à la mise à jour.
  • Mot de passe — Envoyé via l’attribut SCIM password (écriture uniquement) à la création et à la mise à jour, si fourni.
  • Pagination — Les résultats de liste utilisent les paramètres SCIM startIndex / count et le champ totalResults de la réponse.

Si votre fournisseur de service SCIM est adossé à un IdP compatible OIDC, vous pouvez protéger le tableau de bord AUMS avec celui-ci indépendamment de la connexion SCIM :

Terminal window
AUTH_CLIENT_OPENID_CONFIGURATION_URL=https://idp.example.com/.well-known/openid-configuration
AUTH_CLIENT_ID=your-oidc-client-id
AUTH_CLIENT_SECRET=your-oidc-client-secret

Ajoutez <BASE_URL>/api/auth/callback/oidc aux URIs de redirection autorisées de votre client OIDC.