Skip To Content

Настройка SimpleSAMLphp

SimpleSAMLphp - это провайдер идентификации, совместимый с Security Assertion Markup Language (SAML). Вы можете настроить SimpleSAMLphp 1.10 и более новой версии в качестве провайдера IDPдля корпоративных учетных записей в ArcGIS Online. Процесс настройки состоит из двух основных шагов: регистрации вашего корпоративного IDP в ArcGIS Online и регистрации ArcGIS Online в корпоративном IDP.

Примечание:

Чтобы гарантировать защищенные настройки корпоративных учетных записей организации, см. рекомендации по безопасности SAML.

Необходимая информация

ArcGIS Online должен получить определенную атрибутивную информацию от IDP, когда пользователь входит с использованием корпоративной учетной записи. NameID Атрибут является обязательным и должен отправляться IDP в ответ на запрос для интеграции работы с ArcGIS Online. Так как ArcGIS Online использует значение NameID для уникальной идентификации именованного пользователя, рекомендуется для идентификации пользователя использовать постоянное значение. Когда пользователь из IDP осуществляет вход, нового пользователя с именем NameID_<url_key_for_org> создает ArcGIS Online в хранилище пользователей. Допустимыми символами значения, которое посылается атрибутом NameID, являются буквы, цифры, _ (нижнее подчеркивание), . (точка) и @ (знак). Другие символы будут заменены нижним подчеркиванием в имени пользователя, созданном ArcGIS Online.

ArcGIS Online поддерживает получение email-адреса пользователя, информацию о его участии в группах, указанного имени и фамилии от поставщика удостоверений SAML. Рекомендуется передавать email-адрес от корпоративного IDP, чтобы пользователь мог получать уведомления. Это помогает, если пользователь в дальнейшем становится администратором. Наличие адреса электронной почты для учётной записи даёт пользователю возможность получать уведомления о любой административной деятельности и отправлять приглашения другим пользователям для присоединения к организации.

Регистрация SimpleSAMLphp в качестве корпоративного IDP в ArcGIS Online

  1. Настройте источник аутентификации в IdP SimpleSAMLphp.
    1. Создайте источник аутентификации.

      SimpleSAMLphp Поддерживает аутентификацию пользователей из различных источников: LDAP-сервер, пользователи SQL Server, домена Active Directory и т.п. В приведенном ниже примере показано, как следует настроить Apache Directory Server в качестве источника аутентификации в IdP SimpleSAMLphp.

      Источники аутентификации могут быть сконфигурированы в файле <SimpleSAML_HOME>/config/authsources.php. Для настройки сервера LDAP откройте файл config/authsources.php и добавьте основанный на LDAP источник аутентификации в следующем формате:

      'example-ldapApacheDS' => array(
      		'ldap:LDAP',
      		/* The hostname of the LDAP server. */
      		'hostname' => 'host:port',
      		/* Whether TLS should be used when contacting the LDAP server. */
      		'enable_tls' => TRUE,
      		/*
      		 * Which attributes should be retrieved from the LDAP server.
      		 * This can be an array of attribute names, or NULL, in which case
      		 * all attributes are fetched.
      		 */
      		'attributes' => NULL,
      		/*
      		 * The pattern that should be used to create the users DN given the username.
      		 * %username% in this pattern will be replaced with the user's username.
      		 *
      		 * This option is not used if the search.enable option is set to TRUE.
      		 */
      		'dnpattern' => 'uid=%username%,ou=users,ou=system',
      		/*
      		 * As an alternative to specifying a pattern for the users DN, it is possible to
      		 * search for the username in a set of attributes. This is enabled by this option.
      		 */
      		'search.enable' => FALSE,
      		/*
      		 * The DN that will be used as a base for the search.
      		 * This can be a single string, in which case only that DN is searched, or an
      		 * array of strings, in which case they will be searched in the order given.
      		 */
      		'search.base' => 'ou=users,ou=system',
      		/*
      		 * The attribute(s) the username should match against.
      		 *
      		 * This is an array with one or more attribute names. Any of the attributes in
      		 * the array may match the value the username.
      		 */
      		'search.attributes' => array('uid', 'mail'),
      		/*
      		 * The username & password the simpleSAMLphp should bind to before searching. If
      		 * this is left as NULL, no bind will be performed before searching.
      		 */
      		'search.username' => 'uid=admin,ou=system',
      		'search.password' => 'password',
      	),
    2. Настройте источник аутентификации, созданный вами выше, в качестве модуля аутентификации IdP SimpleSAMLphp. Откройте файл metadata/ saml20-idp-hosted.php и добавьте источник аутентификации для использования.
      /*
      	 * Authentication source to use. Must be one that is configured in	 * 'config/authsources.php'.	 */
      	'auth' => 'example-ldapApacheDS',
  2. Настройте формат идентификатора имени, поддерживаемый IDP SimpleSAMLphp. Откройте файл < SimpleSAML_HOME >/metadata/saml20-idp-hosted.php и добавьте этот код ниже. В следующем примере uid будет передан как NameID IDP SimpleSAMLphp в ArcGIS Online после аутентификации пользователя.
    'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',		'authproc' => array(
    			  3 => array(
    			  'class' => 'saml:AttributeNameID',			  'attribute' => 'uid',	              'Format' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',				  ),
    			),
  3. Зарегистрируйте в качестве провайдера идентификации IDP SimpleSAMLphp для вашей организации ArcGIS Online.
    1. Убедитесь, что вы вошли в систему в качестве администратора вашей организации.
    2. Щелкните Организация вверху сайта, затем выберите вкладку Настройки.
    3. Щелкните Безопасность в левой части страницы.
    4. В разделе Учетные записи секции Корпоративная, щелкните кнопку Задать корпоративную учетную запись и выберите опцию Один провайдер идентификации. Введите имя организации в открывшемся окне (например, City of Redlands). При входе пользователей на веб-сайт организации, данный текст отображается внутри строки входа SAML (например, Использование учетной записи City of Redlands).
      Примечание:

      Выбор опции Один провайдер идентификации позволяет зарегистрировать один корпоративный IDP для организации ArcGIS Online. Если вы хотите использовать аутентификацию пользователей с корпоративными учетными записями из нескольких IDP, зарегистрируйте распределение на базе SAML, вместо единого IDP.

    5. Укажите, могут ли пользователи вступать в организацию Автоматически или По приглашению администратора. Если выбрать первый вариант, пользователи смогут присоединяться к организации с использованием своих корпоративных учетных записей без всякого вмешательства администратора. Их учетная запись автоматически регистрируется в организации во время первого входа. Во втором случае пользователям потребуется приглашение администратора. Когда пользователь получает приглашение, он может выполнить вход в организацию.
    6. Введите метаданные для IDP, используя один из трех приведенных ниже вариантов:

      URL – выберите данную опцию, если доступен URL-адрес метаданных SimpleSAMLphp . Обычно это https://<simpleSAML-server>/<saml-app-name>/saml2/idp/metadata.php.

      Файл – выберите данную опцию, если URL-адрес недоступен. Сохраните метаданные из URL-адреса как XML-файл, и выгрузите файл в ArcGIS Online с помощью опции Файл.

      Указанные здесь параметры – выберите данную опцию, если недоступны URL-адрес или файл метаданных. Вручную введите значения и укажите запрашиваемые параметры: URL для входа и сертификат, закодированный в формате BASE 64. Для получения этих значений свяжитесь с администратором SimpleSAMLphp.

  4. Доступна расширенная настройка дополнительных опций:
    • Шифровать утверждения – включите эту опцию, если SimpleSAMLphp будет настроен на шифрование ответов утверждений SAML.
    • Включить подписанный запрос – Выберите эту опцию, чтобы заставить ArcGIS Online подписывать запрос аутентификации SAML, который отправляется SimpleSAMLphp.
    • ID объекта – Обновите это значение, чтобы использовать новый ID объекта, чтобы уникально идентифицировать вашу организацию ArcGIS Online в SimpleSAMLphp.
    • Произвести выход в провайдер идентификации – включите эту опцию, чтобы ArcGIS Online использовал URL-адрес выхода, чтобы выполнить выход пользователя из SimpleSAMLphp. Введите используемый URL в поле URL-адрес выхода. Если IDP для выполнения входа требуется URL-адрес выхода, необходимо включить опцию Включить подписанный запрос.
    • Обновить профиль для входа—установите эту отметку, чтобы автоматически синхронизировать информацию учетной записи (полное имя и адрес электронной почты), которая хранится в профилях пользователей ArcGIS Online с последней информацией об учетной записи, полученной от провайдера идентификации. Включение этой опции позволяет вашей организации в момент выполнения входа пользователя с корпоративной учетной записью проверять, изменилась ли информация от провайдера идентификации с момента создания учетной записи, Если информация изменилась, то производится соответствующее обновление профиля учетной записи пользователя ArcGIS Online.
    • Включить членство в группе, основанное на SAML—Включите эту опцию, чтобы позволить пользователям организации связать заданные корпоративные группы, основанные на SAML с ArcGIS Online группами в процессе создания группы.
    • URL-адрес выхода – URL-адрес IDP, использующегося при выходе работающего в данный момент пользователя. Обычно URL-адрес выхода выглядит так: https://idphost.domain.com/simplesaml/saml2/idp/SingleLogoutService.php. Этот URL-адрес задан в элементе SingleLogoutService в файле метаданных IDP. Обычно URL файла метаданных URL – это http://[simpleSAML-server]/simplesaml/saml2/idp/metadata.php.
  5. Щелкните Сохранить.

Регистрация ArcGIS Online в качестве проверенного провайдера сервиса в SimpleSAMLphp

  1. Настройте ArcGIS Online в качестве проверенного провайдера сервисов с SimpleSAMLphp посредством настройки файла <SimpleSAMLphp_HOME>/metatadata/saml20-sp-remote.php.
    1. Получите файл метаданных XML для вашей организации ArcGIS Online.

      Для получения файла метаданных войдите в вашу организацию в качестве администратора и откройте страницу вашей организации. Щелкните вкладку Настройки, затем Безопасность в левой части страницы. В разделе Учетные записи, секции Корпоративные, щелкните кнопку Загрузить метаданные провайдера сервиса.

    2. Конвертируйте XML-файл, который вы получили в предыдущем шаге, в формат PHP.

      SimpleSAMLphp предполагает, что метаданные провайдера сервисов будут предоставлены в формате PHP. SimpleSAMLphp встроенный конвертер XML метаданных в PHP, который по умолчанию доступен как https://<simpleSAML-server>/<saml-app-name>/admin/metadata-converter.php в вашей инсталляции SimpleSAMLphp. Используйте данный конвертер для конвертирования XML в PHP.

    3. Откройте файл metatadata/saml20-sp-remote.php и добавьте конфигурацию провайдера сервисов в формате PHP, созданную в шаге 1.b ранее.

      Ниже представлен пример добавления конфигурации провайдера сервисов в файл метаданных.

      /* The following is an ArcGIS Online organization service provider */
      $metadata['citygis.maps.arcgis.com'] = array (
        'entityid' => ' citygis.maps.arcgis.com',
        'name' =>
        array (
          'en' => 'citygis ',
        ),
        'description' =>
        array (
          'en' => 'citygis ',
        ),
        'OrganizationName' =>
        array (
          'en' => 'citygis ',
        ),
        'OrganizationDisplayName' =>
        array (
          'en' => 'citygis ',
        ),
        'url' =>
        array (
          'en' => 'https://citygis.maps.arcgis.com',
        ),
        'OrganizationURL' =>
        array (
          'en' => 'https://citygis.maps.arcgis.com',
        ),
        'contacts' =>
        array (
        ),
        'metadata-set' => 'saml20-sp-remote',
        'AssertionConsumerService' =>
        array (
          0 =>
          array (
            'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',
            'Location' => 'https://citygis.maps.arcgis.com/sharing/rest/oauth2/saml/signin',
            'index' => 1,
          ),
          1 =>
          array (
            'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',
            'Location' => 'https://citygis.maps.arcgis.com/sharing/rest/oauth2/saml/signin',
            'index' => 2,
          ),
        ),
        'SingleLogoutService' =>
        array (
        ),
      );
  2. Настройте атрибут, который должен быть передан как NameID в ArcGIS Online из IdP SimpleSAMLphp после аутентификации пользователя. Чтобы сделать это, добавьте атрибут в конце конфигурации провайдера сервисов, которую вы добавили в предыдущем шаге.

    В следующем примере uid передается как NameID IdP SimpleSAMLphp в ArcGIS Online после аутентификации пользователя. (Замените citygis.maps.arcgis.com на URL-адрес вашей организации.)

    'NameIDFormat'               => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', 'simplesaml.nameidattribute' => 'uid',
    /* The following indicates whether or not to send all the attributes received from the authentication source to the service provider.  If true, it will send, otherwise it will not send all the attributes*/
      'simplesaml.attributes'      => true,
    );
  3. Если выбрана дополнительная настройка Шифровать утверждения при регистрации в качестве поставщика корпоративной идентификации IDP SimpleSAMLphp, добавьте атрибут ниже в конце настройки, которая была добавлена в шаге 1.
    /*
      Whether assertions sent to this SP should be encrypted. The default value is FALSE.  */
      'assertion.encryption' => true,
    );