Skip to main content

BlueMind

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

Prérequis

  • BlueMind version 4.0 ou supérieure
  • Accès administrateur à BlueMind
  • Module SSO BlueMind activé
  • Application configurée dans SmartLink avec SAML2 ou OpenID Connect

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 : BlueMind
    • URL : https://bluemind.example.com
    • Description : Messagerie collaborative complète
    • Icône : Choisissez l'icône BlueMind

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://bluemind.example.com/saml2/SSO
    • 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 BlueMind

1. Accéder à la console d'administration

  1. Connectez-vous à la console d'administration BlueMind
  2. Allez dans SécuritéAuthentification
  3. Cliquez sur Configuration SAML

2. Configuration du fournisseur d'identité

Configurez les paramètres SAML :

  • Entity ID : https://[votre-smartlink].link.vaultys.org/[appid]
  • 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 public : Importez le certificat X.509 depuis SmartLink

3. Configuration des attributs

Attribut BlueMindAttribut SAMLObligatoire
Emailemail
Nom d'affichagedisplayName
PrénomgivenName
Nomsn
GroupesmemberOf

Configuration avec OpenID Connect

1. Configurer OpenID Connect

  1. Dans l'application BlueMind
  2. Onglet AuthentificationOpenID Connect
  3. Notez :
    • Client ID : bluemind-xxxxxx
    • Client Secret : secret-xxxxxx
    • App ID : [appid]

2. URLs de redirection

Ajoutez :

https://bluemind.example.com/auth/oidc/callback
https://bluemind.example.com/api/auth/oidc/callback

Configuration dans BlueMind

  1. Dans SécuritéAuthentificationOpenID Connect
  2. Configurez :
{
"provider": {
"issuer": "https://[votre-smartlink].link.vaultys.org",
"discovery_url": "https://[votre-smartlink].link.vaultys.org/api/oidc/[appid]/.well-known/openid-configuration",
"client_id": "bluemind-xxxxxx",
"client_secret": "secret-xxxxxx",
"scopes": ["openid", "profile", "email", "groups"]
}
}

Configuration des domaines et utilisateurs

Gestion multi-domaines

domains:
- name: "example.com"
authentication: "sso"
default_quota: "10GB"
services:
- email
- calendar
- contacts
- chat

- name: "filiale.example.com"
authentication: "sso"
default_quota: "5GB"
services:
- email
- calendar

Provisioning automatique

{
"provisioning": {
"enabled": true,
"create_on_first_login": true,
"default_settings": {
"mailbox_quota": "5368709120",
"calendar_enabled": true,
"contacts_enabled": true,
"im_enabled": true,
"videoconference_enabled": true
},
"group_mapping": {
"smartlink-admins": "bm_admins",
"smartlink-users": "bm_users",
"smartlink-external": "bm_external"
}
}
}

Configuration des services BlueMind

Messagerie

mail_settings:
imap:
enabled: true
port: 143
ssl_port: 993

smtp:
enabled: true
port: 25
submission_port: 587
ssl_port: 465

webmail:
theme: "corporate"
default_view: "conversation"
compose_format: "html"

Calendrier et contacts

{
"calendar": {
"default_sharing": "free_busy",
"working_hours": {
"start": "09:00",
"end": "18:00",
"days": ["mon", "tue", "wed", "thu", "fri"]
}
},
"contacts": {
"corporate_directory": true,
"ldap_sync": false,
"carddav_enabled": true
}
}

Chat et visioconférence

chat_settings:
xmpp:
enabled: true
domain: "chat.example.com"
conference_domain: "conference.chat.example.com"

video:
provider: "jitsi"
jitsi_url: "https://meet.example.com"
default_room_settings:
require_password: false
enable_lobby: true
record_enabled: false

Intégration avec les clients

Configuration Thunderbird

<!-- Autodiscover pour Thunderbird -->
<clientConfig version="1.1">
<emailProvider id="bluemind.example.com">
<domain>example.com</domain>
<displayName>BlueMind - Exemple</displayName>
<displayShortName>BlueMind</displayShortName>
<incomingServer type="imap">
<hostname>bluemind.example.com</hostname>
<port>993</port>
<socketType>SSL</socketType>
<authentication>OAuth2</authentication>
<username>%EMAILADDRESS%</username>
</incomingServer>
<outgoingServer type="smtp">
<hostname>bluemind.example.com</hostname>
<port>587</port>
<socketType>STARTTLS</socketType>
<authentication>OAuth2</authentication>
<username>%EMAILADDRESS%</username>
</outgoingServer>
</emailProvider>
</clientConfig>

Configuration mobile (ActiveSync)

{
"activesync": {
"enabled": true,
"url": "https://bluemind.example.com/Microsoft-Server-ActiveSync",
"require_ssl": true,
"device_policy": {
"require_password": true,
"min_password_length": 6,
"require_encryption": true,
"allow_simple_password": false,
"max_failed_attempts": 10,
"remote_wipe_enabled": true
}
}
}

API BlueMind avec SSO

Client API avec authentification SSO

import requests
from datetime import datetime

class BlueMindAPI:
def __init__(self, base_url, sso_token):
self.base_url = base_url
self.session = requests.Session()
self.session.headers.update({
'Authorization': f'Bearer {sso_token}',
'Content-Type': 'application/json'
})

def get_user_info(self, email):
"""Récupérer les informations utilisateur"""
response = self.session.get(
f'{self.base_url}/api/user/{email}'
)
return response.json()

def create_calendar_event(self, user_email, event_data):
"""Créer un événement calendrier"""
response = self.session.post(
f'{self.base_url}/api/calendar/{user_email}/events',
json=event_data
)
return response.json()

def send_email(self, email_data):
"""Envoyer un email via l'API"""
response = self.session.post(
f'{self.base_url}/api/mail/send',
json=email_data
)
return response.json()

Webhooks BlueMind

// Endpoint pour les webhooks BlueMind
app.post('/webhook/bluemind', async (req, res) => {
const { event, data } = req.body;

switch(event) {
case 'user.login':
await logUserAccess(data);
break;

case 'mail.received':
await processIncomingMail(data);
break;

case 'calendar.event.created':
await syncCalendarEvent(data);
break;

case 'contact.updated':
await updateContactInCRM(data);
break;
}

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

Test de la configuration

1. Test de connexion web

  1. Déconnectez-vous de BlueMind
  2. Allez sur https://bluemind.example.com
  3. Cliquez sur Connexion SSO
  4. Authentifiez-vous via SmartLink
  5. Vérifiez l'accès à la messagerie

2. Test IMAP/SMTP avec SSO

# Test IMAP avec OAuth2
openssl s_client -connect bluemind.example.com:993 -crlf
A01 AUTHENTICATE XOAUTH2 [base64_encoded_token]

# Test SMTP avec OAuth2
openssl s_client -connect bluemind.example.com:587 -starttls smtp
AUTH XOAUTH2 [base64_encoded_token]

3. Test des clients

  • Thunderbird : Configuration automatique via Autodiscover
  • Outlook : Support ActiveSync et OAuth2
  • Mobile : Applications BlueMind iOS/Android avec SSO

Dépannage

Erreur "SAML authentication failed"

Problème : L'authentification SAML échoue

Solution :

  1. Vérifiez que l'Entity ID est [appid]
  2. Vérifiez le format du certificat X.509
  3. Consultez les logs : /var/log/bluemind/core.log
  4. Testez avec SAML-tracer (extension navigateur)

Erreur "User not found"

Problème : L'utilisateur SSO n'est pas trouvé

Solution :

  1. Vérifiez que le provisioning automatique est activé
  2. Assurez-vous que l'email correspond au domaine BlueMind
  3. Vérifiez l'attribut email dans l'assertion SAML

Problème de synchronisation des groupes

Problème : Les groupes ne sont pas correctement mappés

Solution :

<!-- Format correct pour les groupes SAML -->
<saml:Attribute Name="memberOf">
<saml:AttributeValue>CN=bluemind-admins,OU=Groups,DC=exemple,DC=com</saml:AttributeValue>
<saml:AttributeValue>CN=bluemind-users,OU=Groups,DC=exemple,DC=com</saml:AttributeValue>
</saml:Attribute>

Erreur ActiveSync avec SSO

Problème : ActiveSync ne fonctionne pas avec SSO

Solution :

  1. Générez un mot de passe d'application pour ActiveSync
  2. Utilisez OAuth2 si supporté par le client
  3. Configurez l'authentification moderne dans Exchange/ActiveSync

Sécurité

Configuration recommandée

{
"security_settings": {
"enforce_sso": true,
"session_timeout": "8h",
"tls_version": "1.2",
"cipher_suites": [
"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
],
"antivirus": {
"enabled": true,
"engine": "clamav",
"scan_on_receive": true
},
"antispam": {
"enabled": true,
"threshold": 5.0,
"quarantine": true
},
"audit": {
"log_authentication": true,
"log_email_access": true,
"retention": "365d"
}
}
}

Conformité

  • RGPD : Conforme avec hébergement en France
  • Chiffrement : TLS 1.2+ pour les communications
  • Archivage légal : Support natif
  • DLP : Règles de prévention de fuite de données

Ressources