Skip To Content

Настройка Shibboleth

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

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

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

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

Регистрация Shibboleth в качестве корпоративного IDP в Portal for ArcGIS

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

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

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

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

  4. Введите метаданные для IDP, используя один из двух приведенных ниже вариантов:
    • Файл – По умолчанию Shibboleth представляет файл метаданных IdP в SHIBBOLETH_HOME/metadata. Если файл метаданных доступен, выберите опцию Файл для метаданных провайдера идентификации IDP и перейдите к файлу SHIBBOLETH_HOME/metadata/idp-metadata.xml. Portal for ArcGIS проверяет подпись в ответах утверждений SAML от Shibboleth, используя первый подписанный сертификат в файле метаданных IDP. Однако по умолчанию, первая подпись в файле метаданных Shibboleth IDP предназначена для обратного канала коммуникации TLS, тогда как вторая – для подписи ответов утверждений. Необходимо либо закомментировать первую подпись, либо переместить ее ниже второй, затем использовать этот обновленный файл метаданных для регистрации Shibboleth с Portal for ArcGIS. Подписи задаются с помощью элемента <KeyDescriptor use="signing"> в файле метаданных.
    • Параметры – Выберите данную опцию, если недоступны URL-адрес или файл метаданных. Вручную введите значения и укажите запрашиваемые параметры: URL для входа и сертификат, закодированный в формате BASE 64. Для получения этих значений свяжитесь с администратором Shibboleth.
  5. Доступна расширенная настройка дополнительных опций:
    • Шифровать утверждения – Выберите эту опцию для шифровки ответов утверждений SAML, если настроен Shibboleth.
    • Включить подписанный запрос – Выберите эту опцию, чтобы заставить Portal for ArcGIS подписывать запрос аутентификации SAML, который отправляется на Shibboleth.
    • ID объекта – Обновите это значение, чтобы использовать новый ID объекта, чтобы уникально идентифицировать ваш портал в Shibboleth.
    • Обновить профиль для входа - выберите эту опцию для обновления в Portal for ArcGIS пользовательских атрибутов givenName и email address, если они с момента их последнего входа изменились.
    • Включить членство в группе, основанное на SAML - выберите эту опцию, чтобы позволить пользователям организации связать основанные на SAML группы с группами Portal for ArcGIS в процессе создания группы.

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

    Примечание:

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

Регистрация 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.
    3. Скопируйте раздел коннектора данных LDAP из SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml в SHIBBOLETH_HOME/conf/attribute-resolver.xml. Скопируйте определение uid или другой атрибут, который вы хотите вернуть как атрибут NAMEID.
    4. Настройте атрибуты для включения в провайдер сервиса. Отредактируйте файл SHIBBOLETH_HOME/conf/attribute-filter.xml и добавьте следующее:
    <AttributeFilterPolicy id="ArcGIS">
            <PolicyRequirementRule xsi:type="Requester" value="[The Entity ID of your Portal instance]" />
    			<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:
      <bean parent="RelyingPartyByName" c:relyingPartyIds="[The Entity ID of your Portal instance]">
      <property name="profileConfigurations">
       <list>
        <bean parent="SAML2.SSO"    p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" />
       </list>
      </property>
      </bean>

      Параметр nameIDFormatPrecedence предписывает провайдеру аутентификации IDP отсылать атрибут ID имени SAML в unspecified формате, который необходим ArcGIS Online и Portal for ArcGIS.

    2. Выключите шифрование подтверждений в провайдере аутентификации Shibboleth, задав параметр encryptAssertions как false.
      <bean parent="RelyingPartyByName" c:relyingPartyIds="[The Entity ID of your Portal instance]">
      		<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.