94 votes

Qu'est-ce que ADFS (Active Directory Federation Services) ?

On m'a dit que notre application PHP pourrait avoir besoin de prendre en charge l'authentification à l'aide de ADFS.

**

  1. Pour une personne non-Microsoft, qu'est-ce que ADFS ?

  2. En quoi diffère-t-il des choses comme LDAP ?

  3. Comment cela fonctionne-t-il ? Quel type d'informations seraient incluses dans une requête typique à un serveur ADFS ? Est-ce conçu pour à la fois l'authentification et l'autorisation ?

  4. Les serveurs ADFS sont-ils généralement accessibles depuis Internet (alors que les contrôleurs de domaine AD d'entreprise ne le seraient pas) ?

**

J'ai essayé de lire quelques documents Technet, mais c'est plein de jargon Microsoft qui n'est pas très utile.

Wikipedia est meilleur (voir ci-dessous), mais peut-être que certains membres de la communauté ServerFault pourraient combler certaines lacunes.

Active Directory Federation Services (ADFS) est un composant logiciel développé par Microsoft qui peut être installé sur les systèmes d'exploitation Windows Server pour offrir aux utilisateurs un accès à une seule connexion aux systèmes et aux applications situés au-delà des frontières organisationnelles. Il utilise un modèle d'autorisation de contrôle d'accès basé sur des revendications pour maintenir la sécurité des applications et mettre en œuvre l'identité fédérée.

L'authentification basée sur des revendications est le processus d'authentification d'un utilisateur en fonction d'un ensemble de revendications concernant son identité contenues dans un jeton de confiance.

Dans ADFS, la fédération d'identité est établie entre deux organisations en établissant une confiance entre deux royaumes de sécurité. Un serveur de fédération d'un côté (le côté Accounts) authentifie l'utilisateur par les moyens standards dans les Services de domaine Active Directory puis émet un jeton contenant une série de revendications sur l'utilisateur, y compris son identité. De l'autre côté, le côté Resources, un autre serveur de fédération valide le jeton et émet un autre jeton pour que les serveurs locaux acceptent l'identité revendiquée. Cela permet à un système de fournir un accès contrôlé à ses ressources ou services à un utilisateur appartenant à un autre royaume de sécurité sans exiger de l'utilisateur de s'authentifier directement au système et sans que les deux systèmes partagent une base de données d'identités d'utilisateurs ou de mots de passe.

En pratique, cette approche est généralement perçue par l'utilisateur comme suit :

  1. L'utilisateur se connecte à son PC local (comme il le ferait habituellement en commençant à travailler le matin)
  2. L'utilisateur doit obtenir des informations sur le site extranet d'une entreprise partenaire - par exemple pour obtenir des informations sur les tarifs ou les produits
  3. L'utilisateur se rend sur le site extranet de l'entreprise partenaire - par exemple : http://example.com
  4. Le site partenaire n'exige pas de mot de passe à saisir maintenant - au lieu de cela, les informations d'identification de l'utilisateur sont transmises au site extranet partenaire en utilisant AD FS
  5. L'utilisateur est maintenant connecté au site partenaire et peut interagir avec le site 'connecté'

_De https://en.wikipedia.org/wiki/Active_Directory_Federation_Services_

0 votes

J'ai trouvé ces articles et cette vidéo utile pour donner un aperçu.

0 votes

Reaces a fourni une excellente réponse. La seule information supplémentaire que j'ajouterais est qu'il pourrait être utile de comprendre le protocole WS-Federation et le Security Assertion Markup Language (SAML) qui sont les normes qu'ADFS implémente. Voici quelques vidéos que j'ai trouvées utiles pour comprendre ces concepts (assez complexes). Malheureusement, elles contiennent tellement de matériel que je ne peux pas les inclure ici. ![Vignette vidéo](https://img.youtube.com/vi/gUmMcecHN9s/mqdefault.jpg) Comprendre SAML et Single Sign-On 101 sur YouTube\ [![Vignette vidéo](http

0 votes

J'ai aussi eu du mal à comprendre ADFS. J'avais besoin d'une explication depuis le tout début (je ne suis pas une personne AD). Cette vidéo incluse dans la série mentionnée dans les commentaires ici a été très utile pour moi. C'est là que toute nouvelle personne sans expérience avec ADFS devrait commencer, puis continuer avec le reste des vidéos de la série. J'espère que cela aidera. youtube.com/…

115voto

Reaces Points 5517

Pour une personne non Microsoft, qu'est-ce que ADFS?

ADFS est la solution de Microsoft pour l'authentification unique et l'authentification basée sur le web.

Il est principalement utilisé pour fournir un seul ensemble d'informations d'identification qui peut accéder à une variété de sites qui ne sont pas nécessairement hébergés dans le même domaine.

En quoi diffère-t-il des choses comme LDAP?

LDAP:

  • Communique en utilisant TCP/UDP sur le port 389 (ou le port 636 pour LDAPS)
  • Contient des commandes pour rechercher/récupérer/ajouter/supprimer/modifier des utilisateurs, des profils et d'autres entrées de répertoire
  • Ne peut pas être exécuté directement par un navigateur web, cependant l'authentification HTTP peut être traduite en LDAP en utilisant des choses comme le mod_authnz_ldap d'Apache.
  • Lorsqu'il est utilisé pour l'authentification de sites web tiers, nécessite que le nom d'utilisateur et le mot de passe soient fournis au tiers, ce qui n'est pas idéal pour la sécurité.
  • Est plus une norme ouverte et a de nombreuses implémentations Linux.

ADFS:

  • Mieux conçu pour le web car il communique via le HTTPS standard
  • Suit un processus plus sécurisé similaire (mais pas exact) à OAuth où le nom d'utilisateur/mot de passe original sont fournis directement au serveur ADFS de l'organisation (ou à un proxy, mais pas au tiers), qui, s'ils sont valides, renvoient un jeton unique qui peut être utilisé pour accéder à un site web tiers.
  • Bien qu'il utilise certains standards ouverts (HTTPS, SAML etc.), il est spécifique à Microsoft et nécessite Internet Information Services (IIS) qui ne s'exécute que sur les serveurs Windows.

Voir également cette réponse sur le sujet.

Comment ça marche? Quel type d'informations serait inclus dans une requête typique à un serveur ADFS? Est-il conçu pour l'authentification et l'autorisation?

Cela fonctionne en ayant un seul site (site A) qui héberge les serveurs ADFS / ADFS proxy, qui ont accès aux informations d'identification (généralement en communiquant avec un contrôleur de domaine Active Directory). Ensuite, il obtient une confiance entre les autres sites (sites B & C) qui nécessitent une authentification via l'ADFS.

Lorsqu'un utilisateur tente d'accéder au site B depuis son navigateur, le site redirige l'utilisateur vers le site de l'ADFS-proxy (site A) qui demande son nom d'utilisateur et son mot de passe, les authentifie, renvoie un ensemble de cookies pour se souvenir d'eux, et les redirige vers le site B, avec un jeton d'accès.

Si l'utilisateur tente ensuite de visiter le site C, il sera également redirigé vers le site A pour l'authentification à partir du site de l'ADFS-proxy. Si les bons cookies existent, l'utilisateur ne sera pas obligé de saisir à nouveau son mot de passe, mais sera instantanément redirigé vers le site C avec un jeton.

L'ADFS peut être configuré avec des revendications spécifiques (ou des autorisations) pour l'utilisateur, à des fins d'autorisation. Il peut donc remplir les deux rôles. (Notez la différence entre l'authentification et l'autorisation.)

Certains préfèrent ne pas l'utiliser pour l'autorisation mais plutôt conserver la gestion des autorisations sur le site web tiers. L'inconvénient évident est que les sites A & B doivent suivre les comptes d'utilisateur, alors que dans le scénario où l'ADFS gère les deux, seul l'ADFS doit être conscient des utilisateurs.

Les serveurs ADFS sont-ils généralement accessibles depuis Internet (alors que les contrôleurs de domaine AD d'entreprise ne le seraient pas)?

Oui, presque toujours. ADFS est basé sur l'idée qu'il sera principalement utilisé pour l'authentification des sites web. Et est construit autour de IIS.

Le site de l'ADFS-proxy est généralement celui qui est accessible depuis Internet. Cependant, l'ADFS lui-même ne l'est pas. L'ADFS est généralement un serveur séparé de l'ADFS-proxy.

  • Serveur ADFS
    Serveur qui fait le lien avec les informations d'identification, et dispose de la configuration des revendications ainsi que des trusts. Généralement non accessible publiquement.
  • Serveur Proxy ADFS
    Serveur qui héberge l'instance IIS qui a les pages de connexion pour les sites web nécessitant une authentification. Communique avec l'ADFS lorsque l'authentification est requise. Généralement accessible publiquement.

12 votes

Pour clarifier: ADFS Proxy Server doit fonctionner sur IIS (Windows). Cependant, les sites clients (B & C) peuvent fonctionner sur n'importe quel système d'exploitation et serveur web, y compris Linux.

0 votes

Très utile, je viens de créer un compte pour approuver cela.

0 votes

En élargissant la réponse de @Reaces, ADFS 4.0 sur Windows Server 2016 prend entièrement en charge OAuth/OpenId Connect.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X