Aller au contenu principal

Monday.com

Ce guide vous explique comment configurer l'authentification unique (SSO) entre VaultysHub et Monday.com en utilisant SAML 2.0 ou OpenID Connect.

Prérequis​

  • Plan Monday.com Enterprise
  • Accès administrateur à Monday.com
  • Domaine email vérifié
  • Application configurée dans VaultysHub avec SAML2 ou OpenID Connect

Note : Le SSO est disponible uniquement avec le plan Enterprise de Monday.com.

Configuration avec SAML 2.0 (Recommandé)​

Configuration dans VaultysHub​

1. Créer l'application​

  1. Connectez-vous à VaultysHub en tant qu'administrateur
  2. Allez dans Applications → Ajouter
  3. Créez une nouvelle application :
    • Nom : Monday.com
    • URL : https://[votre-compte].monday.com
    • Description : Plateforme de gestion du travail
    • Icône : Choisissez l'icône Monday.com

2. Configurer SAML2​

  1. Dans l'onglet Authentification
  2. Sélectionnez SAML2
  3. Configurez les paramètres suivants :
    • Entity ID : l'Entity ID du Service Provider fourni par Monday.com (et non l'URL de VaultysHub)
    • ACS URL : https://[votre-compte].monday.com/saml2/acs
    • Format NameID : emailAddress
    • App ID : [appid] (identifiant unique généré automatiquement)

3. Récupérer les métadonnées​

Notez les URLs suivantes :

  • Métadonnées IdP : https://[votre-smartlink].link.vaultys.org/api/saml2/metadata/[appid]
  • SSO URL : https://[votre-smartlink].link.vaultys.org/api/saml2/sso/[appid]
  • Entity ID : https://[votre-smartlink].link.vaultys.org/[appid]
  • Certificat X.509 : Téléchargez depuis VaultysHub

La déconnexion unique (Single Logout) depuis VaultysHub n'est pas prise en charge.

Configuration dans Monday.com​

1. Accéder aux paramètres SSO​

  1. Connectez-vous à Monday.com en tant qu'administrateur
  2. Cliquez sur votre avatar → Administration
  3. Dans le menu : Security → Single Sign-On
  4. Cliquez sur Set up SSO

2. Configuration SAML​

Sélectionnez SAML et configurez :

  • SSO URL : https://[votre-smartlink].link.vaultys.org/api/saml2/sso/[appid]
  • Entity ID : https://[votre-smartlink].link.vaultys.org/[appid]
  • Certificate : Collez le certificat X.509 depuis VaultysHub

3. Configuration des attributs​

Attribut MondayAttribut SAMLObligatoire
Emailemail✅
First NamefirstName✅
Last NamelastName✅

Configuration avec OpenID Connect​

Configuration dans VaultysHub​

1. Configurer OpenID Connect​

  1. Dans l'application Monday.com
  2. Onglet Authentification → OpenID Connect
  3. Notez :
    • Client ID : monday-xxxxxx
    • Client Secret : secret-xxxxxx
    • App ID : [appid]

2. URLs de redirection​

Ajoutez :

https://[votre-compte].monday.com/auth/oidc/callback

Configuration dans Monday.com​

  1. Dans Security → Single Sign-On
  2. Sélectionnez OpenID Connect
  3. Configurez :
  • Discovery URL : https://[votre-smartlink].link.vaultys.org/api/oidc/[appid]/.well-known/openid-configuration
  • Client ID : monday-xxxxxx
  • Client Secret : secret-xxxxxx
  • Scopes : openid profile email

Configuration des espaces de travail​

Structure organisationnelle​

VaultysHub ne transmet pas les groupes lors de la connexion SSO (ni en SAML, ni en OpenID Connect) : l'affectation aux espaces de travail et aux équipes se fait directement dans Monday.com.

workspaces:
- name: "Marketing"
default_role: "member"
boards:
- "Campaigns"
- "Content Calendar"
- "Social Media"

- name: "Development"
default_role: "member"
boards:
- "Sprint Planning"
- "Bug Tracking"
- "Feature Requests"

- name: "Management"
default_role: "viewer"
boards:
- "Company OKRs"
- "Financial Reports"

Permissions et rôles​

RôlePermissions
OwnerContrôle total du compte
AdminGestion des utilisateurs et paramètres
MemberCréation et édition de contenu
ViewerLecture seule
GuestAccès limité à certains boards

Configuration SCIM​

Pour la synchronisation automatique des utilisateurs :

{
"scim_endpoint": "https://[votre-compte].monday.com/scim/v2",
"scim_token": "Bearer xxxxxx",
"provisioning": {
"create_users": true,
"update_users": true,
"deactivate_users": true,
"sync_groups": true
}
}

Automatisations avec SSO​

Workflows basés sur l'authentification​

automation:
- trigger: "user_login_sso"
conditions:
- first_login: true
actions:
- create_board: "onboarding_template"
- assign_to_team: "hr_team"
- send_notification: "welcome_message"
- add_to_board: "company_announcements"

Intégration avec l'API Monday.com​

Configuration API avec SSO​

const fetch = require('node-fetch');

class MondayAPIClient {
constructor(apiKey) {
this.apiKey = apiKey;
this.apiUrl = 'https://api.monday.com/v2';
}

async getUserBySSOEmail(email) {
const query = `
query {
users(emails: ["${email}"]) {
id
name
email
teams {
id
name
}
}
}
`;

const response = await fetch(this.apiUrl, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': this.apiKey
},
body: JSON.stringify({ query })
});

return response.json();
}
}

Webhooks pour synchronisation​

// Webhook pour synchroniser les changements SSO
app.post('/webhook/monday-sso', async (req, res) => {
const { event, userId, userEmail } = req.body;

switch(event) {
case 'user.created':
await createUserWorkspace(userId, userEmail);
break;
case 'user.updated':
await updateUserPermissions(userId);
break;
case 'user.deactivated':
await archiveUserContent(userId);
break;
}

res.status(200).send('OK');
});

Test de la configuration​

1. Test de connexion​

  1. Déconnectez-vous de Monday.com
  2. Allez sur https://[votre-compte].monday.com
  3. Cliquez sur Log in with SSO
  4. Entrez votre email d'entreprise
  5. Authentifiez-vous via VaultysHub
  6. Vérifiez l'accès à Monday.com

2. Test des permissions​

# Test via l'API
curl -X POST https://api.monday.com/v2 \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ me { name email teams { name } } }"}'

3. Test mobile​

Les applications Monday.com supportent le SSO :

  • Monday.com iOS/Android
  • Monday.com Desktop (Windows/Mac)

Dépannage​

Erreur "SAML assertion failed"​

Problème : L'assertion SAML est rejetée

Solution :

  1. Vérifiez que l'Entity ID est https://[votre-smartlink].link.vaultys.org/[appid]
  2. Vérifiez le format NameID : emailAddress
  3. Assurez-vous que l'email existe dans Monday.com
  4. Vérifiez les logs : Administration → Activity Log

Erreur "User not authorized"​

Problème : L'utilisateur ne peut pas accéder

Solution :

  1. Vérifiez que le domaine email est vérifié
  2. Assurez-vous que l'utilisateur est invité dans Monday.com
  3. Vérifiez les groupes SCIM si configurés

Les groupes ne sont pas synchronisés​

Problème : Les teams Monday ne correspondent pas aux groupes VaultysHub

Solution : c'est le comportement attendu. VaultysHub ne transmet pas les groupes dans l'assertion SAML : gérez les teams directement dans Monday.com.

Problème avec les automations​

Problème : Les automations ne se déclenchent pas pour les utilisateurs SSO

Solution :

  1. Vérifiez que l'utilisateur a les permissions nécessaires
  2. Assurez-vous que l'automation est activée pour "All users"
  3. Testez avec un compte non-SSO pour isoler le problème

Sécurité​

Configuration recommandée​

{
"security_settings": {
"enforce_sso": true,
"session_duration": "8h",
"ip_restrictions": {
"enabled": true,
"whitelist": ["10.0.0.0/8", "192.168.0.0/16"]
},
"2fa_backup": true,
"audit_retention": "365d",
"api_token_expiry": "90d",
"guest_restrictions": {
"disable_export": true,
"disable_api_access": true,
"view_only": true
}
}
}

Conformité​

  • SOC 2 Type II : Certifié
  • ISO 27001 : Certifié
  • GDPR : Conforme avec DPA disponible
  • HIPAA : Conforme (plan Enterprise+)

Migration des utilisateurs​

Script de migration​

import requests
import csv
from datetime import datetime

class MondaySSOMigration:
def __init__(self, api_key, account_id):
self.api_key = api_key
self.account_id = account_id
self.api_url = "https://api.monday.com/v2"

def migrate_users(self, csv_file):
"""Migrer les utilisateurs vers SSO"""
with open(csv_file, 'r') as file:
reader = csv.DictReader(file)
results = []

for user in reader:
result = self.migrate_single_user(user)
results.append(result)

return results

def migrate_single_user(self, user):
# Désactiver l'auth par mot de passe
# Envoyer invitation SSO
# Logger le résultat
pass

Ressources​