Google Apps

Présentation

Les applications Google peuvent utiliser SAML pour authentifier les utilisateurs, en se comportant comme des fournisseurs de service SAML, tel qu'expliqué ici.

Pour fonctionner avec LL::NG il faut :

Configuration

Panneua de contrôle Google Apps

Cette section est basée sur la documentation SimpleSAMLPHP.

Comme administrateur, aller dans le panneau de contrôle Google Apps et cliquer sur les outils avancés click (Advanced tools) :

Ensuite sélectionner Set up single sign-on (SSO):

Puis configurer tous les paramètres SAML :

Certificat

Pour le certificate, vous pouvez le construire en signant la clef privée enregistrée dans le Manager. Selectionner la clef, et l'exporter (bouton Télécharger): Ceci télécharge les clefs publique et privée.

Garder la clef privée dans un fichier, par exemple lemonldap-ng-priv.key, et utiliser openssl pour générer un certificat auto-signé :

openssl req -new -key lemonldap-ng-priv.key -out cert.csr
openssl x509 -req -days 3650 -in cert.csr -signkey lemonldap-ng-priv.key -out cert.pem

Télécharger ensuite le certificat (cert.pem) dans Google Apps.

On peut aussi utiliser le certificat au lieu de la clef publique dans les métadatas SAML, voir configuration du service SAML

Nouveau fournisseur de service

Il est nécessaire d'avoir configuré LL::NG comme fournisseur d'identité SAML,

Ajouter ensuite Google Apps comme nouveau fournisseur de service SAML :

  1. Dans le manager, cliquer sur fournisseurs de service SAML puis sur le bouton Nouveau fournisseur de service.
  2. Mettre GoogleApps comme nom de fournisseur de service.
  3. Mettre Email dans Options » Réponse d'authentification » Format NameID par défaut
  4. Désactiver toutes les cases dans Options » Signature, excepté Signer les messages SSO qui doit être activée
  5. Selectionner Metadata, et déprotéger le champ pour y mettre :
<md:EntityDescriptor entityID="google.com" xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata">
  <SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://www.google.com/a/mydomain.org/acs" index="1" />
    <NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</NameIDFormat>
  </SPSSODescriptor>
</md:EntityDescriptor>

Changer mydomain.org (dans AssertionConsumerService markup, parameter Location) en votre domaine Google Apps. Adapter également l' "entityID" pour qu'elle corresponde à l'émetteur de l'assertion : google.com/a/mydomain.org

Menu application

Il est possible d'ajouter un lien dans le menu application pour afficher Google Apps.

Certains paramètres doivent être adaptés :

Mettre mydomain.org dans le domaine Google Apps

Déconnexion

Google Apps ne supporte pas le Single Logout (SLO).

Google Apps ne dispose pas de paramètre de configuration pour rediriger les utilisateurs vers une URL spécifique après la déconnexion Google Apps (voir Google Apps control panel).

Pour gérer l'autre voie (LL::NG → Google Apps), ajouter une règle de redirection après déconnexion:

GoogleApps => http://www.google.com/calendar/hosted/mydomain.org/logout

Mettre mydomain.org dans le domaine Google Apps