Введение
Вы можете настроить Shibboleth 2.x — 3.x в качестве поставщика учетных записей (IDP) для корпоративных учетных записей в Р7-Офис. Процесс настройки состоит из двух основных шагов: регистрации вашего поставщика учетных записей в разделе SSO Панели управления Р7-Офис и регистрации Р7-Офис SP в поставщике учетных записей Shibboleth.
Р7-Офис SP поддерживает поток атрибутов givenName
, sn
, title
, locality
, mobile
и mail
корпоративной учетной записи от корпоративного поставщика учетных записей. Когда пользователь осуществляет вход с использованием корпоративной учетной записи, и Р7-Офис SP получает атрибуты с именами givenName
, sn
и mail
(обязательные атрибуты), Р7-Офис SP заполняет полное имя и адрес электронной почты для учетной записи пользователя значениями, полученными от поставщика учетных записей.
Регистрация Shibboleth в качестве корпоративного поставщика учетных записей в Р7-Офис SP
- Убедитесь, что вы зашли в качестве администратора вашей организации в Панель управления Р7-Офис, и щелкните вкладку SSO.Примечание: Вы можете зарегистрировать только одного корпоративного поставщика учетных записей для вашей организации на портале Р7-Офис.
- Включите SSO, используя переключатель Включить аутентификацию с помощью технологии единого входа.
- Введите метаданные для поставщика учетных записей, используя один из трех приведенных ниже вариантов:
- По ссылке (Загрузить данные) – если метаданные Shibboleth IdP доступны извне по ссылке (например, https://{shibboleth-idp-domain}/idp/shibboleth), вставьте ссылку в поле URL-адрес XML-файла метаданных IdP и нажмите кнопку со стрелкой вверх. После этого все настройки отобразятся в расширенной форме.
- Файл (ВЫБРАТЬ ФАЙЛ) – по умолчанию Shibboleth предоставляет файл метаданных IdP в
SHIBBOLETH_HOME/metadata
. Если файл метаданных доступен, загрузите его, используя кнопку ВЫБРАТЬ ФАЙЛ и указав файлSHIBBOLETH_HOME/metadata/idp-metadata.xml
с локальной машины. После этого все настройки отобразятся в расширенной форме. - Параметры – если файл с метаданными недоступен, вручную введите значения и укажите запрашиваемые параметры: Идентификатор сущности поставщика учетных записей, URL-адрес конечной точки единого входа IdP, URL-адрес конечной точки единого выхода IdP, сертификаты для подписи и прочее. Для получения этих значений обратитесь к администратору Shibboleth.
- В поле Пользовательская надпись для кнопки входа вы можете ввести любой текст вместо стандартного «Single Sign-on«. Этот текст будет отображаться на кнопке для входа с помощью сервиса Single Sign-on на странице аутентификации портала Р7-Офис.
- Если ваш Shibboleth IdP требует, чтобы входящие данные были подписаны и/или зашифрованы, то необходимо создать/добавить сертификаты для этого в разделе Сертификаты поставщика сервиса. В расширенных настройках также можно указать, какие запросы стоит подписывать, нужно ли расшифровывать данные, выбрать соответствующие алгоритмы подписи и расшифровки.
- В разделе Сопоставление атрибутов укажите соответствие полей модуля «Люди» Р7-Офис атрибутам пользователя, которые будут возвращаться из Shibboleth IdP.
- Нажмите кнопку СОХРАНИТЬ.
- Должен открыться раздел Метаданные поставщика сервиса Р7-Офис.
- Проверьте, что настройки доступны публично, кликнув по кнопке СКАЧАТЬ XML-ФАЙЛ МЕТАДАННЫХ ПОСТАВЩИКА СЕРВИСА. Должно отобразиться содержимое XML-файла.
Регистрация Р7-Офис в качестве проверенного поставщика сервиса в Shibboleth IdP
- Настройте Р7-Офис SP в качестве проверяющей стороны в Shibboleth.
- Получите файл метаданных вашего портала Р7-Офис и сохраните его как XML-файл. Для получения файла метаданных войдите в Панель управления Р7-Офис в качестве администратора и щелкните вкладку SSO. Нажмите на кнопку СКАЧАТЬ XML-ФАЙЛ МЕТАДАННЫХ ПОСТАВЩИКА СЕРВИСА и сохраните данные как файл sp-R7-OFFICE.xml.
- Добавьте Р7-Офис в качестве проверенного поставщика сервисов в Shibboleth посредством задания нового элемента
MetadataProvider
в файлеSHIBBOLETH_HOME/conf/metadata-providers.xml
. Для этого добавьте приведенный ниже фрагмент кода в корневой элементMetadataProvider
. Предоставьте путь к XML-файлу метаданных вашей организации (сохраненному на предыдущем шаге a):<MetadataProvider id="R7-OFFICESP" xsi:type="FilesystemMetadataProvider" metadataFile="<PATH_TO_THE_SAVED_METADATA>/metadata/sp-R7-OFFICE.xml"/>
- Настройте атрибуты пользователя, которые будут возвращаться из Shibboleth IdP.
- Отредактируйте файл
SHIBBOLETH_HOME/conf/attribute-resolver.xml
. Закомментируйте или удалите все существующие определения атрибутов и коннекторов данных. - Добавьте следующую запись атрибутов в раздел
resolver:AttributeResolver
.
<resolver:AttributeResolver xmlns:resolver="urn:mace:shibboleth:2.0:resolver" xmlns:pc="urn:mace:shibboleth:2.0:resolver:pc" xmlns:ad="urn:mace:shibboleth:2.0:resolver:ad" xmlns:dc="urn:mace:shibboleth:2.0:resolver:dc" xmlns:enc="urn:mace:shibboleth:2.0:attribute:encoder" xmlns:sec="urn:mace:shibboleth:2.0:security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd urn:mace:shibboleth:2.0:resolver:pc http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-pc.xsd urn:mace:shibboleth:2.0:resolver:ad http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-ad.xsd urn:mace:shibboleth:2.0:resolver:dc http://shibboleth.net/schema/idp/shibboleth-attribute-resolver-dc.xsd urn:mace:shibboleth:2.0:attribute:encoder http://shibboleth.net/schema/idp/shibboleth-attribute-encoder.xsd urn:mace:shibboleth:2.0:security http://shibboleth.net/schema/idp/shibboleth-security.xsd"> <!-- ========================================== --> <!-- Attribute Definitions --> <!-- ========================================== --> <!-- Schema: Core schema attributes--> <resolver:Dependency ref="myLDAP" /> <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:mail" encodeType="false" /> <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:0.9.2342.19200300.100.1.3" friendlyName="mail" encodeType="false" /> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="ad:Simple" id="mobileNumber" sourceAttributeID="mobile"> <resolver:Dependency ref="myLDAP" /> <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:mobile" encodeType="false" /> <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:0.9.2342.19200300.100.1.41" friendlyName="mobile" encodeType="false" /> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="ad:Simple" id="surname" sourceAttributeID="sn"> <resolver:Dependency ref="myLDAP" /> <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:sn" encodeType="false" /> <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.4" friendlyName="sn" encodeType="false" /> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="ad:Simple" id="locality" sourceAttributeID="l"> <resolver:Dependency ref="myLDAP" /> <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:l" encodeType="false" /> <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.7" friendlyName="l" encodeType="false" /> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="ad:Simple" id="title" sourceAttributeID="title"> <resolver:Dependency ref="myLDAP" /> <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:title" encodeType="false" /> <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.12" friendlyName="title" encodeType="false" /> </resolver:AttributeDefinition> <resolver:AttributeDefinition xsi:type="ad:Simple" id="givenName" sourceAttributeID="givenName"> <resolver:Dependency ref="myLDAP" /> <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:givenName" encodeType="false" /> <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.42" friendlyName="givenName" encodeType="false" /> </resolver:AttributeDefinition> </resolver:AttributeResolver>
- Настройте атрибуты для включения в поставщик сервиса. Отредактируйте файл
SHIBBOLETH_HOME/conf/attribute-filter.xml
и добавьте следующее:
<AttributeFilterPolicyGroup id="ShibbolethFilterPolicy" xmlns="urn:mace:shibboleth:2.0:afp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mace:shibboleth:2.0:afp http://shibboleth.net/schema/idp/shibboleth-afp.xsd"> <!-- Release some attributes to an SP. --> <AttributeFilterPolicy id="R7-OFFICESP"> <PolicyRequirementRule xsi:type="OR"> <Rule xsi:type="Requester" value="https://{portal-domain}/sso/metadata" /> </PolicyRequirementRule> <AttributeRule attributeID="mail"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> <AttributeRule attributeID="surname"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> <AttributeRule attributeID="givenName"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> <AttributeRule attributeID="mobileNumber"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> <AttributeRule attributeID="title"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> <AttributeRule attributeID="locality"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> </AttributeFilterPolicy> </AttributeFilterPolicyGroup>
Замените{portal-domain}
на доменное имя вашего портала. - Отредактируйте файл
- Отредактируйте файл
SHIBBOLETH_HOME/conf/relying-party.xml
.- Скопируйте приведенный ниже XML-код и вставьте его в элементы
shibboleth.RelyingPartyOverrides
, чтобы перезаписать настройки по умолчанию для Shibboleth IdP:
<util:list id="shibboleth.RelyingPartyOverrides"> <bean parent="RelyingPartyByName" c:relyingPartyIds="https://{portal-domain}/sso/metadata"> <property name="profileConfigurations"> <list> <bean parent="Shibboleth.SSO" p:postAuthenticationFlows="attribute-release" /> <bean parent="SAML2.SSO" p:encryptAssertions="true" p:postAuthenticationFlows="attribute-release" /> <bean parent="SAML2.Logout" /> </list> </property> </bean>
Примечание: Замените{portal-domain}
на доменное имя вашего портала. - Скопируйте приведенный ниже XML-код и вставьте его в элементы
- Перезапустите программный агент (Linux) или службу (Windows) Shibboleth.
Проверка работы Р7-Офис SP и Shibboleth IdP
Вход в Р7-Офис на стороне SP
- Перейдите на страницу аутентификации Р7-Офис (например, https://myportal-address.com/auth.aspx).
- Нажмите на кнопку Single sign-on (название кнопки может отличаться, если вы указали свой вариант при настройке Р7-Офис SP). Если этой кнопки нет, то SSO не включен.
- Если всё настроено верно в SP и IdP, мы будем перенаправлены на форму логина в Shibboleth IdP:
- Введите логин и пароль учетной записи в Shibboleth IdP и поставьте галочку Don’t Remember Login.
- Если учетные данные указаны правильно, откроется новое окно. Разрешите передачу данных, нажав на кнопку Accept.
- Если всё пройдёт хорошо, мы будем перенаправлены на главную страницу портала (если такого пользователя нет на портале, он будет создан автоматически, а если данные были изменены в IdP, они будут обновлены).
Профили пользователей, добавленных с помощью SSO-аутентификации
Возможность редактирования профилей пользователей, созданных с помощью SSO-аутентификации, ограничена. Поля профиля пользователя, полученные из IdP, заблокированы для редактирования (а именно: Имя
, Фамилия
, Email
, Позиция
и Местоположение
). Эти поля можно отредактировать только из вашей учетной записи в IdP.
Пользователи, созданные с помощью SSO-аутентификации, отмечены в списке пользователей значком SSO для администраторов портала.
Чтобы выйти из Shibboleth IdP (если не была поставлена галочка Don’t Remember Login при логине), нужно перейти по ссылке следующего вида: https://{shibboleth-idp-domain}/idp/profile/Logout