Введение

Система интернет-идентификации

Shibboleth — это система единого входа для компьютерных сетей и Интернета. Она позволяет пользователям входить в различные системы, управляемые федерациями разных организаций или учреждений, используя единую учётную запись. Такие федерации часто представляют собой университеты или государственные организации. Инициатива Shibboleth Internet2 разработала архитектуру и реализацию с открытым исходным кодом для управления идентификацией и федеративной идентификации, основанной на аутентификации и авторизации (или контроле доступа) с использованием языка разметки утверждений безопасности (SAML). Федеративная идентификация обеспечивает обмен информацией о пользователях между доменами безопасности в рамках федерации. Это позволяет осуществлять единый вход в различные домены и избавляет поставщиков контента от необходимости поддерживать собственные имена пользователей и пароли. Поставщики идентификационной информации (Identity Providers, IdP) предоставляют данные о пользователях, а поставщики услуг (Service Providers, SPs) используют эти данные для предоставления доступа к защищённому контенту.

История

Проект Shibboleth вырос из Internet2. Сегодня проект управляется консорциумом Shibboleth. Два из наиболее популярных программных компонентов, управляемых консорциумом Shibboleth, — это Shibboleth Identity Provider и Shibboleth Service Provider, оба из которых являются реализациями SAML. Проект был назван в честь идентификационной фразы, использовавшейся в Библии (Книга Судей), поскольку ефремитяне не могли произносить звук «ш». Проект Shibboleth был начат в 2000 году для упрощения обмена ресурсами между организациями с несовместимыми инфраструктурами аутентификации и авторизации. Архитектурные работы проводились более года до начала разработки программного обеспечения. После разработки и тестирования Shibboleth IdP 1.0 был выпущен в июле 2003 года, а затем в августе 2005 года — Shibboleth IdP 1.3. Версия 2.0 программного обеспечения Shibboleth стала крупным обновлением, выпущенным в марте 2008 года. Она включала в себя как компоненты IdP, так и SP, но, что более важно, Shibboleth 2.0 поддерживал SAML 2.0. Протоколы Shibboleth и SAML разрабатывались примерно в одно и то же время. С самого начала Shibboleth был основан на SAML, но там, где SAML оказывался недостаточным, Shibboleth находил импровизированные решения, и разработчики Shibboleth реализовывали функции, компенсирующие отсутствие возможностей в SAML 1.1. Некоторые из этих функций впоследствии были включены в SAML 2.0, и в этом смысле Shibboleth внес вклад в развитие протокола SAML. Возможно, наиболее важным вкладом стал протокол Shibboleth AuthnRequest. Поскольку протокол SAML 1.1 изначально был ориентирован на IdP, Shibboleth разработал простой протокол запроса аутентификации на основе HTTP, который превратил SAML 1.1 в протокол, ориентированный на SP. Этот протокол был впервые реализован в Shibboleth IdP 1.0 и впоследствии усовершенствован в Shibboleth IdP 1.3. Развивая эту раннюю работу, Liberty Alliance представил полностью расширенный протокол AuthnRequest в Liberty Identity Federation Framework. В конечном итоге Liberty ID FF 1.2 был передан в OASIS, который лег в основу стандарта OASIS SAML 2.0.

Архитектура

Shibboleth — это веб-технология, реализующая профили артефактов и передачи атрибутов SAML, включая компоненты поставщика удостоверений (IdP) и поставщика услуг (SP). Shibboleth 1.3 имеет собственное техническое описание, архитектурный документ и документ соответствия, основанные на спецификациях SAML 1.1.

Шибболет 2.0

Shibboleth 2.0 базируется на стандартах SAML 2.0. IdP в Shibboleth 2.0 должен выполнять дополнительную обработку для поддержки пассивных и принудительных запросов на аутентификацию в SAML 2.0. SP может запрашивать у IdP определенный метод аутентификации. Shibboleth 2.0 обеспечивает расширенные возможности шифрования.

Атрибуты

Контроль доступа в Shibboleth осуществляется путем сопоставления атрибутов, предоставляемых поставщиками удостоверений (IdP), с правилами, определенными поставщиками услуг (SP). Атрибут – это любая информация о пользователе, такая как "член данной группы", "Алиса Смит" или "лицензия по договору А". Идентичность пользователя рассматривается как атрибут и передается только при явном запросе, что обеспечивает конфиденциальность пользователя. Атрибуты могут быть реализованы на Java или получены из каталогов и баз данных. Чаще всего используются стандартные атрибуты X.520, но новые атрибуты могут быть определены произвольно, при условии, что они понимаются и интерпретируются одинаково IdP и SP в ходе транзакции.

Доверие

Доверие между доменами реализуется с использованием криптографии с открытым ключом (часто просто сертификатов сервера TLS) и метаданных, описывающих провайдеров. Использование передаваемой информации регулируется соглашениями. Федерации часто используются для упрощения этих взаимоотношений путем объединения большого числа провайдеров, согласующихся на использование общих правил и контрактов.

Разработка

Shibboleth – это программное обеспечение с открытым исходным кодом, распространяемое по лицензии Apache 2. Многие расширения были разработаны другими сообществами.

Усыновление

Во многих странах мира были созданы федерации для формирования инфраструктуры доверия для обмена информацией с использованием программного обеспечения SAML и Shibboleth. Многие крупные поставщики контента поддерживают доступ на основе Shibboleth. В феврале 2006 года Совместный комитет по информационным системам (JISC) советов по финансированию высшего образования Англии, Шотландии, Уэльса и Северной Ирландии объявил о переходе от системы аутентификации Athens к системе управления доступом, основанной на технологии Shibboleth. С тех пор комитет пересмотрел свою позицию и теперь поддерживает решение для федеративного управления доступом, а не сам Shibboleth.