Icinga - авторизация через Active Directory
Icinga умеет авторизовать пользователей через Active Directory, надо только немного это дело немного настроить.
Задача
Включить авторизацию через Active Directory, пускать только пользователей из группы ADMIN_USERS_GROUP.
Решение
Редактируем файл /usr/share/icinga-web/app/modules/AppKit/config/auth.xml
Ищем кусочек
<!-- * LDAP Just an example for MSAD !! ldap_userattr is case sensitive --> <!-- <ae:parameter name="msad-ldap1"> <ae:parameter name="auth_module">AppKit</ae:parameter> <ae:parameter name="auth_provider">Auth.Provider.LDAP</ae:parameter> <ae:parameter name="auth_enable">true</ae:parameter> <ae:parameter name="auth_authoritative">true</ae:parameter> <ae:parameter name="auth_create">true</ae:parameter> <ae:parameter name="auth_update">true</ae:parameter> <ae:parameter name="auth_map"> <ae:parameter name="user_firstname">givenName</ae:parameter> <ae:parameter name="user_lastname">sn</ae:parameter> <ae:parameter name="user_email">mail</ae:parameter> </ae:parameter> <ae:parameter name="ldap_allow_anonymous">false</ae:parameter> <ae:parameter name="ldap_dsn">ldap://ad.icinga.foo</ae:parameter> <ae:parameter name="ldap_start_tls">false</ae:parameter> <ae:parameter name="ldap_basedn">DC=ad,DC=icinga,DC=foo</ae:parameter> <ae:parameter name="ldap_binddn">[email protected]</ae:parameter> <ae:parameter name="ldap_bindpw"><![CDATA[XXXXXXXX]]></ae:parameter> <ae:parameter name="ldap_userattr">sAMAccountName</ae:parameter> <ae:parameter name="ldap_filter_user"><![CDATA[(&(sAMAccountName=__USERNAME__))]]></ae:parameter> </ae:parameter> -->
и меняем его на
<!-- * LDAP Just an example for MSAD !! ldap_userattr is case sensitive --> <ae:parameter name="msad-ldap1"> <ae:parameter name="auth_module">AppKit</ae:parameter> <ae:parameter name="auth_provider">Auth.Provider.LDAP</ae:parameter> <ae:parameter name="auth_enable">true</ae:parameter> <ae:parameter name="auth_authoritative">true</ae:parameter> <ae:parameter name="auth_create">true</ae:parameter> <ae:parameter name="auth_update">true</ae:parameter> <ae:parameter name="auth_map"> <ae:parameter name="user_firstname">givenName</ae:parameter> <ae:parameter name="user_lastname">sn</ae:parameter> <ae:parameter name="user_email">mail</ae:parameter> </ae:parameter> <ae:parameter name="ldap_allow_anonymous">false</ae:parameter> <ae:parameter name="ldap_dsn">ldap://YOU_LDAP_SERVER.DOMAIN</ae:parameter> <ae:parameter name="ldap_start_tls">false</ae:parameter> <ae:parameter name="ldap_basedn">DC=YOU,DC=DOMAIN</ae:parameter> <ae:parameter name="ldap_binddn">[email protected]</ae:parameter> <ae:parameter name="ldap_bindpw"><![CDATA[LDAP_USER_PASSWORD]]></ae:parameter> <ae:parameter name="ldap_userattr">sAMAccountName</ae:parameter> <ae:parameter name="ldap_filter_user"><![CDATA[(&(sAMAccountName=__USERNAME__)(memberOf=CN=ADMIN_USERS_GROUP,CN=Users,DC=YOU,DC=DOMAIN))]]></ae:parameter> </ae:parameter>
Косяки
Если ФИО пользователя написано по-русски, в Icinga мы увидим красивые вопросики. Проблема в кодировке БД, но при попытке ее поменять слетает авторизация.