Авторизация в Ubuntu через Microsoft Azure AD / Office 365
Все пользователи 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, то здесь будет лишь одна запись).
![](https://habrastorage.org/files/8a1/6b2/0f2/8a16b20f2fb5459f88345b5830f273ac.png)
Выбираем «Applications» («Приложения»):
![](https://habrastorage.org/files/b77/a29/490/b77a294900254c5bb566c0c9c778759e.png)
Добавляем новое приложение, нажав на «Add» («Добавить»):
![](https://habrastorage.org/files/2c4/59a/6df/2c459a6df2354c2ba11d0fa901d92056.png)
Выбираем «Add an application my organization is developing» («Добавить приложение, разрабатываемое моей организацией»):
![](https://habrastorage.org/files/34b/0bb/b32/34b0bbb32a7046d7b7c855ea33223533.png)
Придумайте понятное название для чего будет использоваться этот метод авторизации (например, «Linux Test Servers»), указываем его в поле «Name» («Имя»), а также выбираем тип приложения «Native Client Application» («Собственное клиентское приложение»).
![](https://habrastorage.org/files/e6d/c58/adc/e6dc58adc61c4b849cb7d699f4340347.png)
На следующей странице предлагается ввести «Redirect URI» («URI перенаправления»). Можно указать любое значение, похожее на URI, т.к. это поле ни на что не повлияет, в данном случае.
![](https://habrastorage.org/files/bc7/077/51c/bc707751c36f4025951422138b2fc23d.png)
Приложение AD создано! Далее, нажимаем «Configure» («Настройки»).
![](https://habrastorage.org/files/bfd/cf6/def/bfdcf6defb754232981c4945ae96a75f.png)
Запоминаем/записываем значение поля «Client ID» («Код клиента») — оно нам потребуется еще.
![](https://habrastorage.org/files/680/173/0da/6801730dab7841009117a6e3e74ae06d.png)
3. Настройка Ubuntu 14.04
Заходим на сервер по SSH (в данном случае, пользователем user123, которому разрешено исполнение команд sudo):
![](https://habrastorage.org/files/d6a/124/0ea/d6a1240eae2845159cd93aee37ad8b96.png)
Переходим на root и устанавливаем git:
sudo su -
apt-get install git
![](https://habrastorage.org/files/0f6/d35/fcf/0f6d35fcfc124c07bcce4bb9d00084d6.png)
Клонируем git-репозитарий github.com/bureado/aad-login:
git clone https://github.com/bureado/aad-login
![](https://habrastorage.org/files/557/6a5/29c/5576a529c46f48309bb5274228493318.png)
Входим в склонированный каталог, создаем каталог /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/
![](https://habrastorage.org/files/e1c/4ae/489/e1c4ae489e38419f91c115e602d88157.png)
Входим в каталог /opt/aad-login/, устанавливаем приложение npm:
cd /opt/aad-login/
apt-get install npm
![](https://habrastorage.org/files/551/0c4/480/5510c448053a49a7a33385712bc5084a.png)
Устанавливаем требуемые компоненты npm:
npm install
![](https://habrastorage.org/files/a7f/df9/da5/a7fdf9da5a9c4544843597a602d253e1.png)
Редактируем файл ./aad-login.js:
![](https://habrastorage.org/files/e6a/8be/901/e6a8be901f604ec6ae566023c0bed426.png)
Заполняем значение переменной directory вашим доменным именем, которое используется в Microsoft Azure AD / Office 365, а clientid — значением «Client ID» («Код клиента»), ранее полученном на портале Microsoft Azure AD:
![](https://habrastorage.org/files/384/324/b12/384324b12bb3431d8cd3dad88f37f1fd.png)
Редактируем файл /etc/pam.d/common-auth:
![](https://habrastorage.org/files/47f/bfb/18b/47fbfb18b0dc435387e59546e10d41fa.png)
Добавляем вызов pam_exec, чтобы он был первым в списке:
auth sufficient pam_exec.so expose_authtok /usr/local/bin/aad-login
![](https://habrastorage.org/files/e35/2e9/014/e352e901430a48109af4f3ee1b4fc4b6.png)
Устанавливаем nodejs:
apt-get install nodejs
![](https://habrastorage.org/files/1f8/08a/3e3/1f808a3e38cd4c539990902b6e985669.png)
Удаляем устаревший node, создаем символическую ссылку /usr/bin/nodejs -> /usr/bin/node:
apt-get --purge remove node
ln -s /usr/bin/nodejs /usr/bin/node
![](https://habrastorage.org/files/99c/13b/69f/99c13b69fce34701938a340657e5bf4e.png)
Создаем пользователей, которым разрешен вход (пароль устанавливать не нужно). Логин таких пользователей должен совпадать с Alias емейла. Например, создаем пользователя support, емейл которого support@aspanta.onmicrosoft.com.
useradd -m support
![](https://habrastorage.org/files/4c9/085/7dd/4c90857ddbe24fe19502ae984308bca8.png)
Все готово!
Пробуем войти под созданным пользователем и паролем, установленным в Microsoft Azure AD / Office 365.
Microsoft Azure Linux Expert
http://habrahabr.ru/post/274249/
|