SlideShare une entreprise Scribd logo
1  sur  35
Mkg-fic-presPPTneutreNETIXIAINFRA-20160113-V1
Zimbra
ouvert sur le
mondeMaxime Désécot – Lead développeur
Frédéric Leguedois – Responsable
développement
#zffr2016
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 2
Zimbra – un rapide aperçu
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 3
Zimbra – quelles perspectives ?
Comment intégrer
Zimbra
Dans son SI ?
Comment intégrer
son SI
Dans Zimbra ?
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 4
Zimbra – ce qu’il faut retenir
Zimbra c’est avant tout
Une énorme API
En webservice
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 5
Zimbra – ce qu’il faut retenir
Votre application
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 6
SOAP - définition
Le SOAP,
Qu’est ce que c’est ?
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 7
SOAP - définition
Le SOAP (Simple Object Access Protocol) est un protocole de transmission de
messages basé sur le protocole XML-RPC.
Protocole de transmission: HTTP
Méthode: POST
Contenu: XML
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 8
SOAP – intérêt ?
Pas lié à un système d'exploitation
Pas lié à un langage de programmation
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 9
Structure d’une enveloppe SOAP
Zone Header:
Authentification + target
Zone Body:
Actions à exécuter sur le serveur
distant
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:zimbra" xmlns:urn1="urn:zimbraAdmin">
<soapenv:Header>
<urn:context>
<urn:authToken>0_677bf4bad269643d33363a62...</urn:authToken>
</urn:context>
</soapenv:Header>
<soapenv:Body>
<urn1:GetAccountRequest attrs=“displayName,sn,givenName,description”>
<urn1:account by="name">maxime@domain.com</urn1:account>
</urn1:GetAccountRequest>
</soapenv:Body>
</soapenv:Envelope>
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 10
SOAP – les namespaces
Appels administrateur: zimbraAdmin
https://monserveurzimbra:7071/service/admin/soap
Token d’authentification administrateur
Appels utilisateur: zimbraAccount
Appels liés au webmail: zimbraMail
https://monserveurzimbra/service/soap
Token d’authentification utilisateur
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 11
SOAP – XML-RPC
Client Zimbra
Analyse de la
requête
Traitement de
la commande
Récupération
du token
Analyse de la
réponse
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 12
SOAP - AuthRequest
<soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/
xmlns:urn="urn:zimbra" xmlns:urn1="urn:zimbraAdmin">
<soapenv:Header>
<urn:context>
</urn:context>
</soapenv:Header>
<soapenv:Body>
<urn1:AuthRequest name="admin@domain.com" password="secret">
</urn1:AuthRequest>
</soapenv:Body>
</soapenv:Envelope>
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 13
SOAP - AuthResponse
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<context xmlns="urn:zimbra">
<change token="41948"/>
</context>
</soap:Header>
<soap:Body>
<AuthResponse xmlns="urn:zimbraAdmin">
<authToken>0_677bf4bad269643d33363a62...</authToken>
<lifetime>43199999</lifetime>
</AuthResponse>
</soap:Body>
</soap:Envelope>
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 14
SOAP - GetAccountRequest
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:zimbra" xmlns:urn1="urn:zimbraAdmin">
<soapenv:Header>
<urn:context>
<urn:authToken>0_677bf4bad269643d33363a62...</urn:authToken>
</urn:context>
</soapenv:Header>
<soapenv:Body>
<urn1:GetAccountRequest attrs="cn,displayName,sn,givenName,description,…">
<urn1:account by="name">maxime@domain.com</urn1:account>
</urn1:GetAccountRequest>
</soapenv:Body>
</soapenv:Envelope>
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 15
SOAP -
GetAccountResponse
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<context xmlns="urn:zimbra">
<change token="41948"/>
</context>
</soap:Header>
<soap:Body>
<GetAccountResponse xmlns="urn:zimbraAdmin">
<account id="b9f84225-8a8c-4cd6-8ca3" name="maxime@domain.com">
<a n="cn">Maxime Désécot</a>
<a n="givenName">Maxime</a>
<a n="sn">Désécot</a>
<a n="displayName">Maxime Desandco</a>
…
</account>
</GetAccountResponse>
</soap:Body>
</soap:Envelope>
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 16
SOAP – En pratique ?
En pratique,
Qu’est-ce qu’on peut en faire ?
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 17
Intégration dans un portail ou un intranet
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 18
Synchroniser un annuaire ou logiciel RH
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 19
Redévelopper l’espace d’administration
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 20
Redévelopper le webmail
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 21
Pratiques courantes asynchrone
Zmprov l’outil des administrateurs Zimbra
Script de synchronisation des utilisateurs
Script de synchronisation des listes de diffusion
Script oneshot de provisionning de signature
Script oneshot de provisionning de partages automatiques
Etc.
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 22
Pratiques courantes asynchrone
Zmprov l’outil des administrateurs Zimbra
Avantages:
Outil maitrisé par les administrateurs zimbra
Bonne documentation zmprov help
Pratique pour une opération oneshot
Inconvénient:
Il faut être sur un serveur zimbra
Beaucoup de commande zmprov = très long
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 23
Pratiques courantes asynchrone
zmprov –f /tmp/mescommandeszimbra
TRES RAPIDE !
GESTION DES ERREURS ?
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 24
Intégration synchrone
Développement d’une librairie à intégrer à votre logiciel
Avantages:
Le langage que vous voulez
Pas d’attente de traitement, votre logiciel fait l’appel en direct
Gestion des erreurs
Serveur autre que Zimbra
Inconvénients:
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 25
Intégration synchrone
Développement d’une librairie à intégrer à votre logiciel
Avantages:
Le langage que vous voulez
Pas d’attente de traitement, votre logiciel fait l’appel en direct
Gestion des erreurs
Serveur autre que Zimbra
Inconvénients:
Gestion de l’authentification
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 26
Gestion de l’authentification
L’API de Zimbra fonctionne par token d’authentification
<AuthResponse xmlns="urn:zimbraAdmin">
<authToken>0_677bf4bad269643d33363a62...</authToken>
<lifetime>43199999</lifetime>
</AuthResponse>
Attention, le token a une durée de vie limité !
Le token s’obtient par identification (login + password)
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 27
Gestion de l’authentification
Comment accéder aux requêtes zimbraAccount
d’un compte utilisateur
sans connaitre son mot de passe ?
1. DelegateAuthRequest
2. Preauth
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 28
Gestion de l’authentification
http://wiki.zimbra.com/wiki/Preauth
Génération d’une clé unique pour mon domaine
Echange de cette clé avec mon application
prov> gdpak domain.com
preAuthKey: 4e2816f16c44fab20ecdee39fb850c3b0bb54d03f1d8e073aaea376a4f407f0c
prov>
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 29
Calcul d’une preauth
Pré-requis:
L’adresse email du compte utilisateur
Un timestamp (pour justifier de la proximité temporelle de la requête)
Eventuellement une durée d’expiration (0)
HMAC SHA-1 des données utilisant la clé
key: 4e2816f16c44fab20ecdee39fb850c3b0bb54d03f1d8e073aaea376a4f407f0c
account: john.doe@domain.com
by: name
expires: 0
timestamp: 1135280708088
preauth = hmac("john.doe@domain.com|name|0|1135280708088",
" 4e2816f16c44fab20ecdee39fb850c3b0bb54d03f1d8e073aaea376a4f407f0c ");
preauth-value: b248f6cfd027edd45c5369f8490125204772f844
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 30
Calcul d’une preauth en ruby
Require “openssl”
include OpenSSL
include Digest
def compute_preauth(name, time_st, authkey)
plaintext="#{name}|name|0|#{time_st}"
key=authkey
hmacd=HMAC.new(key, SHA1.new)
hmacd.update(plaintext)
return hmacd.to_s
end
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 31
Calcul d’une preauth
Client Zimbra
Analyse de
la requête
Construction
de la preauth
Comparaison
Preauth client
Preauth calculée
Envoi du token
Construction
d’une preauth
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 32
Calcul d’une preauth
<urn1:AuthRequest>
<urn1:account by="name">maxime@domain.com</urn1:account>
<urn1:password>secret</urn1:password>
</urn1:AuthRequest>
<urn1:AuthRequest>
<urn1:account by="name">maxime@domain.com</urn1:account>
<urn1:preauth timestamp="1135280708088">
b248f6cfd027edd45c5369f8490125204772f844
</urn1:preauth>
</urn1:AuthRequest>
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 33
Preauth – ouverture du webmail
https://monwebmail/service/preauth?account=john.doe@domain.com&expires=0&
timestamp=1135280708088&preauth=b248f6cfd027edd45c5369f8490125204772f844
Ouverture autologin du webmail
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 34
Les outils du développeur
Comment avoir un aperçu des possibilités de l'API SOAP de Zimbra ?
Firebug
SOAPUI
https://monserveurzimbra/service/wsdl/ZimbraAdminService.wsdl
https://monserveurzimbra/service/wsdl/ZimbraUserService.wsdl
© Netixia – copyright 2016
www.netixia.fr
16/02/2016 35
Zimbra ouvert sur le monde
QUESTIONS ?

Contenu connexe

En vedette

Zimbra Forum France 2016 - Karine and StarXpert
Zimbra Forum France 2016 - Karine and StarXpertZimbra Forum France 2016 - Karine and StarXpert
Zimbra Forum France 2016 - Karine and StarXpertZimbra
 
Zimbra Forum France 2016 - Beezim and Ceph
Zimbra Forum France 2016 - Beezim and CephZimbra Forum France 2016 - Beezim and Ceph
Zimbra Forum France 2016 - Beezim and CephZimbra
 
Synacor Mail – Operation Zimbra for Service Providers, Part IV
Synacor Mail – Operation Zimbra for Service Providers, Part IVSynacor Mail – Operation Zimbra for Service Providers, Part IV
Synacor Mail – Operation Zimbra for Service Providers, Part IVZimbra
 
Synacor Mail – Operation Zimbra for Service Providers, Part II
Synacor Mail – Operation Zimbra for Service Providers, Part IISynacor Mail – Operation Zimbra for Service Providers, Part II
Synacor Mail – Operation Zimbra for Service Providers, Part IIZimbra
 
Deploy Zimbra Collaboration in Minutes—Not Days—with Oracle Cloud
Deploy Zimbra Collaboration in Minutes—Not Days—with Oracle CloudDeploy Zimbra Collaboration in Minutes—Not Days—with Oracle Cloud
Deploy Zimbra Collaboration in Minutes—Not Days—with Oracle CloudZimbra
 
What's new in Zimbra Collaboration 8.7.x
What's new in Zimbra Collaboration 8.7.xWhat's new in Zimbra Collaboration 8.7.x
What's new in Zimbra Collaboration 8.7.xZimbra
 
[ES] Zimbra Suite Plus - Concebido para extender las funcionalidades de su se...
[ES] Zimbra Suite Plus - Concebido para extender las funcionalidades de su se...[ES] Zimbra Suite Plus - Concebido para extender las funcionalidades de su se...
[ES] Zimbra Suite Plus - Concebido para extender las funcionalidades de su se...Zimbra
 
Zimbra APxJ Partner Summit - Sales Track
Zimbra APxJ Partner Summit - Sales TrackZimbra APxJ Partner Summit - Sales Track
Zimbra APxJ Partner Summit - Sales TrackZimbra
 
Zimbra versus exchange 2010 presentation
Zimbra versus exchange 2010 presentationZimbra versus exchange 2010 presentation
Zimbra versus exchange 2010 presentationsolarisyourep
 
Zimbra APxJ Partner Summit - Plenary Session
Zimbra APxJ Partner Summit - Plenary SessionZimbra APxJ Partner Summit - Plenary Session
Zimbra APxJ Partner Summit - Plenary SessionZimbra
 
Zimbra APxJ Partner Summit - Techincal Track
Zimbra APxJ Partner Summit - Techincal TrackZimbra APxJ Partner Summit - Techincal Track
Zimbra APxJ Partner Summit - Techincal TrackZimbra
 
Netixia Zimbra Collaboration Roadmap
Netixia Zimbra Collaboration RoadmapNetixia Zimbra Collaboration Roadmap
Netixia Zimbra Collaboration RoadmapAntony Barroux
 
Synacor Mail – Operation Zimbra for Service Providers, Part I
Synacor Mail – Operation Zimbra for Service Providers, Part ISynacor Mail – Operation Zimbra for Service Providers, Part I
Synacor Mail – Operation Zimbra for Service Providers, Part IZimbra
 
Zimbra Roadmap 2015/2016
Zimbra Roadmap 2015/2016Zimbra Roadmap 2015/2016
Zimbra Roadmap 2015/2016Zimbra
 

En vedette (16)

Zimbra Forum France 2016 - Karine and StarXpert
Zimbra Forum France 2016 - Karine and StarXpertZimbra Forum France 2016 - Karine and StarXpert
Zimbra Forum France 2016 - Karine and StarXpert
 
Zimbra Forum France 2016 - Beezim and Ceph
Zimbra Forum France 2016 - Beezim and CephZimbra Forum France 2016 - Beezim and Ceph
Zimbra Forum France 2016 - Beezim and Ceph
 
Synacor Mail – Operation Zimbra for Service Providers, Part IV
Synacor Mail – Operation Zimbra for Service Providers, Part IVSynacor Mail – Operation Zimbra for Service Providers, Part IV
Synacor Mail – Operation Zimbra for Service Providers, Part IV
 
Synacor Mail – Operation Zimbra for Service Providers, Part II
Synacor Mail – Operation Zimbra for Service Providers, Part IISynacor Mail – Operation Zimbra for Service Providers, Part II
Synacor Mail – Operation Zimbra for Service Providers, Part II
 
Deploy Zimbra Collaboration in Minutes—Not Days—with Oracle Cloud
Deploy Zimbra Collaboration in Minutes—Not Days—with Oracle CloudDeploy Zimbra Collaboration in Minutes—Not Days—with Oracle Cloud
Deploy Zimbra Collaboration in Minutes—Not Days—with Oracle Cloud
 
What's new in Zimbra Collaboration 8.7.x
What's new in Zimbra Collaboration 8.7.xWhat's new in Zimbra Collaboration 8.7.x
What's new in Zimbra Collaboration 8.7.x
 
[ES] Zimbra Suite Plus - Concebido para extender las funcionalidades de su se...
[ES] Zimbra Suite Plus - Concebido para extender las funcionalidades de su se...[ES] Zimbra Suite Plus - Concebido para extender las funcionalidades de su se...
[ES] Zimbra Suite Plus - Concebido para extender las funcionalidades de su se...
 
Zimbra APxJ Partner Summit - Sales Track
Zimbra APxJ Partner Summit - Sales TrackZimbra APxJ Partner Summit - Sales Track
Zimbra APxJ Partner Summit - Sales Track
 
Zimbra versus exchange 2010 presentation
Zimbra versus exchange 2010 presentationZimbra versus exchange 2010 presentation
Zimbra versus exchange 2010 presentation
 
Zimbra APxJ Partner Summit - Plenary Session
Zimbra APxJ Partner Summit - Plenary SessionZimbra APxJ Partner Summit - Plenary Session
Zimbra APxJ Partner Summit - Plenary Session
 
Zimbra Overview
Zimbra OverviewZimbra Overview
Zimbra Overview
 
Zimbra APxJ Partner Summit - Techincal Track
Zimbra APxJ Partner Summit - Techincal TrackZimbra APxJ Partner Summit - Techincal Track
Zimbra APxJ Partner Summit - Techincal Track
 
Netixia Zimbra Collaboration Roadmap
Netixia Zimbra Collaboration RoadmapNetixia Zimbra Collaboration Roadmap
Netixia Zimbra Collaboration Roadmap
 
Synacor Mail – Operation Zimbra for Service Providers, Part I
Synacor Mail – Operation Zimbra for Service Providers, Part ISynacor Mail – Operation Zimbra for Service Providers, Part I
Synacor Mail – Operation Zimbra for Service Providers, Part I
 
Zimbra Overview
Zimbra OverviewZimbra Overview
Zimbra Overview
 
Zimbra Roadmap 2015/2016
Zimbra Roadmap 2015/2016Zimbra Roadmap 2015/2016
Zimbra Roadmap 2015/2016
 

Similaire à Zimbra Forum France 2016 - Netixia

MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...Identity Days
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouseSébastien GIORIA
 
Presentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedPresentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedTECOS
 
2024-01 - slides du meetup devops aix-marseille
2024-01 - slides du meetup devops aix-marseille2024-01 - slides du meetup devops aix-marseille
2024-01 - slides du meetup devops aix-marseilleFrederic Leger
 
GS Days 2017 - La sécurité des APIs
GS Days 2017 - La sécurité des APIsGS Days 2017 - La sécurité des APIs
GS Days 2017 - La sécurité des APIsBertrand Carlier
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthnChristophe Villeneuve
 
Le chiffrement en 2019 - Lybero.net - Arnaud Laprévote
Le chiffrement en 2019 - Lybero.net - Arnaud LaprévoteLe chiffrement en 2019 - Lybero.net - Arnaud Laprévote
Le chiffrement en 2019 - Lybero.net - Arnaud Laprévotealaprevote
 
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?Fasterize
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)Microsoft Décideurs IT
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)Microsoft Technet France
 
Présentation LINAGORA - OBM au @S2LQ
Présentation LINAGORA - OBM au @S2LQPrésentation LINAGORA - OBM au @S2LQ
Présentation LINAGORA - OBM au @S2LQMichel-Marie Maudet
 
Conférence sponsor Touchweb - FoP Day 2023
Conférence sponsor Touchweb - FoP Day 2023Conférence sponsor Touchweb - FoP Day 2023
Conférence sponsor Touchweb - FoP Day 2023ChristopheVidal15
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23Frederic Leger
 
Conférence Cyberattaques PrestaShop–1 an de harcèlement : FoP Day 2023
Conférence Cyberattaques PrestaShop–1 an de harcèlement : FoP Day 2023Conférence Cyberattaques PrestaShop–1 an de harcèlement : FoP Day 2023
Conférence Cyberattaques PrestaShop–1 an de harcèlement : FoP Day 2023ChristopheVidal15
 
how to eran free bitcoin
how to eran free bitcoinhow to eran free bitcoin
how to eran free bitcoinsweet-bitcoin
 
WebSchool Orléans - B.A BA de la Création Web
WebSchool Orléans - B.A BA de la Création WebWebSchool Orléans - B.A BA de la Création Web
WebSchool Orléans - B.A BA de la Création WebTRIBELEADR
 
Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017
Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017
Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017Marius Zaharia
 

Similaire à Zimbra Forum France 2016 - Netixia (20)

MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
 
La Sécurité Sur Le Web
La Sécurité Sur Le WebLa Sécurité Sur Le Web
La Sécurité Sur Le Web
 
Owasp top 10 2010 Resist toulouse
Owasp top 10   2010  Resist toulouseOwasp top 10   2010  Resist toulouse
Owasp top 10 2010 Resist toulouse
 
Presentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamedPresentation de nagios mohamed bouhamed
Presentation de nagios mohamed bouhamed
 
2024-01 - slides du meetup devops aix-marseille
2024-01 - slides du meetup devops aix-marseille2024-01 - slides du meetup devops aix-marseille
2024-01 - slides du meetup devops aix-marseille
 
GS Days 2017 - La sécurité des APIs
GS Days 2017 - La sécurité des APIsGS Days 2017 - La sécurité des APIs
GS Days 2017 - La sécurité des APIs
 
A tous les niveaux la securite
A tous les niveaux la securiteA tous les niveaux la securite
A tous les niveaux la securite
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
Le chiffrement en 2019 - Lybero.net - Arnaud Laprévote
Le chiffrement en 2019 - Lybero.net - Arnaud LaprévoteLe chiffrement en 2019 - Lybero.net - Arnaud Laprévote
Le chiffrement en 2019 - Lybero.net - Arnaud Laprévote
 
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
Comment Rue Du Commerce est devenu le site e-commerce le plus rapide de France ?
 
SSL strip
SSL stripSSL strip
SSL strip
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
 
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
(Azure) Active Directory + BYOD = tranquillité d’esprit, chiche ! (2nde Partie)
 
Présentation LINAGORA - OBM au @S2LQ
Présentation LINAGORA - OBM au @S2LQPrésentation LINAGORA - OBM au @S2LQ
Présentation LINAGORA - OBM au @S2LQ
 
Conférence sponsor Touchweb - FoP Day 2023
Conférence sponsor Touchweb - FoP Day 2023Conférence sponsor Touchweb - FoP Day 2023
Conférence sponsor Touchweb - FoP Day 2023
 
meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23meetup devops aix marseille du 16/05/23
meetup devops aix marseille du 16/05/23
 
Conférence Cyberattaques PrestaShop–1 an de harcèlement : FoP Day 2023
Conférence Cyberattaques PrestaShop–1 an de harcèlement : FoP Day 2023Conférence Cyberattaques PrestaShop–1 an de harcèlement : FoP Day 2023
Conférence Cyberattaques PrestaShop–1 an de harcèlement : FoP Day 2023
 
how to eran free bitcoin
how to eran free bitcoinhow to eran free bitcoin
how to eran free bitcoin
 
WebSchool Orléans - B.A BA de la Création Web
WebSchool Orléans - B.A BA de la Création WebWebSchool Orléans - B.A BA de la Création Web
WebSchool Orléans - B.A BA de la Création Web
 
Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017
Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017
Identite-as-a-service pour vos applications B2C - MS Cloud Summit Paris 2017
 

Zimbra Forum France 2016 - Netixia

  • 1. Mkg-fic-presPPTneutreNETIXIAINFRA-20160113-V1 Zimbra ouvert sur le mondeMaxime Désécot – Lead développeur Frédéric Leguedois – Responsable développement #zffr2016
  • 2. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 2 Zimbra – un rapide aperçu
  • 3. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 3 Zimbra – quelles perspectives ? Comment intégrer Zimbra Dans son SI ? Comment intégrer son SI Dans Zimbra ?
  • 4. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 4 Zimbra – ce qu’il faut retenir Zimbra c’est avant tout Une énorme API En webservice
  • 5. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 5 Zimbra – ce qu’il faut retenir Votre application
  • 6. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 6 SOAP - définition Le SOAP, Qu’est ce que c’est ?
  • 7. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 7 SOAP - définition Le SOAP (Simple Object Access Protocol) est un protocole de transmission de messages basé sur le protocole XML-RPC. Protocole de transmission: HTTP Méthode: POST Contenu: XML
  • 8. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 8 SOAP – intérêt ? Pas lié à un système d'exploitation Pas lié à un langage de programmation
  • 9. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 9 Structure d’une enveloppe SOAP Zone Header: Authentification + target Zone Body: Actions à exécuter sur le serveur distant <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:zimbra" xmlns:urn1="urn:zimbraAdmin"> <soapenv:Header> <urn:context> <urn:authToken>0_677bf4bad269643d33363a62...</urn:authToken> </urn:context> </soapenv:Header> <soapenv:Body> <urn1:GetAccountRequest attrs=“displayName,sn,givenName,description”> <urn1:account by="name">maxime@domain.com</urn1:account> </urn1:GetAccountRequest> </soapenv:Body> </soapenv:Envelope>
  • 10. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 10 SOAP – les namespaces Appels administrateur: zimbraAdmin https://monserveurzimbra:7071/service/admin/soap Token d’authentification administrateur Appels utilisateur: zimbraAccount Appels liés au webmail: zimbraMail https://monserveurzimbra/service/soap Token d’authentification utilisateur
  • 11. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 11 SOAP – XML-RPC Client Zimbra Analyse de la requête Traitement de la commande Récupération du token Analyse de la réponse
  • 12. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 12 SOAP - AuthRequest <soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope/ xmlns:urn="urn:zimbra" xmlns:urn1="urn:zimbraAdmin"> <soapenv:Header> <urn:context> </urn:context> </soapenv:Header> <soapenv:Body> <urn1:AuthRequest name="admin@domain.com" password="secret"> </urn1:AuthRequest> </soapenv:Body> </soapenv:Envelope>
  • 13. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 13 SOAP - AuthResponse <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <context xmlns="urn:zimbra"> <change token="41948"/> </context> </soap:Header> <soap:Body> <AuthResponse xmlns="urn:zimbraAdmin"> <authToken>0_677bf4bad269643d33363a62...</authToken> <lifetime>43199999</lifetime> </AuthResponse> </soap:Body> </soap:Envelope>
  • 14. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 14 SOAP - GetAccountRequest <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:zimbra" xmlns:urn1="urn:zimbraAdmin"> <soapenv:Header> <urn:context> <urn:authToken>0_677bf4bad269643d33363a62...</urn:authToken> </urn:context> </soapenv:Header> <soapenv:Body> <urn1:GetAccountRequest attrs="cn,displayName,sn,givenName,description,…"> <urn1:account by="name">maxime@domain.com</urn1:account> </urn1:GetAccountRequest> </soapenv:Body> </soapenv:Envelope>
  • 15. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 15 SOAP - GetAccountResponse <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header> <context xmlns="urn:zimbra"> <change token="41948"/> </context> </soap:Header> <soap:Body> <GetAccountResponse xmlns="urn:zimbraAdmin"> <account id="b9f84225-8a8c-4cd6-8ca3" name="maxime@domain.com"> <a n="cn">Maxime Désécot</a> <a n="givenName">Maxime</a> <a n="sn">Désécot</a> <a n="displayName">Maxime Desandco</a> … </account> </GetAccountResponse> </soap:Body> </soap:Envelope>
  • 16. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 16 SOAP – En pratique ? En pratique, Qu’est-ce qu’on peut en faire ?
  • 17. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 17 Intégration dans un portail ou un intranet
  • 18. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 18 Synchroniser un annuaire ou logiciel RH
  • 19. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 19 Redévelopper l’espace d’administration
  • 20. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 20 Redévelopper le webmail
  • 21. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 21 Pratiques courantes asynchrone Zmprov l’outil des administrateurs Zimbra Script de synchronisation des utilisateurs Script de synchronisation des listes de diffusion Script oneshot de provisionning de signature Script oneshot de provisionning de partages automatiques Etc.
  • 22. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 22 Pratiques courantes asynchrone Zmprov l’outil des administrateurs Zimbra Avantages: Outil maitrisé par les administrateurs zimbra Bonne documentation zmprov help Pratique pour une opération oneshot Inconvénient: Il faut être sur un serveur zimbra Beaucoup de commande zmprov = très long
  • 23. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 23 Pratiques courantes asynchrone zmprov –f /tmp/mescommandeszimbra TRES RAPIDE ! GESTION DES ERREURS ?
  • 24. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 24 Intégration synchrone Développement d’une librairie à intégrer à votre logiciel Avantages: Le langage que vous voulez Pas d’attente de traitement, votre logiciel fait l’appel en direct Gestion des erreurs Serveur autre que Zimbra Inconvénients:
  • 25. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 25 Intégration synchrone Développement d’une librairie à intégrer à votre logiciel Avantages: Le langage que vous voulez Pas d’attente de traitement, votre logiciel fait l’appel en direct Gestion des erreurs Serveur autre que Zimbra Inconvénients: Gestion de l’authentification
  • 26. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 26 Gestion de l’authentification L’API de Zimbra fonctionne par token d’authentification <AuthResponse xmlns="urn:zimbraAdmin"> <authToken>0_677bf4bad269643d33363a62...</authToken> <lifetime>43199999</lifetime> </AuthResponse> Attention, le token a une durée de vie limité ! Le token s’obtient par identification (login + password)
  • 27. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 27 Gestion de l’authentification Comment accéder aux requêtes zimbraAccount d’un compte utilisateur sans connaitre son mot de passe ? 1. DelegateAuthRequest 2. Preauth
  • 28. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 28 Gestion de l’authentification http://wiki.zimbra.com/wiki/Preauth Génération d’une clé unique pour mon domaine Echange de cette clé avec mon application prov> gdpak domain.com preAuthKey: 4e2816f16c44fab20ecdee39fb850c3b0bb54d03f1d8e073aaea376a4f407f0c prov>
  • 29. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 29 Calcul d’une preauth Pré-requis: L’adresse email du compte utilisateur Un timestamp (pour justifier de la proximité temporelle de la requête) Eventuellement une durée d’expiration (0) HMAC SHA-1 des données utilisant la clé key: 4e2816f16c44fab20ecdee39fb850c3b0bb54d03f1d8e073aaea376a4f407f0c account: john.doe@domain.com by: name expires: 0 timestamp: 1135280708088 preauth = hmac("john.doe@domain.com|name|0|1135280708088", " 4e2816f16c44fab20ecdee39fb850c3b0bb54d03f1d8e073aaea376a4f407f0c "); preauth-value: b248f6cfd027edd45c5369f8490125204772f844
  • 30. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 30 Calcul d’une preauth en ruby Require “openssl” include OpenSSL include Digest def compute_preauth(name, time_st, authkey) plaintext="#{name}|name|0|#{time_st}" key=authkey hmacd=HMAC.new(key, SHA1.new) hmacd.update(plaintext) return hmacd.to_s end
  • 31. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 31 Calcul d’une preauth Client Zimbra Analyse de la requête Construction de la preauth Comparaison Preauth client Preauth calculée Envoi du token Construction d’une preauth
  • 32. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 32 Calcul d’une preauth <urn1:AuthRequest> <urn1:account by="name">maxime@domain.com</urn1:account> <urn1:password>secret</urn1:password> </urn1:AuthRequest> <urn1:AuthRequest> <urn1:account by="name">maxime@domain.com</urn1:account> <urn1:preauth timestamp="1135280708088"> b248f6cfd027edd45c5369f8490125204772f844 </urn1:preauth> </urn1:AuthRequest>
  • 33. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 33 Preauth – ouverture du webmail https://monwebmail/service/preauth?account=john.doe@domain.com&expires=0& timestamp=1135280708088&preauth=b248f6cfd027edd45c5369f8490125204772f844 Ouverture autologin du webmail
  • 34. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 34 Les outils du développeur Comment avoir un aperçu des possibilités de l'API SOAP de Zimbra ? Firebug SOAPUI https://monserveurzimbra/service/wsdl/ZimbraAdminService.wsdl https://monserveurzimbra/service/wsdl/ZimbraUserService.wsdl
  • 35. © Netixia – copyright 2016 www.netixia.fr 16/02/2016 35 Zimbra ouvert sur le monde QUESTIONS ?

Notes de l'éditeur

  1. TOUT dans Zimbra est du SOAP ! Rest = upload ou download d’objet
  2. Principe question – réponse ou action - résultat