Aller au contenu principal

BlueMind

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

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 : 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 : l'Entity ID du Service Provider fourni par BlueMind (et non l'URL de VaultysHub)
    • 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/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 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]
  • Certificat public : Importez le certificat X.509 depuis VaultysHub

3. Configuration des attributs​

Attribut BlueMindAttribut SAMLObligatoire
Emailemail✅
PrénomfirstName❌
NomlastName❌

VaultysHub ne transmet pas les groupes de l'utilisateur : les groupes BlueMind sont gérés directement dans BlueMind.

Configuration avec OpenID Connect​

Configuration dans VaultysHub​

1. Configurer OpenID Connect​

  1. Dans l'application BlueMind
  2. Onglet Authentification → OpenID 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é → Authentification → OpenID Connect
  2. Configurez :
{
"provider": {
"issuer": "https://[votre-smartlink].link.vaultys.org/api/oidc/[appid]",
"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"]
}
}

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
}
}
}

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 VaultysHub
  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 https://[votre-smartlink].link.vaultys.org/[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 : VaultysHub ne transmet pas les groupes (ni en SAML, ni en OpenID Connect). Gérez l'appartenance aux groupes directement dans BlueMind.

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​