Настройка Shibboleth

Вы можете настроить Shibboleth 3.2x and 3.3.x как провайдер идентификации (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.

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

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

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

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

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

  6. Введите метаданные для IDP, используя один из двух приведенных ниже вариантов:
    • Файл – По умолчанию Shibboleth предоставляет файл метаданных IdP в SHIBBOLETH_HOME/metadata. Если файл метаданных доступен, выберите опцию Файл для метаданных провайдера идентификации SAML 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.
  7. Доступна расширенная настройка дополнительных опций:
    • Шифровать утверждения—включите эту опцию, если Shibboleth будет настроен на шифрование ответов утверждений SAML.
    • Включить запрос с входом – включите эту опцию для входа Portal for ArcGIS в запрос аутентификации SAML, отправляемый в Shibboleth.
    • ID объекта – Обновите это значение, чтобы использовать новый ID объекта, чтобы уникально идентифицировать ваш портал в Shibboleth.
    • Обновить профиль для входа — включите эту опцию, чтобы ArcGIS Enterprise обновлял атрибуты givenName, и email address пользователей, если они изменились с момента их последнего входа.
    • Включить членство в группе, основанное на SAML—включите эту опцию, чтобы позволить пользователям организации связать заданные корпоративные группы, основанные на SAML с группами ArcGIS Enterprise во время процесса создания групп.

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

    Примечание:

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

  8. Щелкните Сохранить.

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

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

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

    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="https://www.w3.org/2001/XMLSchema-instance"
      	xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata https://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 и surname из файла 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:1.1: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:1.1: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:1.1:nameid-format:unspecified"
                p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />
    

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