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

Навигация по интеграции 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.

Enterprise Application, 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
  5. Создайте роль «Участник» (или выберите другое имя). Далее создаем тестового пользователя в Microsoft Entra ID и добавляем его в наше приложение. Затем перейдите в Центр администрирования в Slack. Выполните следующие действия: Администратор Slack – Аутентификация – Конфигурация SAML – Настройка

    Admin Center in Slack

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

    SAML configuration

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

     Azure AD Provision

     Azure AD Provision

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

    User Attributes

    User Attributes

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

    Provision on Demand, successful result

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

    Slack Profiles

    Slack Profiles

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

    Ознакомьтесь с документацией здесь.

    МонгоАтлас

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

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

    1. В текстовом поле «Идентификатор» введите URL-адрес, используя следующий шаблон: https://www.okta.com/saml2/service-provider/
    2. В текстовом поле «URL-адрес ответа» введите URL-адрес, используя шаблон:
    3. https://auth.mongodb.com/sso/saml2/ 3. В текстовом поле «URL-адрес для входа» введите URL-адрес, используя шаблон: https://cloud.mongodb.com/sso/

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

      Attributes section

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

      SAML Certificates

      Setting up MongoDB Atlas — SSO

      В разделе «Настройка MongoDB Atlas — SSO» скопируйте соответствующие URL-адреса. Затем перейдите к MongoDB Atlas -> gt; Организация -> Настройки -> Настройки федеративной аутентификации.

      Federated Authentication Settings

      Начните с добавления поставщика учетных данных Microsoft Entra ID в Atlas. Введите соответствующие URL-адреса, упомянутые на предыдущем шаге, с портала Microsoft (URI эмитента, URL-адрес входа, URL-адрес единого входа), загрузите сертификат подписи поставщика удостоверений и настройте остальные параметры как показано на скриншоте ниже.

      Identity Provider Signature Certificate

      Нажмите «Далее» и сохраните файл метаданных локально, так как вам нужно будет загрузить его позже в Azure на странице конфигурации единого входа.

      Domain validation

      Затем добавьте, сопоставьте и проверьте домен, например, используя соответствующие записи TXT, созданные в MongoDB Atlas. После этого свяжите свой домен с поставщиком учетных данных и переходите к самому интересному: настройке роли.

      Identity Providers

      В качестве примера мы создали следующие роли, каждая из которых имеет определенные разрешения, предоставленные проектам. Затем вам необходимо сопоставить эти роли с ролями Azure. Перейдите в раздел «Роли приложения» для своего приложения, создайте и добавьте роли со значениями, точно соответствующими именам, которые вы только что присвоили этим ролям в MongoAtlas.

      Role mappings

      App roles

      После этого добавьте пользователей в приложение в приложении Microsoft Entra ID Enterprise и назначьте им соответствующие роли. Активируйте «Войти с помощью Azure SSO» в разделе «Управление федерацией» в MongoDB Atlas и проверьте правильность работы настроенных параметров.

      Более подробные инструкции см. в документации здесь.

      Эластичное облако

      Перейдем к интеграции с Elastic Cloud. Основные шаги по созданию приложения в Enterprise Application Entra ID аналогичны предыдущим. Там вы можете найти информацию о том, где получить идентификатор или URL-адрес выхода из системы. Однако мы столкнулись с проблемой с атрибутами, поэтому предоставим скриншот нашей рабочей конфигурации.

      Elastic Cloud, attributes

      Attributes

      Мы создали две роли — читателя и суперпользователя.

      Roles

      Здесь вы можете создать столько ролей, сколько вам нужно. Настройки ролей в Elasticsearch настраиваются в сопоставлениях ролей и выглядят следующим образом:

      Role Mappings

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

      1. Перейдите в раздел редактирования вашего развертывания Elasticsearch Cloud, чтобы обновить конфигурацию elasticsearch.yml. Добавьте следующие строки:
      2. “ 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 проверит все изменения и инициирует обновление кластера. Этот процесс может занять несколько минут.

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

          Attribute Mapping

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

          Attributes & Claims

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

          Собака данных

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

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

          Enterprise Application in Microsoft Entra ID

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

          Set up Single Sign-On with SAML

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

          Additional attribute "memberOf"

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

          Datadog SAML Settings

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

          Roles in the application registration

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

          Role Mappings in Datadog

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

          Datadog Error

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

          Datadog attribute key

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

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

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


          Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE