Що таке ADFS (послуги федерації Active Directory)?


77

Тому мені сказали, що нашому додатку PHP може знадобитися підтримка автентифікації за допомогою ADFS.

  1. Що таке особа, яка не належить Microsoft, що таке ADFS?

  2. Чим він відрізняється від таких речей, як LDAP?

  3. Як це працює? Яка інформація буде включена в типовий запит на сервер ADFS? Чи призначений він як для автентифікації, так і для авторизації?

  4. Чи зазвичай сервери ADFS доступні з Інтернету (тоді як корпоративних контролерів домену AD не буде)?

Я спробував прочитати деякі документи Technet, але він повно Microsoft-говорять, що не дуже корисно.

Вікіпедія краще (див. Нижче), але, можливо, частина спільноти ServerFault може заповнити деякі прогалини.

Служби федерації Active Directory (ADFS) - це програмний компонент, розроблений Microsoft, який може бути встановлений на операційних системах Windows Server, щоб надати користувачам доступ до єдиного входу до систем та програм, розташованих через організаційні межі. Він використовує модель авторизації контролю доступу на основі претензій, щоб підтримувати захищеність програми та реалізувати об'єднану ідентичність.

Аутентифікація на основі претензій - це процес автентифікації користувача, заснований на наборі претензій щодо його ідентичності, що міститься в надійному маркері.

В ADFS федерація ідентичності встановлюється між двома організаціями шляхом встановлення довіри між двома сферами безпеки. Сервер федерації з одного боку (сторона облікових записів) аутентифікує користувача за допомогою стандартних засобів у службах домену Active Directory та видає токен, що містить низку претензій щодо користувача, включаючи його особу. З іншого боку, сторона ресурсів, інший сервер федерації перевіряє маркер і видає ще один маркер для локальних серверів, щоб прийняти заявлену ідентичність. Це дозволяє системі надавати контрольований доступ до своїх ресурсів або послуг користувачеві, який належить до іншої сфери безпеки, не вимагаючи від користувача аутентифікації безпосередньо в системі та без двох систем, що обмінюються базою даних ідентифікацій користувача або паролів.

На практиці такий підхід користувач зазвичай сприймає таким чином:

  1. Користувач заходить у свій локальний ПК (як зазвичай це робиться під час роботи вранці)
  2. Користувачеві необхідно отримати інформацію на веб-сайті екстранету компанії-партнера - наприклад, для отримання ціни та деталей продукту
  3. Користувач переходить на сайт додаткової мережі партнера - наприклад: http://example.com
  4. На веб-сайті-партнері зараз не потрібно вводити жодного пароля - натомість облікові дані користувачів передаються на веб-сайт партнеру за допомогою AD FS
  5. Тепер користувач увійшов на веб-сайт партнера і може взаємодіяти з веб-сайтом "увійшов"

З https://en.wikipedia.org/wiki/Active_Directory_Federation_Services


Я знайшов ці статті та це відео корисним для огляду.
Саймон Іст

Reaces дав чудову відповідь. Єдиною додатковою інформацією, яку я хотів би додати, є те, що вона може заплатити за розуміння протоколу WS-Federation and Language Assertion Markup Language (SAML), які є стандартами, які застосовує ADFS. Ось декілька відео, які мені здаються корисними для розуміння цих (досить складних) понять. На жаль, вони містять стільки матеріалу, що я не можу сюди включити його. ! [Відео-мініатюра Розуміння SAML та єдиного входу 101 на YouTube] ( youtube.com/watch?v=gUmMcecHN9s ) [! [Відео-мініатюра] (http
Simon East

У мене також виникли проблеми з розумінням ADFS. Мені потрібно було пояснення з самого початку (я не людина, що займається рекламою). Це відео, яке входить до серії, про яку йдеться у коментарях тут, мені дуже допомогло. Саме з цього місця слід починати будь-яку нову особу, яка має нульовий досвід, із ADFS, а потім продовжувати решту відео з цієї серії. Я сподіваюся, що це допомагає. youtube.com/…
Маурісіо Сарагоса

1
Вибачте, люди, модератор видалив мою відповідь з корисними відео та зробив це коментарем вище, але це зараз зламано. Розчарування.
Саймон Іст

Відповіді:


97

Що таке особа, яка не належить Microsoft, що таке ADFS?

ADFS - це рішення Microsoft для єдиного входу та веб-аутентифікації.

Він використовується головним чином для надання єдиного набору облікових даних, які можуть отримати доступ до різноманітних сайтів, не обов'язково розміщених в одному домені.

Чим він відрізняється від таких речей, як LDAP?

LDAP:

  • Спілкується за допомогою TCP / UDP на порт 389 (або порт 636 для LDAPS)
  • Містить команди для пошуку / отримання / додавання / видалення / зміни користувачів, профілів та інших записів каталогів
  • Не може бути виконано безпосередньо веб-браузером, проте автентифікація HTTP може бути переведена в LDAP за допомогою таких речей, як Apache mod_authnz_ldap.
  • Якщо використовується для аутентифікації сторонніх веб-сайтів, потрібно, щоб ім’я користувача та пароль були надані сторонній стороні, що не ідеально підходить для безпеки.
  • Більш відкритий стандарт і має безліч реалізацій Linux.

ADFS:

  • Краще розроблений для Інтернету, оскільки він спілкується через стандартні HTTPS
  • Дотримується більш безпечного процесу, схожого (але не точного) з OAuth, коли оригінальне ім’я користувача / пароль надаються безпосередньо на сервер ADFS організації (або проксі, але не сторонній), який, якщо дійсний, повертає унікальний маркер, який може бути використовується для доступу до стороннього веб-сайту.
  • Хоча він використовує деякі відкриті стандарти (HTTPS, SAML тощо), він є специфічним для Microsoft і вимагає Інтернет-інформаційних служб (IIS), який працює лише на серверах Windows.

Дивіться також цю відповідь на цю тему.

Як це працює? Яка інформація буде включена в типовий запит на сервер ADFS? Чи призначений він як для автентифікації, так і для авторизації?

Він працює за наявності єдиного сайту (сайту A), на якому розміщуються проксі-сервери ADFS / ADFS, який має доступ до облікових даних (як правило, спілкуючись з контролером домену Active Directory). Потім йому надається довіра між іншими сайтами (B&C), які потребують автентифікації через ADFS.

Коли користувач намагається отримати доступ до сайту B у своєму браузері, сайт перенаправляє користувача на веб-сайт проксі-сервера ADFS (сайт A), який запитує їх ім’я користувача та пароль, автентифікує їх, повертає набір файлів cookie для їх запам'ятовування та перенаправляє їх. назад на сайт B, а також маркер доступу.

Якщо користувач спробує відвідати сайт С, він також буде перенаправлений на сайт А для аутентифікації з веб-сайту ADFS-проксі. Якщо правильні файли cookie існують, користувачеві не потрібно буде знову вводити свій пароль, але він негайно перенаправляється назад на сайт C з маркером.

ADFS може бути налаштований з певними претензіями (або дозволами) для користувача для цілей авторизації. Так він може виконувати обидві ролі. (Зверніть увагу на різницю між автентифікацією та авторизацією .)

Деякі люди вважають за краще не використовувати його для авторизації, а натомість зберігати управління дозволами на сторонній веб-сайті. Очевидним недоліком є ​​те, що обидва веб-сайту A і B повинні вести облік облікових записів користувачів, тоді як у сценарії, коли ADFS обробляє обидва, користувачі повинні знати лише ADFS.

Чи зазвичай сервери ADFS доступні з Інтернету (тоді як корпоративних контролерів домену AD не буде)?

Так, майже завжди. ADFS заснований на уявленні, що він буде використовуватися в основному для аутентифікації веб-сайтів. І будується навколо IIS.

Сайт ADFS-проксі - це той, до якого зазвичай можна дістатися з Інтернету. Однак ADFS сама по собі це не так. ADFS, як правило, є окремим сервером від ADFS-проксі.

  • Сервер ADFS Server,
    який посилається на облікові дані, має конфігурацію претензій, а також трасти. Зазвичай не є загальнодоступними.
  • Сервер проксі-сервера ADFS, на
    якому розміщений екземпляр IIS, на якому є сторінки входу для веб-сайтів, що вимагають аутентифікацію. Звертається назад до ADFS, коли потрібна автентифікація. Загальнодоступні.

11
Для уточнення: Проксі-сервер ADFS повинен працювати на IIS (Windows). Однак веб-сайти клієнтів (B&C) можуть запускати будь-яку ОС та веб-сервер, включаючи Linux.
Оллі

Дуже корисно, щойно створили обліковий запис для цього.
Хуан

Розширюючи відповідь @Reaces, ADFS 4.0 на Windows Server 2016 повністю підтримує OAuth / OpenId Connect.
Мохаммед Реза Садреддіні

@MohammadRezaSadreddini Не соромтеся відредагувати відповідь, щоб розширити її.
Здійснює
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.