Вы можете настроить SimpleSAMLphp 1.10 и более новых версий в качестве провайдера идентификации (IDP) для учетных записей SAML в Portal for ArcGIS. Процесс настройки состоит из двух основных шагов: регистрации вашего SAML IDP в Portal for ArcGIS и регистрации Portal for ArcGIS в SAML IDP.
Примечание:
Чтобы гарантировать защищенные настройки учетных записей SAML см. рекомендации по безопасности SAML.
Необходимая информация
Portal for ArcGIS должен получить определенную атрибутивную информацию от IDP, когда пользователь входит с использованием учетных записей SAML. Атрибут NameID является обязательным и должен отправляться IDP в ответ на запрос SAML для интеграции работы с Portal for ArcGIS. Так как Portal for ArcGIS использует значение NameID для уникальной идентификации именованного пользователя, рекомендуется для идентификации пользователя использовать постоянное значение. Когда пользователь из IDP осуществляет вход, Portal for ArcGIS создает нового пользователя с именем NameID в хранилище пользователей. Допустимыми символами значения, которое посылается атрибутом ,NameID являются буквы, цифры, _ (нижнее подчеркивание), . (точка) и @ (знак "собачка"). Другие символы будут заменены нижним подчеркиванием в имени пользователя, созданном Portal for ArcGIS.
Portal for ArcGIS поддерживает получение email-адреса пользователя, информацию о его участии в группах, указанного имени и фамилии от поставщика удостоверений SAML.
Регистрация SimpleSAMLphp в качестве SAML IDP в Portal for ArcGIS
- Настройте источник аутентификации в SimpleSAMLphp IdP.
- Создайте источник аутентификации.
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 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', ),
- Настройте источник аутентификации, созданный вами выше, в качестве модуля аутентификации SimpleSAMLphp IdP. Откройте файл metadata/ saml20-idp-hosted.php и добавьте источник аутентификации для использования.
/* * Authentication source to use. Must be one that is configured in * 'config/authsources.php'. */ 'auth' => 'example-ldapApacheDS',
- Создайте источник аутентификации.
- Настройте формат идентификатора имени, поддерживаемый 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', ), ),
- Зарегистрируйте SimpleSAMLphp в качестве провайдера идентификации IDP для вашей организации Portal for ArcGIS .
- Убедитесь, что вы вошли в систему в качестве администратора вашей организации.
- Щелкните Организация вверху сайта, затем выберите вкладку Настройки.
- Щелкните Безопасность в левой части страницы.
- В разделе Учетные записи щелкните кнопку Новая учетная запись SAML и выберите опцию Один провайдер аутентификаций. На странице Задать свойства введите имя своей организации (например, City of Redlands). При входе пользователя на портал веб-сайта данный текст отображается внутри строки входа SAML (например, Использование учетной записи City of Redlands).
Примечание:
Вы можете зарегистрировать только один корпоративный SAML IDP или одну интеграцию IDP для своего портала.
- Выберите, смогут ли пользователи вступать в организацию Автоматически или После добавления учетных записей на портал. Выбор первой опции позволяет пользователям входить в организацию с указанием учетной записи без SAML без вмешательства администратора. Их учетные записи автоматически регистрируются в организации при первом входе. Во втором случае пользователям потребуется регистрация соответствующих учетных записей в организации, выполняемая администратором посредством специальной утилиты командной строки или скрипта Python. После регистрации учетных записей пользователи смогут входить в организацию.
Подсказка:
Рекомендуется назначить хотя бы одну учетную запись SAML в качестве администратора портала и отключить или удалить первичную учетную запись администратора. Также рекомендуется отключить кнопку Создать учетную запись на веб-сайте портала, чтобы пользователи не могли создавать собственные учетные записи. Подробные инструкции см. в разделе Настройка SAML-совместимого провайдера идентификации для работы с порталом.
- Введите метаданные для IDP, используя один из трех приведенных ниже вариантов:
URL—выберите данную опцию, если доступен URL-адрес метаданных SimpleSAMLphp. Обычно это https://<simpleSAML-server>/<saml-app-name>/saml2/idp/metadata.php.
Примечание:
Если ваш SAML IDP имеет самозаверенный сертификат, возникнет ошибка при попытке указать URL по протоколу HTTPS для метаданных. Ошибка возникнет из-за того, что Portal for ArcGIS не сможет проверить самозаверенный сертификат IDP. Либо используйте в URL протокол HTTP, используйте одну из опций, указанных ниже, или настройте IDP на работу с доверенным сертификатом.
Файл – выберите данную опцию, если URL-адрес недоступен. Сохраните метаданные из URL-адреса как XML-файл, и выгрузите файл в Portal for ArcGIS с помощью опции Файл.
Указанные здесь параметры – выберите данную опцию, если недоступны URL-адрес или файл метаданных. Вручную введите значения и укажите запрашиваемые параметры: URL для входа и сертификат, закодированный в формате BASE 64. Для получения этих значений свяжитесь с администратором SimpleSAMLphp.
- Доступна расширенная настройка дополнительных опций:
- Шифровать утверждения—включите эту опцию, если SimpleSAMLphp будет настроен на шифрование ответов утверждений SAML.
- Включить запрос с входом—Включите эту опцию для входа в Portal for ArcGIS в запросе аутентификации SAML, отправляемом в SimpleSAMLphp.
- ID объекта – Обновите это значение, чтобы использовать новый ID объекта, чтобы уникально идентифицировать ваш портал в SimpleSAMLphp.
- Произвести выход из провайдера идентификации—включите эту опцию, чтобы Portal for ArcGIS использовал URL-адрес выхода, чтобы выполнить выход пользователя из SimpleSAMLphp. Введите используемый URL в поле URL-адрес выхода. Если IDP для выполнения входа требуется URL-адрес выхода, необходимо включить опцию Включить подписанный запрос.
- Обновить профиль для входа — включите эту опцию, чтобы ArcGIS Enterprise обновлял атрибуты givenName, и email address пользователей, если они изменились с момента их последнего входа.
- Включить членство в группе, основанное на SAML—включите эту опцию, чтобы позволить пользователям организации связать заданные корпоративные группы, основанные на SAML с группами ArcGIS Enterprise во время процесса создания групп.
- URL-адрес выхода – URL-адрес IDP, использующегося при выходе работающего в данный момент пользователя. Обычно URL-адрес выхода выглядит так: https://idphost.domain.com/simplesaml/saml2/idp/SingleLogoutService.php. Этот URL-адрес задан в элементе SingleLogoutService в файле метаданных IDP. Обычно URL файла метаданных URL – это https://[simpleSAML-server]/simplesaml/saml2/idp/metadata.php.
Для параметров Шифровать утверждения и Включить подписанный запрос используется сертификат samlcert из хранилища ключей портала. Чтобы воспользоваться новым сертификатом, удалите сертификат samlcert, создайте новый с тем же псевдонимом (samlcert), следуя шагам в разделе Импорт сертификата на портал, и перезапустите портал.
- Щелкните Сохранить.
Регистрация Portal for ArcGIS в качестве доверенного провайдера сервиса с SimpleSAMLphp
- Настройте Portal for ArcGIS в качестве доверенного провайдера с SimpleSAMLphp настроив файл <SimpleSAMLphp_HOME>/metatadata/saml20-sp-remote.php.
- Получите файл метаданных XML для вашей организации Portal for ArcGIS.
Для получения файла метаданных войдите в вашу организацию в качестве администратора и откройте страницу вашей организации. Щелкните вкладку Настройки, затем Безопасность в левой части страницы. В разделе Учетные записи в Учетные записи SAML щелкните кнопку Загрузить метаданные провайдера сервиса.
- Конвертируйте XML-файл, который вы получили в предыдущем шаге, в формат PHP.
SimpleSAMLphp предполагает, что метаданные провайдера сервисов будут предоставлены в формате PHP. SimpleSAMLphp включает встроенный конвертер XML метаданных в PHP, который по умолчанию доступен как https://<simpleSAML-server>/<saml-app-name>/admin/metadata-converter.php в вашей инсталляции SimpleSAMLphp. Используйте данный конвертер для конвертирования XML в PHP.
- Откройте файл 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 ( ), );
- Получите файл метаданных XML для вашей организации Portal for ArcGIS.
- .Настройте атрибут, который должен быть передан как 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, );
- Если выбрана дополнительная настройка Шифровать утверждения при регистрации SimpleSAMLphp в качестве провайдера идентификации SAML IDP, добавьте атрибут ниже в конце настройки, которая была добавлена в шаге 1.
/* Whether assertions sent to this SP should be encrypted. The default value is FALSE. */ 'assertion.encryption' => true, );