paint-brush
Навигация по интеграции Microsoft Entra ID для Slack, MongoAtlas, Salesforce и другихк@socialdiscoverygroup
962 чтения
962 чтения

Навигация по интеграции Microsoft Entra ID для Slack, MongoAtlas, Salesforce и других

Слишком долго; Читать

Microsoft Entra ID — это удобное решение для управления идентификацией и доступом. Однако, несмотря на тщательно составленные инструкции от вендоров, специалисты часто сталкиваются с проблемами при настройке интеграции с такими платформами, как Slack, Salesforce или Datadog. Команда ЦУР также столкнулась с этими проблемами, и в этой статье мы предложим идеи о том, как их преодолеть и решить.
featured image - Навигация по интеграции Microsoft Entra ID для Slack, MongoAtlas, Salesforce и других
Social Discovery Group HackerNoon profile picture
0-item


В эпоху быстрого развития облачных технологий, когда инфраструктура как услуга (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.

Корпоративное приложение, Azure


Необходимо создать новое корпоративное приложение (это можно сделать в несколько кликов). Затем откройте приложение, которое мы только что создали, и настройте единый вход — SAML. Внесите изменения сверху вниз:


  1. Идентификатор: https://slack.com
  2. URL-адрес ответа: https://<ДОМЕННОЕ ИМЯ>.slack.com/sso/saml (если у вас есть ent Grid – https://<ДОМЕННОЕ ИМЯ>.enterprise.slack.com/sso/saml )
  3. URL-адрес для входа: https://<ИМЯ ДОМЕНА>.slack.com/sso/saml/start
  4. URL-адрес выхода: https://<ДОМЕННОЕ ИМЯ>.slack.com/sso/saml/logout

Создайте роль «Участник» (или выберите другое имя). Далее создаем тестового пользователя в Microsoft Entra ID и добавляем его в наше приложение. Затем перейдите в Центр администрирования в Slack. Выполните следующие действия: Администратор Slack — Аутентификация — Конфигурация SAML — Настройка.


Центр администрирования в Slack


Следующим шагом будет настройка SAML. Рекомендуем обратить внимание на настройку «Отображаемое имя». Далее в настройках снимите галочку «Обновлять профиль при входе», запретите менять адрес электронной почты и отображаемое имя.

SAML-конфигурация


Существует также возможность настроить текст на кнопке входа и запретить пользователям входить в систему любым другим способом, кроме SSO. После этого вы сможете войти в Slack, используя свою учетную запись Microsoft. Если необходимы какие-либо дополнительные поля или параметры, это можно сделать с помощью Azure AD Provision.


Предоставление Azure AD


Предоставление Azure AD


Чтобы добавить новый атрибут, перейдите в раздел «Атрибуты пользователя» и выберите «Добавить новое сопоставление». Выберите желаемый атрибут источника, который вы хотите отображать в Slack, и свяжите его с соответствующим атрибутом Slack.


Атрибуты пользователя

Атрибуты пользователя


После добавления необходимых атрибутов и сохранения настроек переходите к «Предоставлению по требованию» для проверки функциональности. При положительном результате вы получите следующее:


Предоставление по требованию, успешный результат


Далее вам нужно зайти в Slack и указать, какие атрибуты отображать в полном профиле пользователя и где их получить. Перейдите в «Профили» и выберите информацию, которая будет отображаться, и откуда она будет получена. В данном случае SCIM соответствует Azure AD.


Слабые профили


Слабые профили


Далее мы рекомендуем добавить необходимых пользователей из Active Directory в Slack, чтобы обеспечить плавную интеграцию. Мы также хотим обратить внимание на проблему, возникающую при удалении пользователей: если пользователь удаляется из Slack вручную (через центр администрирования Slack), ошибка будет сохраняться, указывая на то, что пользователя невозможно перенести в Slack из-за недостаточных разрешений. Это происходит потому, что Entra ID сохраняет информацию о пользователях в пределах области действия и присваивает им уникальный идентификатор. Удаление и повторное добавление пользователя в Slack воспринимается Entra ID как новый пользователь, что приводит к проблемам с разрешениями во время обновлений.


Проверьте документацию здесь .


МонгоАтлас

В MongoAtlas процесс идет по аналогичному пути. Вам также потребуется создать новое корпоративное приложение; для удобства введите «MongoDB Atlas — SSO» в поле поиска. Более подробную инструкцию можно найти здесь.


Далее перейдите к настройкам единого входа, где вам нужно будет ввести следующее:

  1. В текстовом поле «Идентификатор» введите URL-адрес по следующему шаблону: https://www.okta.com/saml2/service-provider/<Customer_Unique>

  2. В текстовое поле «URL-адрес ответа» введите URL-адрес по шаблону:

    https://auth.mongodb.com/sso/saml2/<Customer_Unique>

  3. В текстовом поле «URL-адрес для входа» введите URL-адрес, используя шаблон: https://cloud.mongodb.com/sso/<Customer_Unique>

Рекомендуем обратить внимание на раздел «Атрибуты» и настроить его, как показано на скриншоте ниже (нужно было добавить «memberOf»).


Раздел атрибутов


Затем на странице «Настройка единого входа с помощью SAML» перейдите в раздел «Сертификат подписи SAML» и найдите метаданные XML для федерации. Выберите «Загрузить», чтобы загрузить сертификат и сохранить его локально (XML-файл метаданных Федерации). Он понадобится нам позже в MongoDB Atlas.


SAML-сертификаты


Настройка MongoDB Atlas — SSO


В разделе «Настройка MongoDB Atlas — SSO» скопируйте соответствующие URL-адреса. Затем перейдите в MongoDB Atlas -> Organization -> Settings -> Federated Authentication Settings .


Параметры федеративной аутентификации


Начните с добавления поставщика учетных данных 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 настраиваются в Role Mappings и выглядят следующим образом:


Ролевые сопоставления


Теперь самое интересное. Необходимо сделать две вещи: добавить конфигурацию единого входа Azure для Kibana и Elasticsearch. Чтобы добиться этого, выполните следующие действия:

  1. Перейдите в раздел редактирования вашего развертывания Elasticsearch Cloud, чтобы обновить конфигурацию elasticsearch.yml. Добавьте следующие строки:


“ xpack:

security:

authc:

realms:

saml:

saml-azure-ad:

order: 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: "APP Federation metadata URL"

idp.entity_id: "Azure Entra ID Identifier"

sp.entity_id: "Kibana endpoint"

sp.acs: "Kibana endpoint/api/security/v1/saml"

sp.logout: "Kibana endpoint/logout" “

После добавления и изменения значений, выделенных красным, в соответствии с вашей конфигурацией, нажмите «Сохранить». Elastic Cloud проверит все изменения и инициирует обновление кластера. Этот процесс может занять несколько минут.

  1. После успешного завершения предыдущего шага вам необходимо отредактировать конфигурацию kibana.yml, чтобы разрешить вход в систему с помощью Microsoft Entra ID в дополнение к входу по умолчанию. Для этого добавьте в настройки следующие строки:

“ xpack.security.authc.providers:

saml.saml1:

order: 0

realm: saml-azure-ad

description: "Log in with Azure Entra ID"

basic.basic1:

order: 1 ”

После выполнения двух предыдущих шагов на вашей странице входа в Kibana должен появиться еще один вариант входа. Далее приступайте к добавлению пользователей в приложение Microsoft Entra ID Enterprise Application и назначению им необходимых ролей.


Дополнительную информацию можно найти в документации здесь.



Salesforce

Интеграция с Salesforce оказалась немного сложнее предыдущих. Начальные шаги аналогичны, но внимание следует уделить разделу «Предоставление». Есть нюансы относительно указания учетных данных администратора, под которым будет происходить синхронизация учетных записей, и необходимо включение Attribute Mapping.


Сопоставление атрибутов


Вот пример настроек нашей конфигурации на скриншоте. Мы не столкнулись с какими-либо серьезными проблемами с атрибутами, но мы также предоставим скриншот тех, которые мы использовали.


Атрибуты и утверждения


В самом Salesforce особых нюансов не было, и мы приступили к следующим шагам, изложенным в этом руководстве .


Датадог

Во время интеграции с Datadog мы также столкнулись с некоторыми проблемами. Первичную документацию, которой мы руководствовались, можно найти здесь . По устранению нюансов мы обращались к этому руководству.


Все началось гладко, и поначалу казалось, что никаких проблем не будет. Как обычно, мы создали новое корпоративное приложение в Microsoft Entra ID.


Корпоративное приложение в Microsoft Entra ID


В разделе «Настройка единого входа с помощью SAML» обратите внимание на местоположение, которое вы выбрали для своей учетной записи Datadog. В нашем случае это был регион Европы.


Настройка единого входа с помощью SAML


Как упоминалось ранее, для MongoAtlasDB мы добавляем дополнительный атрибутmemberOf для сопоставления ролей.


Дополнительный атрибут «memberOf»


Сохраните все настройки и загрузите XML-файл метаданных федерации. Загрузите этот файл в настройки SAML в Datadog. Вот удобная ссылка для ознакомления. Настройки Datadog SAML (замените «EU» на соответствующую доменную зону, если ваше местоположение отличается). Это должно выглядеть как на скриншоте ниже.


Настройки Datadog SAML


В настройках способов входа организации оставьте только то, что необходимо (в моем случае я отключил вход по паролю и Google Authenticate). Добавьте роли в Azure при регистрации приложения для Microsoft Entra ID.


Роли при регистрации приложения


Здесь начинается самое интересное. Перейдите в раздел «Сопоставления групп SAML» -> «Сопоставления ролей» в Datadog и добавьте ключ, значение и роль. Это кажется простым. Смотрите скриншот ниже.


Сопоставления ролей в Datadog


Но это не работает и продолжает выдавать ошибку «Для этого пользователя нет AuthNMappings».


Ошибка Datadog


Долгое время мы пытались понять, что мы делаем не так, просматривая всю документацию, логи и страницы устранения неполадок. К сожалению, об этом нигде не упоминалось. В конце концов, решение простое: следуйте конфигурации, показанной на скриншоте ниже.


Ключ атрибута Datadog


В поле KEY введите строку: http://schemas.microsoft.com/ws/2008/06/identity/claims/role.

После этого все стало успешно работать.


«Это лишь малая часть систем, которые мы интегрировали с Microsoft Entra ID. Мы надеемся, что представленные здесь идеи послужат полезным ресурсом, упрощающим ваши процессы интеграции и экономящим драгоценное время. В заключение отметим следующие преимущества использования Microsoft В Entra ID можно выделить: Единый вход, не требующий многократного ввода пароля, отсутствие необходимости в дополнительных компонентах, простоту настройки и администрирования, групповые политики и группы, регистрацию устройств, высокий уровень безопасности.