Настройка Shibboleth

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

Примечание:

Чтобы гарантировать защищенные настройки учетных записей SAML см. рекомендации по безопасности SAML.

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

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

ArcGIS Enterprise поддерживает получение email-адреса пользователя, информацию о его участии в группах, указанного имени и фамилии от поставщика удостоверений SAML.

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

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

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

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

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

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

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

    Примечание:

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

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

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

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

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

    2. Настройте ArcGIS Enterprise в качестве проверенного провайдера сервисов в Shibboleth посредством задания нового элемента MetadataProvider в файле SHIBBOLETH_HOME/conf/metadata-providers.xml s.

      Добавьте фрагмент кода ниже с корневой элемент 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 и ArcGIS Enterprise.

    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.