Dans un contexte de mobilité et BYOD, on désire de plus en plus ouvrir l’accès aux ressources "on premise" en dehors de l’entreprise. Si ADFS reste la référence pour l’ouverture aux externes, l’équipe Azure de MS a développé récemment un proxy applicatif permettant de se connecter en SSO sans mise en place d’infrastructure ou reconfiguration de l’application "on premise".
Votre application (ici un portail SharePoint) est tout simplement publiée comme une APP sur votre portail 365. L’authentification est transparente, en interne comme en mobilité.
On peut, bien sur, panacher avec ADFS pour les "vrais" externes qui n'auraient pas de compte dans un AD approuvé.
Le Principe
Dans le cas d’un utilisateur externe, on ne peut pas recourir à l’authentification intégrée sans VPN, et on recourt généralement à ADFS :
Si l’utilisateur externe (ou en mobilité) est référencé dans un annuaire AD, il existe une alternative à ADFS, présentée dans le cadre de ce post :
On évite ainsi :
- De déployer ADFS
- De recourir à un formulaire d'authentification ou autre custom provider
Le pré-requis est d'avoir synchronisé les utilisateurs avec notre tenant 365. On centralise alors l'authentification sur le tenant, et cette identitée "online" pourra être convertie en SSO en une identité interne via ce proxy applicatif.
Par exemple, dans le cas de l'authentification windows intégrée, "eissaly@mcnext.com" peut être utilisé comme "MCNEXT\Emmanuel.issaly"
Configuration 365
Si votre annuaire est déjà synchronisé avec azure AD (c’est un prérequis), Vous pouvez sauter ce chapitre. Sinon, créez un tenant Office 365 de test (un tenant de dev MSDN suffit)
Créez une adresse admin facile à mémoriser, ici j’ai pris
admin@eissaly.onmicrosoft.com
Sur ce tenant « eissaly », allez activer Azure AD par la tuile d’admin :
Vous devez synchroniser les utilisateurs de votre domaine local avec un domaine online. Dans mon cas, mcnext.com étant déjà pris, j’ai ajouté un suffixe UPN « @clouddetest.fr » à mon AD de tests sp2013.local. Emmanuel ISSALY est alors identifié par SP2013\eissaly *ou* eissaly@clouddetest.fr.
Pour déclarer et vérifier le domaine clouddetest.fr dans azure, allez dans « Domains » du tenant 365 :
Une fois le domaine vérifié, on peut lancer la synchronisation d’un serveur quelconque de notre lab avec ADCONNECT. C’est en fait un FIM customisé (au sens qu’il fonctionne correctement). Il vous faudra le compte admin 365 et le compte admin du domaine local.
Licences
Pour que l’application proxy fonctionne, il faut une licence Basic ou Premium AAD pour
chaque utilisateur.
Activez le premium trial, ce qui vous donnera 100 licences.
Publication de l’application SharePoint
Publication azure
Nous allons publier notre SharePoint on prem comme une APP dans 365 :
Allons dans « Applications » de notre Azure AD, et faisons « ADD »
Puis s’offre à nous l’option de télécharger ce nouveau connecteur :
Déployez-le sur un serveur 2012 R2 qui a accès à internet. Le serveur de synchro qui fait déjà AD connect est une bonne destination pour lui !
Suite à l'activation de ce connecteur, on a d'autres options dans la configuration de notre application :
1.- Une URL publique générique, ou l’adresse publique de votre domaine :
2. et la patte interne, en windows intégré :
à noter que l'équipe azure AD travaille sans cesse à proposer de nouveau mappings,
et l'on peut même maintenant convertir l'identité online à une identité non windows (via la délégation Kerberos)
Configuration HTTPS / Kerberos
Pour que cela marche, il faut quand même quelques contraintes, en l’occurrence une délégation contrainte Kerberos (KCD)
- Créer le SPN du portail (nom court nom long et compte de pool d’appli)
setspn –S http/portal sp_app
setspn –S http/portal.clouddetest.fr sp_app
2. Autoriser la délégation KCD sur le serveur qui héberge le connecteur :
Sur un contrôleur de domaine, Propriétés sur l’ordinateur, onglet délégation, autoriser la délégation :
Puis ajoutez le SPN (on le trouve par le compte de pool)
Vous devriez à présent obtenir un ticket kerberos en appelant votre site SharePoint.
Attention, il faut que le DNS appellé soit une IP (A record), pas un alias !
Synthèse
Le site SharePoint étant déclaré sur le tenant, on peut y accèder par un clic de tout périphérique connecté à Internet :
De ce fait, que l'on soit à l’intérieur du LAN, ou d’un appareil mobile (ici Chrome + Android) connecté à office online, l’expérience utilisateur est maintenant la même, quelque soit l'environnement
(pas de prompt, Windows intégré dans notre cas)
Comment ça marche
Cf
https://msdn.microsoft.com/en-us/library/azure/dn879065.aspx
- L’utilisateur tape l’url du site SharePoint
- AAD proxy fait de la pré-auth : si vous êtes déjà connecté online, on obtient un jeton, sinon il vous prompte pour votre profil online.
- Dans tous les cas, le jeton obtenu est envoyé au proxy.
- Le connecteur extrait du jeton l’UPN (lidentifiant utilisateur)
- Le connecteur fait une demande de jeton Kerberos de la part de l’utilisateur
- Si la delegation est autorisée, le jeton est émis.
- Le connecteur envoie alors la requete et son jeton comme si on était “interne"
- La page est renvoyée au navigateur
Il est également possible de customiser le ticket kerberos pour que le login arrivant sur l’application ne soit pas l’email, ou soit un login différent du login online (typiquement pour se connecter à un système non Windows) :
Sur ce schéma, je me connecte entant que
joe@contoso.com à 365, mais j’arrive en tant que Contoso\joed sur l’application ciblée par ce connecteur.
No comments:
Post a Comment