Skip To Content

Настройка Shibboleth

Вы можете настроить 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

  1. Войдите на веб-сайт портала в качестве администратора вашей организации и щелкните Моя организация > Изменить настройки > Безопасность.
  2. В разделе Корпоративные учетные записи щелкните кнопку Установить провайдера идентификации и введите в открывшемся окне имя вашей организации (к примеру, City of Redlands). При входе пользователей на веб-сайт портала данный текст отображается внутри строки входа SAML (например, Использование учетной записи City of Redlands).
    Примечание:

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

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

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

  4. Введите метаданные для провайдера идентификации, используя один из двух приведенных ниже вариантов:
    • Файл – По умолчанию Shibboleth представляет файл метаданных IdP в SHIBBOLETH_HOME/metadata. Если файл метаданных доступен, выберите опцию Файл для метаданных провайдера идентификации и перейдите к файлу SHIBBOLETH_HOME/metadata/idp-metadata.xml.
    • Параметры – выберите данную опцию, если файл недоступен. Вручную введите значения и укажите запрашиваемые параметры: URL для входа и сертификат. Для получения этих значений свяжитесь с администратором Shibboleth.
  5. Доступна расширенная настройка дополнительных опций:
    • Шифровать утверждения – Выберите эту опцию для шифровки ответов утверждений SAML, если настроен Shibboleth.
    • Включить подписанный запрос – Выберите эту опцию, чтобы заставить Portal for ArcGIS подписывать запрос аутентификации SAML, который отправляется на Shibboleth.
    • ID объекта – Обновите это значение, чтобы использовать новый ID объекта, чтобы уникально идентифицировать ваш портал в Shibboleth.

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

    Примечание:

    В данный момент, Произвести выход в провайдер аутентификации и URL-адрес выхода не поддерживаются.

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

        {
          "type": "WINDOWS",
          "properties": {
            "isPasswordEncrypted": "false",
            "userPassword": "secret",
            "user": "mydomain\\winaccount"
          }
        }

        В большинстве случаев вам будет необходимо изменить только значения для параметров user и userPassword. Несмотря на то, что вы вводите пароль в виде текста, он будет зашифрован при сохранении в директорию конфигурации портала и при просмотре. Для учетной записи, которую вы используете для параметров user, необходимы права доступа только для просмотра имен групп Windows в сети. Если возможно, используйте учетную запись с паролем, срок действия которого не истекает.

      • Если в качестве хранилища идентификации используется LDAP, скопируйте следующий текст и измените его, указав нужные параметры вашего сайта:

        {
          "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 в качестве проверенного провайдера сервиса в Shibboleth

  1. Настройка Portal for ArcGIS в качестве проверяющей стороны в Shibboleth.
    1. Получите файл метаданных вашей организации портала и сохраните его как XML-файл.

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

    2. Настройте 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" />
  2. Настройте аутентификацию пользователя. В следующем примере 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

  3. Настройте атрибуты пользователя, которые будут возвращаться Shibboleth.
    1. Отредактируйте SHIBBOLETH_HOME/conf/attribute-resolver.xml. Создайте комментарии или удалите все существующие определения атрибутов и коннекторов данных.
    2. Скопируйте определения для 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>

    3. Скопируйте раздел коннектора данных LDAP из SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml в SHIBBOLETH_HOME/conf/attribute-resolver.xml.
    4. Настройте атрибуты для включения в провайдер сервиса. Отредактируйте файл 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>
  4. Отредактируйте файл SHIBBOLETH_HOME/conf/relying-party.xml.
    1. Скопируйте 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.

    2. Выключите шифрование подтверждений в провайдере аутентификации 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>
  5. Отредактируйте файл 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'} }" />

  6. помощью команды Перезапустить программный агент (Linux) или службы (Windows) Shibboleth.