Skip To Content

Настройка SimpleSAMLphp

Вы можете настроить SimpleSAMLphp версии 1.10 и выше в качестве провайдера идентификации (IDP) для корпоративных учетных записей в Portal for ArcGIS. Процесс настройки состоит из двух основных шагов: регистрации вашего провайдера идентификации в Portal for ArcGIS и регистрации Portal for ArcGIS в провайдере идентификации.

Вы также можете ввести в портал метаданные, относящиеся к корпоративным группам в вашем хранилище идентификаций. Это позволит создавать группы на портале, которые используют существующие корпоративные группы из хранилища идентификаций. Когда участники входят на портал, доступ к ресурсам, элементам и данным обеспечивается правилами, заданными в корпоративной группе. Если вы не предоставите необходимых метаданных о корпоративных группах, вы все равно сможете создавать группы. Однако правила участия будут определяться Portal for ArcGIS, а не хранилищем идентификаций.

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

Portal for ArcGIS должен получить определенную атрибутивную информацию от провайдера аутентификации, когда пользователь входит с использованием корпоративной учетной записи. NameID это обязательный атрибут, который должен отправляться провайдером аутентификации в SAML-ответе для интеграции с Portal for ArcGIS. Если входит пользователь IDP, Portal for ArcGIS создает в хранилище пользователей нового пользователя с именем NameID. Допустимыми символами значения, которое посылается атрибутом NameID, являются буквы, цифры и _ (нижнее подчеркивание), . (точка) и @ (собачка). Другие символы будут заменены нижним подчеркиванием в имени пользователя, созданном Portal for ArcGIS.

Portal for ArcGIS поддерживает поток атрибутов givenName и email address корпоративной учетной записи от корпоративного провайдера идентификации. Когда пользователь осуществляет вход с использованием корпоративной учетной записи, и Portal for ArcGIS получает атрибуты с именами givenname и email или mail (в любом случае), Portal for ArcGIS заполняет полное имя и адрес электронной почты для учетной записи пользователя значениями, полученными от провайдера идентификации. Рекомендуем указывать email address от провайдера идентификации, чтобы пользователь мог получать уведомления.

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

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

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

      Источники аутентификации могут быть сконфигурированы в файле <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 SSL/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',
      	),

      Portal for ArcGIS поддерживает поток атрибутов givenName и email address корпоративной учетной записи от корпоративного провайдера идентификации. Когда пользователь осуществляет вход с использованием корпоративной учетной записи, и Portal for ArcGIS получает атрибуты с именами givenname и email или mail (в любом случае), Portal for ArcGIS заполняет полное имя и адрес электронной почты для учетной записи пользователя значениями, полученными от провайдера идентификации.

      Рекомендуется, чтобы вы пропустили адрес электронной почты от провайдера идентификации в Portal for ArcGIS. Это помогает, если пользователь в дальнейшем становится администратором. Наличие адреса электронной почты для учетной записи дает пользователю возможность получать уведомления о любой административной деятельности и отправлять приглашения другим пользователям для присоединения к организации.

    2. Настройте источник аутентификации, созданный вами выше, в качестве модуля аутентификации в SimpleSAMLphp IdP. Откройте файл metadata/ saml20-idp-hosted.php и добавьте источник аутентификации для использования.
      /*
      	 * Authentication source to use. Must be one that is configured in	 * 'config/authsources.php'.	 */
      	'auth' => 'example-ldapApacheDS',
  2. Настройте формат идентификатора имени, поддерживаемый SimpleSAMLphp IdP. Откройте файл < SimpleSAML_HOME >/metadata/saml20-idp-hosted.php и добавьте этот код ниже. В следующем примере uid будет пропущен как NameID через SimpleSAMLphp IdP в Portal for ArcGIS после аутентификации пользователя.
    '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. Зарегистрируйте SimpleSAMLphp как провайдер идентификации для вашей организации Portal for ArcGIS.
    1. Войдите на веб-сайт портала в качестве администратора вашей организации и щелкните Моя организация > Изменить настройки > Безопасность.
    2. В разделе Корпоративные учетные записи щелкните кнопку Установить провайдера идентификации и введите в открывшемся окне имя вашей организации (к примеру, City of Redlands). При входе пользователей на веб-сайт портала данный текст отображается внутри строки входа SAML (например, Использование учетной записи City of Redlands).
      Примечание:

      Вы можете зарегистрировать только одного провайдера корпоративной идентификации для вашего портала.

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

      Рекомендуется назначить хотя бы одну корпоративную учетную запись в качестве администратора портала и отключить или удалить учетную запись основного администратора. Также рекомендуется отключить кнопку Создать учетную запись и страницу настройки учетной записи (signup.html) на веб-сайте портала, чтобы пользователи не могли создавать собственные учетные записи. Подробные инструкции см. в разделе Настройка SAML-совместимого провайдера идентификации для работы с порталом.

    4. Введите метаданные для провайдера идентификации, используя один из трех приведенных ниже вариантов:

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

      Примечание:

      Если ваш провайдер идентификации имеет самозаверенный сертификат, возникнет ошибка при попытке указать URL по протоколу HTTPS для метаданных. Ошибка возникнет из-за того, что Portal for ArcGIS не сможет проверить самозаверенный сертификат провайдера идентификации. Или используйте в URL-адресе протокол HTTP, или воспользуйтесь другими опциями, как указано ниже, либо настройте провайдер идентификации на работу с доверенным сертификатом.

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

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

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

    Для настроек Шифровать утверждения и Включить подписанный запрос используется сертификат samlcert из хранилища ключей портала. Чтобы воспользоваться новым сертификатом, удалите сертификат samlcert, создайте новый с тем же псевдонимом (samlcert), следуя шагам в разделе Импорт сертификата на портал, и перезапустите портал.

  5. Вы также можете ввести в портал метаданные, относящиеся к корпоративным группам в вашем хранилище идентификаций:
    1. Войдите в ArcGIS Portal Directory в качестве администратора вашей организации. URL-адрес имеет вид https://webadaptorhost.domain.com/webadaptorname/portaladmin.
    2. Щелкните Безопасность > Конфигурация > Обновить хранилище аутентификаций.
    3. Поместите информацию о конфигурации группы в формате JSON в текстовое поле Хранилище конфигурации группы (в формате JSON).
      • Скопируйте приведенный текст и измените его с учетом настроек вашего сайта:

        {
          "type": "LDAP",  "properties": {
            "userPassword": "secret",    "isPasswordEncrypted": "false",    "user": "uid=admin,ou=system",    "ldapURLForUsers": "ldaps://bar2:10636/ou=users,ou=ags,dc=example,dc=com",    "ldapURLForRoles": "ldaps://bar2:10636/dc=example,dc=com",    "usernameAttribute": "cn",    "caseSensitive": "false",    "userSearchAttribute": "cn",    "memberAttributeInRoles": "member",    "rolenameAttribute":"cn"
          }
        }

        В большинстве случаев вам будет необходимо изменить только значения для параметров user, userPassword, ldapURLForUsers и ldapURLForRoles. URL для вашего LDAP должен предоставляться администратором LDAP.

        В приведенном выше примере URL-адрес LDAP относится к пользователям в определенном OU (ou=пользователи). Когда пользователи существуют в нескольких OU, URL-адрес LDAP может указывать на более высокий уровень OU или даже, при необходимости, на корневой уровень. В этом случае URL-адрес будет выглядеть несколько иначе:

        "ldapURLForUsers": "ldaps://bar2:10636/dc=example,dc=com",

        Учетной записи, которую вы используете для параметров пользователя, необходимо иметь права доступа для просмотра названий групп в вашей организации. Несмотря на то, что вы вводите пароль в виде текста, он будет зашифрован при сохранении в директорию конфигурации портала и при просмотре.

        Если ваш LDAP не чувствителен к регистру, установите для параметра caseSensitive значение false.

    4. После того как вы закончили вводить JSON для пользовательской конфигурации хранилища, щелкните Обновить конфигурацию для сохранения изменений и повторного запуска портала.

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

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

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

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

    В следующем примере uid пропущен как NameID через SimpleSAMLphp IdP в Portal for ArcGIS после аутентификации пользователя. (Замените webadaptorhost.domain.com.webadaptorname на 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. Если выбрана дополнительная настройка Шифровать утверждения при регистрации SimpleSAMLphp в качестве поставщика корпоративных учетных записей, добавьте атрибут ниже в конце настройки, которая была добавлена в шаге 1.
    /*
      Whether assertions sent to this SP should be encrypted. The default value is FALSE.  */
      'assertion.encryption' => true,
    );