Skip to main content

Trello (Atlassian)

Ce guide vous explique comment configurer l'authentification unique (SSO) entre SmartLink et Trello en utilisant SAML 2.0 via Atlassian Access.

Prérequis

  • Abonnement Trello Enterprise avec Atlassian Access
  • Accès administrateur à Atlassian Admin
  • Domaine vérifié dans Atlassian
  • Application configurée dans SmartLink avec SAML2

Note : Le SSO pour Trello nécessite Atlassian Access, disponible uniquement avec les plans Enterprise.

1. Créer l'application

  1. Connectez-vous à SmartLink en tant qu'administrateur
  2. Allez dans ApplicationsAjouter
  3. Créez une nouvelle application :
    • Nom : Trello
    • URL : https://trello.com
    • Description : Gestion de projets et collaboration
    • Icône : Choisissez l'icône Trello

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://auth.atlassian.com/login/callback
    • 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]
  • Certificat X.509 : Téléchargez depuis SmartLink

Configuration dans Atlassian Access

1. Accéder à Atlassian Admin

  1. Connectez-vous à admin.atlassian.com
  2. Sélectionnez votre organisation
  3. Allez dans SecurityIdentity providers

2. Ajouter un fournisseur d'identité SAML

  1. Cliquez sur Add identity provider
  2. Sélectionnez SAML single sign-on
  3. Configurez les informations du fournisseur d'identité :

Configuration manuelle

  • Identity provider Entity ID : [appid]
  • SSO URL : https://[votre-smartlink].link.vaultys.org/api/saml2/sso/[appid]
  • Public x509 certificate : Collez le certificat depuis SmartLink

Ou via URL de métadonnées

  • Import from metadata URL : https://[votre-smartlink].link.vaultys.org/api/saml2/[appid]/metadata

3. Configuration des attributs SAML

Configurez le mapping des attributs :

<AttributeStatement>
<Attribute Name="email">
<AttributeValue>user.email</AttributeValue>
</Attribute>
<Attribute Name="displayName">
<AttributeValue>user.displayName</AttributeValue>
</Attribute>
<Attribute Name="firstName">
<AttributeValue>user.firstName</AttributeValue>
</Attribute>
<Attribute Name="lastName">
<AttributeValue>user.lastName</AttributeValue>
</Attribute>
</AttributeStatement>

4. Configuration des domaines

  1. Dans Domains, ajoutez votre domaine d'entreprise
  2. Vérifiez le domaine via DNS (TXT record)
  3. Activez Enforce SSO pour ce domaine

5. Attribution des utilisateurs

  1. Dans Users, configurez :
    • Auto-provisioning : Activé
    • Just-in-time provisioning : Activé
    • Update user details on login : Activé

Configuration des groupes et permissions

Synchronisation des groupes

Dans SmartLink, configurez les assertions SAML pour inclure les groupes :

<Attribute Name="groups">
<AttributeValue>smartlink-trello-admins</AttributeValue>
<AttributeValue>smartlink-trello-users</AttributeValue>
</Attribute>

Mapping des permissions Trello

Dans Atlassian Access :

  1. DirectoryGroups
  2. Créez les mappings :
    • smartlink-trello-admins → Workspace Admin
    • smartlink-trello-users → Normal User
    • smartlink-trello-guests → Guest User

Configuration des workspaces

Pour assigner automatiquement les utilisateurs aux bons workspaces :

  1. ProductsTrello
  2. Workspace access
  3. Configurez l'accès par groupe

Configuration des politiques de sécurité

Session et authentification

  1. Dans Atlassian Access → Policies
  2. Configurez :
    • Session duration : 8 heures
    • Require re-authentication : Après 30 jours
    • Mobile session : 90 jours

Restrictions IP (optionnel)

{
"ip_allowlist": [
"203.0.113.0/24",
"198.51.100.0/24"
],
"enforce_for_admins": true
}

Test de la configuration

1. Test de connexion

  1. Ouvrez une fenêtre de navigation privée
  2. Allez sur trello.com/login
  3. Entrez votre email d'entreprise
  4. Vous devez être redirigé vers SmartLink
  5. Authentifiez-vous avec vos identifiants SmartLink
  6. Vous devez être connecté à Trello

2. Test avec l'application mobile

  1. Ouvrez l'application Trello mobile
  2. Tapez sur Log in
  3. Entrez votre email d'entreprise
  4. L'application ouvre un navigateur pour l'authentification
  5. Après connexion, vous êtes redirigé vers l'application

3. Vérification des permissions

# Via l'API Trello
curl -X GET "https://api.trello.com/1/members/me" \
-H "Authorization: OAuth oauth_consumer_key=\"{key}\", oauth_token=\"{token}\""

Intégration avec Power-Ups

Configuration des Power-Ups avec SSO

Pour les Power-Ups personnalisés utilisant l'authentification :

// Configuration Power-Up avec SSO
const t = window.TrelloPowerUp.iframe();

t.authorize({
url: 'https://[votre-smartlink].link.vaultys.org/api/oidc/[appid]/authorize',
clientId: 'trello-powerup-xxxxxx',
scope: 'read,write',
expiration: '30days',
name: 'Mon Power-Up'
});

Automatisation avec Butler

Configuration Butler avec SSO

Les automatisations Butler continuent de fonctionner avec SSO. Pour les commandes personnalisées :

when a card is moved to list "Done" by anyone,
post comment "@{username} a terminé cette tâche"

Dépannage

Erreur "SAML response validation failed"

Problème : La réponse SAML n'est pas valide

Solution :

  1. Vérifiez le certificat X.509
  2. Assurez-vous que l'Entity ID correspond dans SmartLink : [appid]
  3. Vérifiez les logs dans Atlassian Admin :
    • SecurityAuthentication log

Erreur "User not found in directory"

Problème : L'utilisateur n'est pas provisionné

Solution :

  1. Vérifiez que le domaine email est vérifié
  2. Activez Just-in-time provisioning
  3. Vérifiez l'attribut email dans l'assertion SAML

Les groupes ne sont pas synchronisés

Problème : Les permissions de groupe ne s'appliquent pas

Solution :

  1. Vérifiez le format de l'attribut groups dans l'assertion SAML
  2. Dans Atlassian Access, vérifiez DirectoryGroups
  3. Assurez-vous que les noms de groupes correspondent exactement

Erreur sur mobile "Authentication failed"

Problème : L'authentification échoue sur l'application mobile

Solution :

  1. Assurez-vous que le certificat SSL est valide
  2. Vérifiez que l'URL de callback est autorisée
  3. Essayez de vous déconnecter complètement et reconnecter

Sécurité

Recommandations

  1. Enforce SSO : Activez l'application du SSO pour tous les utilisateurs
  2. Domain verification : Vérifiez tous vos domaines d'entreprise
  3. Session management : Configurez des durées de session appropriées
  4. Audit logs : Surveillez régulièrement les logs d'authentification
  5. API tokens : Gérez les tokens API séparément du SSO

Configuration de la conformité

{
"compliance_settings": {
"data_residency": "EU",
"encryption_at_rest": true,
"audit_log_retention": "365 days",
"gdpr_compliant": true
}
}

Sauvegarde et récupération

En cas de problème avec SSO :

  1. Les administrateurs peuvent utiliser le recovery email
  2. Atlassian Access maintient un accès d'urgence
  3. Les API tokens restent valides indépendamment du SSO

Intégration avec d'autres produits Atlassian

Jira et Confluence

La même configuration SSO s'applique automatiquement à :

  • Jira Software/Service Management
  • Confluence
  • Bitbucket
  • Opsgenie

Configuration unifiée

atlassian_products:
- trello:
enabled: true
default_workspace: "entreprise"
- jira:
enabled: true
default_project: "PROJ"
- confluence:
enabled: true
default_space: "DOCS"

Migration des utilisateurs existants

Script de migration

# Script pour migrer les utilisateurs vers SSO
import requests

def migrate_users_to_sso(domain):
# Récupérer tous les utilisateurs
users = get_all_users(domain)

for user in users:
if user['email'].endswith(f'@{domain}'):
# Activer SSO pour l'utilisateur
enable_sso_for_user(user['id'])
# Envoyer email de notification
send_migration_email(user['email'])

Ressources