Вы можете настроить Shibboleth 3.2x в качестве провайдера идентификации (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 от провайдера идентификации, чтобы пользователь мог получать уведомления.
Регистрация Shibboleth в качестве провайдера корпоративной идентификации в Portal for ArcGIS
- Войдите на веб-сайт портала в качестве администратора вашей организации и щелкните Моя организация > Изменить настройки > Безопасность.
- В разделе Корпоративные учетные записи щелкните кнопку Установить провайдера идентификации и введите в открывшемся окне имя вашей организации (к примеру, City of Redlands). При входе пользователей на веб-сайт портала данный текст отображается внутри строки входа SAML (например, Использование учетной записи City of Redlands).
Примечание:
Вы можете зарегистрировать только одного провайдера корпоративной идентификации для вашего портала.
- Укажите, смогут ли пользователи вступать в организацию Автоматически или После добавления учетных записей в портал. Выбор первой опции позволяет пользователям входить в организацию с указанием корпоративной учетной записи без вмешательства администратора. Их учетные записи автоматически регистрируются в организации при первом входе. Во втором случае пользователям потребуется регистрация соответствующих учетных записей в организации, выполняемая администратором посредством специальной утилиты командной строки или скрипта Python. После регистрации учетных записей пользователи смогут входить в организацию.
Подсказка:
Рекомендуется назначить хотя бы одну корпоративную учетную запись в качестве администратора портала и отключить или удалить учетную запись основного администратора. Также рекомендуется отключить кнопку Создать учетную запись и страницу настройки учетной записи (signup.html) на веб-сайте портала, чтобы пользователи не могли создавать собственные учетные записи. Подробные инструкции см. в разделе Настройка SAML-совместимого провайдера идентификации для работы с порталом.
- Введите метаданные для провайдера идентификации, используя один из двух приведенных ниже вариантов:
- Файл – По умолчанию Shibboleth представляет файл метаданных IdP в SHIBBOLETH_HOME/metadata. Если файл метаданных доступен, выберите опцию Файл для метаданных провайдера идентификации и перейдите к файлу SHIBBOLETH_HOME/metadata/idp-metadata.xml.
- Параметры – выберите данную опцию, если файл недоступен. Вручную введите значения и укажите запрашиваемые параметры: URL для входа и сертификат. Для получения этих значений свяжитесь с администратором Shibboleth.
- Доступна расширенная настройка дополнительных опций:
- Шифровать утверждения – Выберите эту опцию для шифровки ответов утверждений SAML, если настроен Shibboleth.
- Включить подписанный запрос – Выберите эту опцию, чтобы заставить Portal for ArcGIS подписывать запрос аутентификации SAML, который отправляется на Shibboleth.
- ID объекта – Обновите это значение, чтобы использовать новый ID объекта, чтобы уникально идентифицировать ваш портал в Shibboleth.
Для настроек Шифровать утверждения и Включить подписанный запрос используется сертификат samlcert из хранилища ключей портала. Чтобы воспользоваться новым сертификатом, удалите сертификат samlcert, создайте новый с тем же псевдонимом (samlcert), следуя шагам в разделе Импорт сертификата на портал, и перезапустите портал.
Примечание:
В данный момент, Произвести выход в провайдер аутентификации и URL-адрес выхода не поддерживаются.
- Вы также можете ввести в портал метаданные, относящиеся к корпоративным группам в вашем хранилище идентификаций:
- Войдите в ArcGIS Portal Directory в качестве администратора вашей организации. URL-адрес имеет вид https://webadaptorhost.domain.com/webadaptorname/portaladmin.
- Щелкните Безопасность > Конфигурация > Обновить хранилище аутентификаций.
- Поместите информацию о конфигурации группы в формате 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.
- После того как вы закончили вводить JSON для пользовательской конфигурации хранилища, щелкните Обновить конфигурацию для сохранения изменений и повторного запуска портала.
Регистрация Portal for ArcGIS в качестве проверенного провайдера сервиса в Shibboleth
- Настройка Portal for ArcGIS в качестве проверяющей стороны в Shibboleth.
- Получите файл метаданных вашей организации портала и сохраните его как XML-файл.
Для получения файла метаданных войдите в вашу организацию в качестве администратора и откройте страницу вашей организации. Щелкните кнопку Редактировать настройки, перейдите на вкладку Безопасность, и в разделе Корпоративные учетные записи щелкните кнопку Получить провайдера сервиса.
- Настройте Portal for ArcGIS в качестве проверенного провайдера сервисов в Shibboleth, задав новый элемент MetadataProvider в файле SHIBBOLETH_HOME/conf/metadata-providers.xml .
Добавьте фрагмент кода ниже с корневой элемент MetadataProvider. Предоставьте путь к XML-файлу метаданных вашей организации (сохраненному на шаге 2.1.a).
<MetadataProvider id="EsriSP" xsi:type="FilesystemMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd" failFastInitialization="true" metadataFile=" <PATH_TO_THE_SAVED_METADATA>/esri-sp-metadata.xml" />
- Получите файл метаданных вашей организации портала и сохраните его как XML-файл.
- Настройте аутентификацию пользователя. В следующем примере LDAP Directory Server настроен как пользовательское хранилище путем обновления необходимых свойств в файле SHIBBOLETH_HOME/conf/ldap.properties:.
idp.authn.LDAP.authenticator = bindSearchAuthenticator
idp.authn.LDAP.ldapURL = ldaps://myldap.example.org:port
idp.authn.LDAP.baseDN = ou=People,dc=example,dc=org
idp.authn.LDAP.userFilter= (uid={user})
idp.authn.LDAP.bindDN = cn=readonlyuser,dc=example,dc=org
idp.authn.LDAP.bindDNCredential = userpassword
- Настройте атрибуты пользователя, которые будут возвращаться Shibboleth.
- Отредактируйте SHIBBOLETH_HOME/conf/attribute-resolver.xml. Создайте комментарии или удалите все существующие определения атрибутов и коннекторов данных.
- Скопируйте определения для mail и givenName из файла SHIBBOLETH_HOME/conf/attribute-resolver-full.xml в файл SHIBBOLETH_HOME/conf/attribute-resolver.xml. Затем добавьте следующую запись для атрибута, который будет использоваться в качестве Name ID:
<resolver:AttributeDefinition xsi:type="ad:Simple" id="<NameID attribute>" sourceAttributeID ="<NameID attribute>"> <resolver:Dependency ref="myLDAP" /> <resolver:AttributeEncoder xsi:type="SAML2StringNameID" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" /> </resolver:AttributeDefinition>
- Скопируйте раздел коннектора данных LDAP из SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml в SHIBBOLETH_HOME/conf/attribute-resolver.xml.
- Настройте атрибуты для включения в провайдер сервиса. Отредактируйте файл SHIBBOLETH_HOME/conf/attribute-filter.xml и добавьте следующее:
Примечание:
Замените mygis.maps.arcgis.com на ID объекта вашей организации.
<AttributeFilterPolicy id="ArcGIS"> <PolicyRequirementRule xsi:type="Requester" value="mygis.maps.arcgis.com" /> <AttributeRule attributeID="<NameID Attribute>"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> <AttributeRule attributeID="givenName"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> <AttributeRule attributeID="mail"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> </AttributeFilterPolicy>
- Отредактируйте файл SHIBBOLETH_HOME/conf/relying-party.xml.
- Скопируйте XML-код ниже и вставьте его в элементы shibboleth.RelyingPartyOverrides, чтобы перезаписать настройки по умолчанию для провайдера аутентификации Shibboleth:
<util:list id="shibboleth.RelyingPartyOverrides"> <bean parent="RelyingPartyByName" c:relyingPartyIds="mygis.maps.arcgis.com"> <property name="profileConfigurations"> <list> <bean parent="SAML2.SSO" p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" /> </list> </property> </bean> </util:list>
Примечание:
Замените mygis.maps.arcgis.com на ID объекта вашей организации.
Параметр nameIDFormatPrecedence предписывает провайдеру аутентификации отсылать атрибут ID имени SAML в unspecified формате, который необходим ArcGIS Online и Portal for ArcGIS.
- Выключите шифрование подтверждений в провайдере аутентификации Shibboleth, задав параметр encryptAssertions как false.
<bean parent="RelyingPartyByName" c:relyingPartyIds="mygis.maps.arcgis.com"> <property name="profileConfigurations"> <list> <bean parent="SAML2.SSO" p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" p:encryptAssertions="false" /> </list> </property> </bean>
- Скопируйте XML-код ниже и вставьте его в элементы shibboleth.RelyingPartyOverrides, чтобы перезаписать настройки по умолчанию для провайдера аутентификации Shibboleth:
- Отредактируйте файл SHIBBOLETH_HOME/conf/saml-nameid.xml и замените этот раздел:
<!-- <bean parent="shibboleth.SAML2AttributeSourcedGenerator" p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" p:attributeSourceIds="#{ {'mail'} }" /> -->
следующим:
<bean parent="shibboleth.SAML2AttributeSourcedGenerator" p:format="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />
- помощью команды Перезапустить программный агент (Linux) или службы (Windows) Shibboleth.