Навигация по интеграции Microsoft Entra ID для Slack, MongoAtlas, Salesforce и т. д.
28 декабря 2023 г.В эпоху быстрого развития облачных технологий, когда инфраструктура как услуга (IaaS) и платформа как услуга (PaaS) являются неотъемлемой частью многочисленных проектов, потребность в бесшовной интеграции различных облачных сервисов неоспорима. Microsoft, крупный игрок на этом рынке, потратила много времени на создание удобного для пользователя сервиса Microsoft Entra ID. Однако, несмотря на тщательно составленные инструкции от вендоров, специалисты часто сталкиваются с проблемами при настройке интеграции с такими платформами, как Slack, Salesforce или Datadog. Документация не дает ответов на конкретные вопросы.
Команда Social Discovery Group также столкнулась с этими проблемами, и в этой статье мы предложим, как их преодолеть и решить.
В своем портфолио, состоящем из более чем 50 платформ знакомств, Social Discovery Group использует различные технологии и облачные сервисы, чтобы гарантировать их безопасность и надежность. У нас большой опыт интеграции и настройки различных систем, в том числе одноранговых соединений между различными облаками.
Microsoft Entra ID — это облачное решение для управления идентификацией и доступом, служащее службой каталогов и аутентификации, работающей в облаке. Microsoft Entra ID предлагает услуги аутентификации и авторизации для различных служб Microsoft и сторонних производителей. В этой статье мы рассмотрим интеграцию следующих облачных систем: Slack, MongoAtlas, ElasticCloud, Salesforce и Datadog.
Слабость
Из-за отсутствия четкого руководства мы решили создать свое, подробно описав все возникающие на этом пути головные боли. Итак, давайте перейдем к разделу «Корпоративное приложение» в Azure.
Необходимо создать новое корпоративное приложение (это можно сделать в несколько кликов). Затем откройте приложение, которое мы только что создали, и настройте единый вход — SAML. Внесите изменения сверху вниз:
- Идентификатор: https://slack.com
- URL-адрес ответа: https://
.slack.com/sso/saml (если у вас есть ent Grid – https:// .enterprise.slack.com /sso/saml) - URL-адрес для входа: https://
.slack.com/sso/saml/start - URL-адрес выхода: https://
.slack.com/sso/saml/logout
ол> - В текстовом поле «Идентификатор» введите URL-адрес, используя следующий шаблон: https://www.okta.com/saml2/service-provider/
- В текстовом поле «URL-адрес ответа» введите URL-адрес, используя шаблон: ол>
- Перейдите в раздел редактирования вашего развертывания Elasticsearch Cloud, чтобы обновить конфигурацию elasticsearch.yml. Добавьте следующие строки: ол>
- После успешного завершения предыдущего шага вам необходимо отредактировать конфигурацию kibana.yml, чтобы разрешить вход в систему с помощью Microsoft Entra ID в дополнение к входу по умолчанию. Для этого добавьте в настройки следующие строки: ол>
Создайте роль «Участник» (или выберите другое имя). Далее создаем тестового пользователя в Microsoft Entra ID и добавляем его в наше приложение. Затем перейдите в Центр администрирования в Slack. Выполните следующие действия: Администратор Slack – Аутентификация – Конфигурация SAML – Настройка
Следующим шагом будет настройка SAML. Рекомендуем обратить внимание на настройку «Отображаемое имя». Далее в настройках снимите галочку «Обновлять профиль при входе», запретите менять адрес электронной почты и отображаемое имя.
Существует также возможность настроить текст на кнопке входа и запретить пользователям входить в систему любым другим способом, кроме SSO. После этого вы сможете войти в Slack, используя свою учетную запись Microsoft. Если необходимы какие-либо дополнительные поля или настройки, это можно сделать с помощью Azure AD Provision.
Чтобы добавить новый атрибут, перейдите в раздел «Атрибуты пользователя» и выберите «Добавить новое сопоставление». Выберите желаемый атрибут источника, который вы хотите отображать в Slack, и свяжите его с соответствующим атрибутом Slack.
После добавления необходимых атрибутов и сохранения настроек перейдите к «Предоставлению по требованию» для проверки функциональности. При положительном результате вы получите следующее:
Далее вам нужно зайти в Slack и указать, какие атрибуты отображать в полном профиле пользователя и где их получить. Перейдите в «Профили» и выберите информацию, которая будет отображаться, и откуда она будет получена. В данном случае SCIM соответствует Azure AD.
Далее мы рекомендуем добавить необходимых пользователей из Active Directory в Slack, чтобы обеспечить плавную интеграцию. Мы также хотим обратить внимание на проблему, возникающую при удалении пользователей: если пользователь удаляется из Slack вручную (через центр администрирования Slack), ошибка будет сохраняться, указывая на то, что пользователя невозможно перенести в Slack из-за недостаточных разрешений. Это происходит потому, что Entra ID сохраняет информацию о пользователях в пределах области действия и присваивает им уникальный идентификатор. Удаление и повторное добавление пользователя в Slack воспринимается Entra ID как новый пользователь, что приводит к проблемам с разрешениями во время обновлений.
Ознакомьтесь с документацией здесь.
МонгоАтлас
Для MongoAtlas процесс идет по аналогичному пути. Вам также потребуется создать новое корпоративное приложение; для удобства введите «MongoDB Atlas — SSO» в поле поиска. Более подробные инструкции можно найти здесь.
Далее перейдите к настройкам единого входа, где вам нужно будет ввести следующее:
https://auth.mongodb.com/sso/saml2/
Рекомендуем обратить внимание на раздел «Атрибуты» и настроить его, как показано на скриншоте ниже (обязательно добавить «memberOf»).
Затем на странице «Настройка единого входа с помощью SAML» перейдите в раздел «Сертификат подписи SAML» и найдите метаданные XML для федерации. Выберите «Загрузить», чтобы загрузить сертификат и сохранить его локально (XML-файл метаданных Федерации). Он понадобится нам позже в MongoDB Atlas.
В разделе «Настройка MongoDB Atlas — SSO» скопируйте соответствующие URL-адреса. Затем перейдите к MongoDB Atlas -> gt; Организация -> Настройки -> Настройки федеративной аутентификации.
Начните с добавления поставщика учетных данных Microsoft Entra ID в Atlas. Введите соответствующие URL-адреса, упомянутые на предыдущем шаге, с портала Microsoft (URI эмитента, URL-адрес входа, URL-адрес единого входа), загрузите сертификат подписи поставщика удостоверений и настройте остальные параметры как показано на скриншоте ниже.
Нажмите «Далее» и сохраните файл метаданных локально, так как вам нужно будет загрузить его позже в Azure на странице конфигурации единого входа.
Затем добавьте, сопоставьте и проверьте домен, например, используя соответствующие записи TXT, созданные в MongoDB Atlas. После этого свяжите свой домен с поставщиком учетных данных и переходите к самому интересному: настройке роли.
В качестве примера мы создали следующие роли, каждая из которых имеет определенные разрешения, предоставленные проектам. Затем вам необходимо сопоставить эти роли с ролями Azure. Перейдите в раздел «Роли приложения» для своего приложения, создайте и добавьте роли со значениями, точно соответствующими именам, которые вы только что присвоили этим ролям в MongoAtlas.
После этого добавьте пользователей в приложение в приложении Microsoft Entra ID Enterprise и назначьте им соответствующие роли. Активируйте «Войти с помощью Azure SSO» в разделе «Управление федерацией» в MongoDB Atlas и проверьте правильность работы настроенных параметров.
Более подробные инструкции см. в документации здесь. р>
Эластичное облако
Перейдем к интеграции с Elastic Cloud. Основные шаги по созданию приложения в Enterprise Application Entra ID аналогичны предыдущим. Там вы можете найти информацию о том, где получить идентификатор или URL-адрес выхода из системы. Однако мы столкнулись с проблемой с атрибутами, поэтому предоставим скриншот нашей рабочей конфигурации.
Мы создали две роли — читателя и суперпользователя.
Здесь вы можете создать столько ролей, сколько вам нужно. Настройки ролей в Elasticsearch настраиваются в сопоставлениях ролей и выглядят следующим образом:
Теперь самое интересное. Необходимо сделать две вещи: добавить конфигурацию единого входа Azure для Kibana и Elasticsearch. Для этого выполните следующие действия:
“ xpack:
безопасность:
аутентификация:
Области:
самл:
saml-azure-ad:
порядок: 2
attributes.principal: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
attributes.groups: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role"
attributes.name: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"
attributes.mail: "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"
idp.metadata.path: «URL-адрес метаданных Федерации приложений»
idp.entity_id: «Идентификатор идентификатора Azure Entra»
sp.entity_id: «Конечная точка Кибаны»
sp.acs: "Конечная точка Kibana/api/security/v1/saml"
sp.logout: «Конечная точка/выход Kibana» «
После добавления и изменения значений, выделенных красным, в соответствии с вашей конфигурацией, нажмите «Сохранить». Elastic Cloud проверит все изменения и инициирует обновление кластера. Этот процесс может занять несколько минут.
“ xpack.security.authc.providers:
saml.saml1:
порядок: 0
область: saml-azure-ad
описание: «Войти с помощью Azure Entra ID»
basic.basic1:
порядок: 1 ”
После выполнения двух предыдущих шагов на вашей странице входа в Kibana должен стать доступен другой вариант входа. Далее приступайте к добавлению пользователей в приложение Microsoft Entra ID Enterprise Application и назначению им необходимых ролей.
Дополнительную информацию можно найти в документации здесь.
Сотрудники отдела продаж
Интеграция с Salesforce оказалась немного сложнее, чем предыдущие. Начальные шаги аналогичны, но внимание следует уделить разделу «Предоставление». Есть нюансы относительно указания учетных данных администратора, под которым будет происходить синхронизация аккаунтов, и необходимо включение Attribute Mapping.
Вот пример настроек нашей конфигурации на скриншоте. Мы не столкнулись с какими-либо серьезными проблемами с атрибутами, но мы также предоставим скриншот тех, которые мы использовали.
В самой Salesforce особых нюансов не было, и мы приступили к следующим шагам, как описано в этом руководство.
Собака данных
Во время интеграции с Datadog мы также столкнулись с некоторыми проблемами. Основную документацию, которой мы руководствовались, можно найти здесь. Для устранения нюансов мы обратились к этому руководству.
Все началось гладко, и поначалу казалось, что никаких проблем не будет. Как обычно, мы создали новое корпоративное приложение в Microsoft Entra ID.
В разделе «Настройка единого входа с помощью SAML» обратите внимание на местоположение, которое вы выбрали для своей учетной записи Datadog. В нашем случае это был регион Европы.
Как упоминалось ранее, для MongoAtlasDB мы добавляем дополнительный атрибутmemberOf для сопоставления ролей.
Сохраните все настройки и загрузите XML-файл метаданных федерации. Загрузите этот файл в настройки SAML в Datadog. Вот удобная ссылка для справки. Настройки Datadog SAML (замените «EU» на соответствующую доменную зону, если ваше местоположение отличается). Это должно выглядеть так, как показано на скриншоте ниже.
В настройках способов входа организации оставьте только то, что необходимо (в моем случае я отключил вход по паролю и Google Authenticate). Добавьте роли в Azure при регистрации приложения для Microsoft Entra ID.
Здесь начинается самое интересное. Перейдите к Сопоставлению групп SAML -> > Сопоставления ролей в Datadog и добавьте ключ, значение и роль. Это кажется простым. См. скриншот ниже.
Но это не работает и продолжает выдавать ошибку "Для этого пользователя нет AuthNMappings".
Долгое время мы пытались понять, что мы делаем не так, просматривая всю документацию, логи и страницы устранения неполадок. К сожалению, об этом нигде не упоминалось. В конце концов, решение простое: следуйте конфигурации, показанной на скриншоте ниже.
В поле КЛЮЧ введите строку: http://schemas.microsoft.com/ws/2008/06/identity/claims/role
После этого все стало успешно работать.
«Это лишь малая часть систем, которые мы интегрировали с Microsoft Entra ID. Мы надеемся, что представленные здесь идеи послужат полезным ресурсом, упрощающим ваши процессы интеграции и экономящим драгоценное время. В заключение отметим следующие преимущества использования Microsoft В Entra ID можно выделить: единый вход, не требующий многократного ввода пароля; не требуются дополнительные компоненты; простота настройки и администрирования; групповые политики и группы; регистрация устройств; высокий уровень безопасности.
Оригинал