Skip to main content

Monday.com

Ce guide vous explique comment configurer l'authentification unique (SSO) entre SmartLink 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 SmartLink avec SAML2 ou OpenID Connect

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

Configuration avec SAML 2.0 (Recommandé)

1. Créer l'application

  1. Connectez-vous à SmartLink en tant qu'administrateur
  2. Allez dans ApplicationsAjouter
  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 : https://[votre-smartlink].link.vaultys.org/[appid]
    • 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/[appid]/metadata
  • SSO URL : https://[votre-smartlink].link.vaultys.org/api/saml2/sso/[appid]
  • SLO URL : https://[votre-smartlink].link.vaultys.org/api/saml2/slo/[appid]
  • Entity ID : https://[votre-smartlink].link.vaultys.org/[appid]
  • Certificat X.509 : Téléchargez depuis SmartLink

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 : SecuritySingle 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 SmartLink
  • Sign Out URL : https://[votre-smartlink].link.vaultys.org/api/saml2/slo/[appid]

3. Configuration des attributs

Attribut MondayAttribut SAMLObligatoire
Emailemail
First NamefirstName
Last NamelastName
Titletitle
Teamdepartment

Configuration avec OpenID Connect

1. Configurer OpenID Connect

  1. Dans l'application Monday.com
  2. Onglet AuthentificationOpenID 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 SecuritySingle 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 groups

Configuration des espaces de travail

Structure organisationnelle

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

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

- name: "Management"
default_role: "viewer"
groups:
- "smartlink-executives"
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

Création automatique de boards

// Automation pour créer des boards selon les groupes
const mondaySDK = require('monday-sdk-js');
const monday = mondaySDK();

async function createBoardForGroup(groupName, userEmail) {
const boardTemplate = {
'smartlink-sales': 'sales-pipeline-template',
'smartlink-marketing': 'marketing-campaign-template',
'smartlink-dev': 'sprint-board-template'
};

if (boardTemplate[groupName]) {
const board = await monday.api(`
mutation {
duplicate_board(
board_id: ${boardTemplate[groupName]},
board_name: "${groupName} Workspace",
owner_ids: [${userEmail}]
) {
id
}
}
`);
return board;
}
}

Workflows basés sur l'authentification

automation:
- trigger: "user_login_sso"
conditions:
- first_login: true
- group: "smartlink-new-employees"
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, groups } = req.body;

switch(event) {
case 'user.created':
await createUserWorkspace(userId, userEmail);
break;
case 'user.updated':
await updateUserPermissions(userId, groups);
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 SmartLink
  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 [appid]
  2. Vérifiez le format NameID : emailAddress
  3. Assurez-vous que l'email existe dans Monday.com
  4. Vérifiez les logs : AdministrationActivity 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 SmartLink

Solution :

<!-- Format correct pour les groupes SAML -->
<saml:Attribute Name="groups">
<saml:AttributeValue>smartlink-monday-admins</saml:AttributeValue>
<saml:AttributeValue>smartlink-monday-users</saml:AttributeValue>
</saml:Attribute>

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