Configurez l'authentification unique (SSO) SAML entre Keycloak et Corma. Commencez par Comment configurer le SSO SAML, qui couvre la partie Corma, puis revenez ici. Vous avez besoin d'un accès administrateur à un realm Keycloak et d'un compte administrateur de l'espace de travail Corma.
Keycloak enregistre chaque formulaire séparément. Cliquez sur Save en bas d'un formulaire avant de le quitter.
Dans la console d'administration Keycloak, sélectionnez votre realm et ouvrez Clients → Create client.
Dans General settings, définissez Client type sur SAML et Client ID sur l'Audience URI (SP Entity ID) affichée dans Corma sous Paramètres → Sécurité → SAML (Settings → Security → SAML), soit https://saml.corma.io. Nommez-le Corma et cliquez sur Next.

Dans Login settings, définissez Valid redirect URIs sur la valeur SSO URL (ACS), https://api.corma.io/v2/auth/saml/callback. Laissez les autres champs vides et cliquez sur Save.

Keycloak ouvre le nouveau client sur son onglet Settings.
Sous SAML capabilities, définissez Name ID format sur email. Laissez Force POST binding et Include AuthnStatement activés.

Sous Signature and Encryption, laissez Sign documents et Sign assertions activés, avec Signature algorithm sur RSA_SHA256, puis cliquez sur Save.

Corma lit l'adresse e-mail et le nom de l'utilisateur à partir des attributs SAML : ajoutez donc un mapper par attribut dans le scope dédié du client.
Ouvrez l'onglet Client scopes du client et cliquez sur le scope dédié, https://saml.corma.io-dedicated.

Cliquez sur Configure a new mapper, ou sur Add mapper → By configuration, et choisissez User Property.

Remplissez le mapper et cliquez sur Save, puis recommencez pour les trois attributs.

| Name | Property | SAML Attribute Name | SAML Attribute NameFormat |
|---|---|---|---|
| Basic | |||
| firstName | firstName | firstName | Basic |
| lastName | lastName | lastName | Basic |
Sans l'attribut email, Corma refuse la connexion avec le message Connexion SAML non autorisée (Unauthorized SAML connection).
Ouvrez Realm settings → General et faites défiler jusqu'à Endpoints. Le lien SAML 2.0 Identity Provider Metadata correspond à l'URL des métadonnées dont Corma a besoin : copiez son adresse. Elle a la forme https://your-keycloak-host/realms/your-realm/protocol/saml/descriptor.
Dans Corma, ouvrez Paramètres → Sécurité → SAML et activez Activer le SSO SAML (Enable SAML SSO).
Sélectionnez Keycloak comme fournisseur SAML.
Collez l'URL des métadonnées de l'étape 4 et cliquez sur Enregistrer les modifications (Save changes).

Une fois l'enregistrement effectué, la carte affiche Keycloak SAML, le SSO SAML est configuré pour votre espace de travail (Keycloak SAML, SAML SSO is configured for your workspace), avec l'Audience URI et la SSO URL que vous avez renseignées dans Keycloak.

Tout utilisateur du realm peut se connecter depuis la page de connexion de Corma avec Se connecter avec le SSO SAML (Sign in with SAML SSO), à condition que son Email Keycloak appartienne au domaine de votre espace de travail. Les utilisateurs inconnus rejoignent automatiquement votre espace de travail lors de leur première connexion.
Pour restreindre l'accès à une partie des utilisateurs, utilisez un authentication flow Keycloak ou une client policy sur ce client.
Votre équipe peut aussi ouvrir Corma directement depuis Keycloak. Configurez-le sur le client Corma dans la console d'administration Keycloak.
Dans l'onglet Settings, renseignez IDP-Initiated SSO URL name avec un nom court, par exemple corma, et cliquez sur Save. Keycloak vous fournit alors une URL de lancement de la forme : https://your-keycloak-host/realms/your-realm/protocol/saml/clients/corma.
Dans l'onglet Advanced, renseignez Assertion Consumer Service POST Binding URL avec la SSO URL (ACS) affichée dans Corma sous Paramètres → Sécurité, https://api.corma.io/v2/auth/saml/callback, et cliquez sur Save.
Sans l'Assertion Consumer Service POST Binding URL, Keycloak refuse le lancement.
Pour afficher Corma dans la console de compte Keycloak, revenez à l'onglet Settings, renseignez Home URL avec l'URL de lancement obtenue à l'étape 1 et activez Always display in UI, puis cliquez sur Save.
L'URL des métadonnées doit être accessible depuis les serveurs de Corma. Pour un Keycloak interne, téléchargez le descripteur XML depuis cette URL et importez-le plutôt comme fichier de métadonnées XML.