Проверка подлинности FreeRADIUS через Azure Active Directory

Я только что настроил FreeRadius, но хочу аутентифицировать пользователей, которые находятся в Azure AD. Я знаю, что можно связать FreeRADIUS с Active Directory, но я ничего не могу найти об Azure AD.
Кто-нибудь знает, возможно ли это? Возможным решением может быть создание AD, локально синхронизированного с Azure AD, но я хотел бы сделать это напрямую.


person ismael    schedule 22.11.2016    source источник
comment
Я также ищу решение freeradius с лазурной рекламой. Читая эту ветку, я думаю, что это должно быть возможный...   -  person vchrizz    schedule 24.05.2017
comment
Здесь объясняется, как это сделать с типичной Active Directory, но это НЕ то же самое, что AzureAD!   -  person vchrizz    schedule 24.05.2017


Ответы (3)


Я сделал это с небольшим трудом. Джон Роберт Мендоза прав, но есть несколько ошибок. Вот мои шаги:

  1. Добавьте AADDS и LDAP в AAD https://docs.microsoft.com/en-us/azure/active-directory-domain-services/active-directory-ds-admin-guide-configure-secure-ldap. (Защитите порты, поскольку теперь вы открыты для атаки методом грубой силы.)
  2. Создайте Linux vm (я использовал Ubuntu) для размещения Freeradius в том же vnet, что и ваш AADDS
  3. Установите freeradius 3.x с ldap
    sudo apt install freeradius
    sudo apt install freeradius-ldap
  4. Настройте freeradius (я просто обрисую конфигурацию ldap для AAD)
    i. отредактируйте /etc/freeradius/3.0/mods-available/ldap

Это ценности, которые я изменил

    ldap {
        server = 'yourAADDSdomain.onmicrosoft.com'
        #the identity user should be a member of you AADDS admin group
        identity = '[email protected]' 
        password = 'yourpassword'
        basedn = 'OU=AADDC Users,dc=yourAADDSdomain,dc=onmicrosoft,dc=com'
        user {
           filter = “(userPrincipalName=%{%{Stripped-User-Name}:-%{User-Name}})”
        }
    }

II. отредактируйте /etc/freeradius/3.0/sites-available/default

server default {
    listen {
        type = auth
        ipaddr = *
        port = 0
        limit {
              max_connections = 16
              lifetime = 0
              idle_timeout = 30
        }
    }
    listen {
        ipaddr = *
        port = 0
        type = acct
        limit {
        }
    }
    authorize {
         if (!control:Auth-Type) {
              ldap
              if (ok && User-Password) {
                      update {
                      control:Auth-Type := LDAP
                      }
              }
        }
        expiration
        logintime
    }
    authenticate {
        Auth-Type LDAP {
               ldap
        }
    }
    preacct {
        preprocess
        acct_unique
    }
    accounting {
        detail
        unix
        radutmp
        exec
        attr_filter.accounting_response
    }
    session {
        radutmp
    }
    post-auth {
        exec
        Post-Auth-Type REJECT {
                attr_filter.access_reject
        }
    } 
    pre-proxy {
    }
    post-proxy {
        eap
    }
}

Некоторые другие моменты:
Используйте radtest, чтобы проверить это
используйте ldp.exe на машине с Windows, чтобы подключиться к вашему ldap, чтобы проверить, что он возвращает

ссылки:
https://docs.microsoft.com/en-us/azure/active-directory-domain-services/active-directory-ds-admin-guide-configure-secure-ldap
https://wiki.freeradius.org/guide/Getting-Started
https://medium.com/@georgijsr/freeradius-2-1-12-ubuntu-14-04-server-with-ldap-authentication-and-ldap-fail-over-6611624ff2c9
Freeradius + ОШИБКА Openldap: для запроса не найден метод аутентификации (Auth-Type): отклонение пользователя
http://freeradius.1045715.n5.nabble.com/guide-on-configuring-freeradius-3-LDAP-td5748776.html

person Hamish Anderson    schedule 01.05.2019

Вам нужно будет включить безопасный LDAP для управляемого домена в доменных службах Azure AD [1], а затем настроить rlm_ldap в FreeRadius [2] для использования Azure AD в качестве аутентификации LDAP. источник. Вы хотели бы ограничить подключения к IP-адресу Azure AD с помощью элементов управления доступом, чтобы заблокировать неавторизованные клиенты от отправки нежелательных поисковых запросов LDAP в службу вашего домена и извлечения конфиденциальной информации о пользователях.

Ссылки:

[1] https://docs.microsoft.com/en-us/azure/active-directory-domain-services/active-directory-ds-admin-guide-configure-secure-ldap

[2] https://wiki.freeradius.org/protocol/LDAP

person John Robert Mendoza    schedule 16.03.2018

Я выяснил, если у вас есть служба / хост с включенной "лазурной рекламой" в вашей локальной сети, для лазурного он работает так же, как и для локальной рекламы. Важно понимать, что вам необходимо включить необходимую службу, чтобы freeradius мог к ней подключиться. и просто включать его на общедоступном IP-адресе не рекомендуется, лучше создать туннель (ipsec) для Microsoft и включить рекламную службу на локальном IP-адресе.

person vchrizz    schedule 12.07.2017