Все пользователи Microsoft Office 365 (для бизнеса) проходят авторизацию именно через Microsoft Azure AD. Так, при добавлении каждого нового пользователя (емейла) в Office 365, для него автоматически создается соответствующая запись в Microsoft Azure AD.
Здесь я расскажу как можно использовать Microsoft Azure AD для авторизации пользователей Ununtu 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.
Автор: snvakula