Skip To Content

Настройка Shibboleth

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

Примечание:

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

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

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

ArcGIS Online поддерживает получение email-адреса пользователя, информацию о его участии в группах, указанного имени и фамилии от поставщика удостоверений SAML. Рекомендуется передавать email-адрес от корпоративного IDP, чтобы пользователь мог получать уведомления. Это помогает, если пользователь в дальнейшем становится администратором. Наличие адреса электронной почты для учётной записи даёт пользователю возможность получать уведомления о любой административной деятельности и отправлять приглашения другим пользователям для присоединения к организации.

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

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

    Выбор опции Один провайдер идентификации позволяет зарегистрировать один корпоративный IDP для организации ArcGIS Online. Если вы хотите использовать аутентификацию пользователей с корпоративными учетными записями из нескольких IDP, зарегистрируйте распределение на базе SAML, вместо единого IDP.

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

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

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

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

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

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

    2. Добавьте ArcGIS Online в качестве проверенного провайдера сервисов в 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 и 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 ArcGIS Online organization]" />
    			<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 ArcGIS Online organization]">
      <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 ArcGIS Online organization]">
      		<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. Перезапустите программный агент Shibboleth (Linux) или службу (Windows) .