Авторизация в Ubuntu через Microsoft Azure AD / Office 365

Все пользователи Microsoft Office 365 (для бизнеса) проходят авторизацию именно через Microsoft Azure AD. Так, при добавлении каждого нового пользователя (емейла) в Office 365, для него автоматически создается соответствующая запись в Microsoft Azure AD.

Здесь я расскажу как можно использовать Microsoft Azure AD для авторизации пользователей Ubuntu 14.04. То есть, как в Ubuntu сделать SSO c Microsoft Azure AD / Office 365.

1. Предварительные требования


  • Аккаунт Microsoft Azure AD / Office 365 (business)
  • Ubuntu сервер с подключением к интернет

2. Настройка Microsoft Azure AD


Для начала, идем на Microsoft Azure Portal на manage.windowsazure.com или Офис365 меню -> Admin -> Azure AD.
Затем, заходим в нужную ветку Active Directory (если Вы не используете сложную ветвистую структуру AD, то здесь будет лишь одна запись).



Выбираем «Applications» («Приложения»):



Добавляем новое приложение, нажав на «Add» («Добавить»):



Выбираем «Add an application my organization is developing» («Добавить приложение, разрабатываемое моей организацией»):



Придумайте понятное название для чего будет использоваться этот метод авторизации (например, «Linux Test Servers»), указываем его в поле «Name» («Имя»), а также выбираем тип приложения «Native Client Application» («Собственное клиентское приложение»).



На следующей странице предлагается ввести «Redirect URI» («URI перенаправления»). Можно указать любое значение, похожее на URI, т.к. это поле ни на что не повлияет, в данном случае.



Приложение AD создано! Далее, нажимаем «Configure» («Настройки»).



Запоминаем/записываем значение поля «Client ID» («Код клиента») — оно нам потребуется еще.



3. Настройка Ubuntu 14.04


Заходим на сервер по SSH (в данном случае, пользователем user123, которому разрешено исполнение команд sudo):



Переходим на root и устанавливаем git:

sudo su -
apt-get install git



Клонируем git-репозитарий github.com/bureado/aad-login:

git clone https://github.com/bureado/aad-login



Входим в склонированный каталог, создаем каталог /opt/aad-login, копируем aad-login.js package.json в /opt/aad-login/, копируем aad-login в /usr/local/bin/:

cd aad-login/
mkdir -p /opt/aad-login
cp aad-login.js package.json /opt/aad-login/
cp aad-login /usr/local/bin/



Входим в каталог /opt/aad-login/, устанавливаем приложение npm:

cd /opt/aad-login/
apt-get install npm



Устанавливаем требуемые компоненты npm:

npm install



Редактируем файл ./aad-login.js:



Заполняем значение переменной directory вашим доменным именем, которое используется в Microsoft Azure AD / Office 365, а clientid — значением «Client ID» («Код клиента»), ранее полученном на портале Microsoft Azure AD:



Редактируем файл /etc/pam.d/common-auth:



Добавляем вызов pam_exec, чтобы он был первым в списке:

auth sufficient pam_exec.so expose_authtok /usr/local/bin/aad-login



Устанавливаем nodejs:

apt-get install nodejs



Удаляем устаревший node, создаем символическую ссылку /usr/bin/nodejs -> /usr/bin/node:

apt-get --purge remove node
ln -s /usr/bin/nodejs /usr/bin/node



Создаем пользователей, которым разрешен вход (пароль устанавливать не нужно). Логин таких пользователей должен совпадать с Alias емейла. Например, создаем пользователя support, емейл которого support@aspanta.onmicrosoft.com.

useradd -m support



Все готово!

Пробуем войти под созданным пользователем и паролем, установленным в Microsoft Azure AD / Office 365.

  • +12
  • 6,5k
  • 2
Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 2

    0
    А чем старый node не подходит?
      0
      Удаляем устаревший node, создаем символическую ссылку /usr/bin/nodejs -> /usr/bin/node:

      Вот это делать не нужно.
      Причина проста, node — Amateur Packet Radio Node program, а nodejs — это тот самый движок, который вам нужен.
      Т.е. сделать такую ссылку означает просто «выстрелить себе в ногу».
      Далее, npm — это скрипт javascript, т.е. без nodejs он работать не будет. Поэтому и имеет nodejs в зависимостях.
      Т.е. установка после npm nodejs — просто «копание лестницы от столба и до обеда».

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое