SlideShare a Scribd company logo
1 of 15
Download to read offline
Single Sign On with Drupal and
SimpleSAMLphp
Presented by Andrew Boag
Кто я? Кто Мы?
➔ Мы любим открытые программные средства
➔ Linux (Ubuntu + Debian)
➔ “сделанный на заказ” работа на Java, PHP, Perl, Python, Erlang и
так далее
➔ Drupal
➔ Moodle
➔ Mahara
➔ Koha
➔ Alfresco
➔ OpenStack (есть собственный Cloud в НЗ)
➔ Работа с AWS (Amazon)
➔ Pentaho и другие решения - аналитика
Как мы работаем с Drupal?
➔ Корпоративные сайты на заказ
➔ Государственные сайты на заказ
➔ СМИ в Новой Зеландии, Австралии, Китаи и Европе
➔ Drupal как часть комплексного решения
Что значит Single Sign On – SSO?
➔ Технология единого входа
➔ Есть общая аутентификация
➔ Есть “только один вход в систему” - в системе может быть
некоторыми программыми
➔ Часто встречается решение типа Active Directory/LDAP в составе
Зачем SSO?
➔ На хрен мне еще один логин и пароль …
➔ Легче включить новую программу в существующий состав
➔ Позволять применить “правильную программу” вместо того, что
модифицировать текущий состав или “стороить с нуля”, когда
есть новые требования у заказчика
Какие подходы к SSO?
➔ “Волшебные ссылки” между программыми
➔ Общий Cookie между программыми
➔ OpenID / OAuth решение
➔ Windows NTLM
➔ Еще “bespoke” подход
➔ SAML
Что такое SAML?
➔ Security Assertion Markup Language
➔ От википедии:
SAML - Технология разработана для обмена данными об
аутентификации и авторизации между защищенными
доменами, в частности между поставщиком учётных записей
(сокр. IdP от англ. identity provider) и поставщиком сервиса
(сокр. SP от англ. Service provider). SAML — это открытый
стандарт данных, разработанный консорциумом OASIS.
Что такое SimpleSAMLphp?
➔ https://simplesamlphp.org/
➔ Написанно на PHP
➔ Поддерженно UNINETT (норвегия)
➔ Действует как SAML 2.0 Identity Provider и как SAML 2.0 Service
Provider
➔ Хороший пример Open Source Software
➔ Много участников (программисты)
Как работает SAML? (спасибо Google)
Как работает SAML (часть вторая)
Drupal и SimpleSAMLphp
➔ Надо установить SimpleSAMLphp
➔ Мы настраеваем Drupal Service Provider используя simpleSAMLphp
Authentication
➔ Часто какие-нибудь Web Services надо писать за то, чтобы
интегрировать разные элементы решения
Какие плюсы?
➔ Полностью Open Source
➔ Архитектура поддерживает легкое добавление дополнительных
программ к составу
➔ SAML очень расспространенная поддержка
➔ SAML позволяет добавления Cloud Applications (если у них SAML
support)
Какие минусы?
➔ Cложность настроики simpleSAMLphp
➔ Видимость бытовых сбоев
➔ Сложность c интергаций с Social Media Authentication
➔ Сложность протокола SAML – есть свои хитрости
Демонстрация ...
➔ барабанная дробь ...
Вопросы есть?
➔ Спасибо за внимание

More Related Content

More from DrupalCampDN

Drupal - Changing the Web by Connecting Open Minds - Josef Dabernig
Drupal - Changing the Web by Connecting Open Minds - Josef DabernigDrupal - Changing the Web by Connecting Open Minds - Josef Dabernig
Drupal - Changing the Web by Connecting Open Minds - Josef DabernigDrupalCampDN
 
Dependency Injection in Drupal 8 - Стадник АндрейQweqwe
Dependency Injection in Drupal 8 - Стадник АндрейQweqweDependency Injection in Drupal 8 - Стадник АндрейQweqwe
Dependency Injection in Drupal 8 - Стадник АндрейQweqweDrupalCampDN
 
Our AWS Cloud Journey - Andrew Boag
Our AWS Cloud Journey - Andrew BoagOur AWS Cloud Journey - Andrew Boag
Our AWS Cloud Journey - Andrew BoagDrupalCampDN
 
Guzzle in Drupal 8 and as a REST client - Артем Мирошник
Guzzle in Drupal 8 and as a REST client - Артем МирошникGuzzle in Drupal 8 and as a REST client - Артем Мирошник
Guzzle in Drupal 8 and as a REST client - Артем МирошникDrupalCampDN
 
Blocks & Layouts in D7 - Josef Dabernig
Blocks & Layouts in D7 - Josef DabernigBlocks & Layouts in D7 - Josef Dabernig
Blocks & Layouts in D7 - Josef DabernigDrupalCampDN
 
CKEditor в Drupal: тонкая настройка и кастомизация - Osman Seferov
CKEditor в Drupal: тонкая настройка и кастомизация - Osman SeferovCKEditor в Drupal: тонкая настройка и кастомизация - Osman Seferov
CKEditor в Drupal: тонкая настройка и кастомизация - Osman SeferovDrupalCampDN
 
Drush - use full power - Alexander Schedrov
Drush - use full power - Alexander SchedrovDrush - use full power - Alexander Schedrov
Drush - use full power - Alexander SchedrovDrupalCampDN
 
Это Drupal, %username%! - Андрей Черноус
Это Drupal, %username%! - Андрей ЧерноусЭто Drupal, %username%! - Андрей Черноус
Это Drupal, %username%! - Андрей ЧерноусDrupalCampDN
 
Migrate - new way site upgrade
Migrate - new way site upgradeMigrate - new way site upgrade
Migrate - new way site upgradeDrupalCampDN
 
Caching on highload Drupal site - Alexander Shumenko
Caching on highload Drupal site - Alexander ShumenkoCaching on highload Drupal site - Alexander Shumenko
Caching on highload Drupal site - Alexander ShumenkoDrupalCampDN
 
Rich Text in Drupal - Вадим Валуев
Rich Text in Drupal - Вадим ВалуевRich Text in Drupal - Вадим Валуев
Rich Text in Drupal - Вадим ВалуевDrupalCampDN
 
May the parallelity be with you! Distributed computing using Erlang language ...
May the parallelity be with you! Distributed computing using Erlang language ...May the parallelity be with you! Distributed computing using Erlang language ...
May the parallelity be with you! Distributed computing using Erlang language ...DrupalCampDN
 
Panels как философия - Alexander Danilenko
Panels как философия - Alexander DanilenkoPanels как философия - Alexander Danilenko
Panels как философия - Alexander DanilenkoDrupalCampDN
 
DrupalGap. How to create native application for mobile devices based on Drupa...
DrupalGap. How to create native application for mobile devices based on Drupa...DrupalGap. How to create native application for mobile devices based on Drupa...
DrupalGap. How to create native application for mobile devices based on Drupa...DrupalCampDN
 
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
Twig internals - Maksym MoskvychevTwig internals   maksym moskvychevTwig internals - Maksym MoskvychevTwig internals   maksym moskvychev
Twig internals - Maksym MoskvychevTwig internals maksym moskvychevDrupalCampDN
 
Презентация модуля YandexMoney - Yury Glushkov
Презентация модуля YandexMoney - Yury GlushkovПрезентация модуля YandexMoney - Yury Glushkov
Презентация модуля YandexMoney - Yury GlushkovDrupalCampDN
 
Drupal and Outer space - Martin Mayer
Drupal and Outer space - Martin MayerDrupal and Outer space - Martin Mayer
Drupal and Outer space - Martin MayerDrupalCampDN
 
Continious integration - Иван Лещёв
Continious integration - Иван ЛещёвContinious integration - Иван Лещёв
Continious integration - Иван ЛещёвDrupalCampDN
 
Rules - Yaroslav Doroshuk
Rules - Yaroslav DoroshukRules - Yaroslav Doroshuk
Rules - Yaroslav DoroshukDrupalCampDN
 
Системы управления взаимоотношениями с клиентами. Drupal CRM Core. - Вадим Ми...
Системы управления взаимоотношениями с клиентами. Drupal CRM Core. - Вадим Ми...Системы управления взаимоотношениями с клиентами. Drupal CRM Core. - Вадим Ми...
Системы управления взаимоотношениями с клиентами. Drupal CRM Core. - Вадим Ми...DrupalCampDN
 

More from DrupalCampDN (20)

Drupal - Changing the Web by Connecting Open Minds - Josef Dabernig
Drupal - Changing the Web by Connecting Open Minds - Josef DabernigDrupal - Changing the Web by Connecting Open Minds - Josef Dabernig
Drupal - Changing the Web by Connecting Open Minds - Josef Dabernig
 
Dependency Injection in Drupal 8 - Стадник АндрейQweqwe
Dependency Injection in Drupal 8 - Стадник АндрейQweqweDependency Injection in Drupal 8 - Стадник АндрейQweqwe
Dependency Injection in Drupal 8 - Стадник АндрейQweqwe
 
Our AWS Cloud Journey - Andrew Boag
Our AWS Cloud Journey - Andrew BoagOur AWS Cloud Journey - Andrew Boag
Our AWS Cloud Journey - Andrew Boag
 
Guzzle in Drupal 8 and as a REST client - Артем Мирошник
Guzzle in Drupal 8 and as a REST client - Артем МирошникGuzzle in Drupal 8 and as a REST client - Артем Мирошник
Guzzle in Drupal 8 and as a REST client - Артем Мирошник
 
Blocks & Layouts in D7 - Josef Dabernig
Blocks & Layouts in D7 - Josef DabernigBlocks & Layouts in D7 - Josef Dabernig
Blocks & Layouts in D7 - Josef Dabernig
 
CKEditor в Drupal: тонкая настройка и кастомизация - Osman Seferov
CKEditor в Drupal: тонкая настройка и кастомизация - Osman SeferovCKEditor в Drupal: тонкая настройка и кастомизация - Osman Seferov
CKEditor в Drupal: тонкая настройка и кастомизация - Osman Seferov
 
Drush - use full power - Alexander Schedrov
Drush - use full power - Alexander SchedrovDrush - use full power - Alexander Schedrov
Drush - use full power - Alexander Schedrov
 
Это Drupal, %username%! - Андрей Черноус
Это Drupal, %username%! - Андрей ЧерноусЭто Drupal, %username%! - Андрей Черноус
Это Drupal, %username%! - Андрей Черноус
 
Migrate - new way site upgrade
Migrate - new way site upgradeMigrate - new way site upgrade
Migrate - new way site upgrade
 
Caching on highload Drupal site - Alexander Shumenko
Caching on highload Drupal site - Alexander ShumenkoCaching on highload Drupal site - Alexander Shumenko
Caching on highload Drupal site - Alexander Shumenko
 
Rich Text in Drupal - Вадим Валуев
Rich Text in Drupal - Вадим ВалуевRich Text in Drupal - Вадим Валуев
Rich Text in Drupal - Вадим Валуев
 
May the parallelity be with you! Distributed computing using Erlang language ...
May the parallelity be with you! Distributed computing using Erlang language ...May the parallelity be with you! Distributed computing using Erlang language ...
May the parallelity be with you! Distributed computing using Erlang language ...
 
Panels как философия - Alexander Danilenko
Panels как философия - Alexander DanilenkoPanels как философия - Alexander Danilenko
Panels как философия - Alexander Danilenko
 
DrupalGap. How to create native application for mobile devices based on Drupa...
DrupalGap. How to create native application for mobile devices based on Drupa...DrupalGap. How to create native application for mobile devices based on Drupa...
DrupalGap. How to create native application for mobile devices based on Drupa...
 
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
Twig internals - Maksym MoskvychevTwig internals   maksym moskvychevTwig internals - Maksym MoskvychevTwig internals   maksym moskvychev
Twig internals - Maksym MoskvychevTwig internals maksym moskvychev
 
Презентация модуля YandexMoney - Yury Glushkov
Презентация модуля YandexMoney - Yury GlushkovПрезентация модуля YandexMoney - Yury Glushkov
Презентация модуля YandexMoney - Yury Glushkov
 
Drupal and Outer space - Martin Mayer
Drupal and Outer space - Martin MayerDrupal and Outer space - Martin Mayer
Drupal and Outer space - Martin Mayer
 
Continious integration - Иван Лещёв
Continious integration - Иван ЛещёвContinious integration - Иван Лещёв
Continious integration - Иван Лещёв
 
Rules - Yaroslav Doroshuk
Rules - Yaroslav DoroshukRules - Yaroslav Doroshuk
Rules - Yaroslav Doroshuk
 
Системы управления взаимоотношениями с клиентами. Drupal CRM Core. - Вадим Ми...
Системы управления взаимоотношениями с клиентами. Drupal CRM Core. - Вадим Ми...Системы управления взаимоотношениями с клиентами. Drupal CRM Core. - Вадим Ми...
Системы управления взаимоотношениями с клиентами. Drupal CRM Core. - Вадим Ми...
 

Single Sign On with Drupal and SimpleSAMLphp - Andrew Boag

  • 1. Single Sign On with Drupal and SimpleSAMLphp Presented by Andrew Boag
  • 2. Кто я? Кто Мы? ➔ Мы любим открытые программные средства ➔ Linux (Ubuntu + Debian) ➔ “сделанный на заказ” работа на Java, PHP, Perl, Python, Erlang и так далее ➔ Drupal ➔ Moodle ➔ Mahara ➔ Koha ➔ Alfresco ➔ OpenStack (есть собственный Cloud в НЗ) ➔ Работа с AWS (Amazon) ➔ Pentaho и другие решения - аналитика
  • 3. Как мы работаем с Drupal? ➔ Корпоративные сайты на заказ ➔ Государственные сайты на заказ ➔ СМИ в Новой Зеландии, Австралии, Китаи и Европе ➔ Drupal как часть комплексного решения
  • 4. Что значит Single Sign On – SSO? ➔ Технология единого входа ➔ Есть общая аутентификация ➔ Есть “только один вход в систему” - в системе может быть некоторыми программыми ➔ Часто встречается решение типа Active Directory/LDAP в составе
  • 5. Зачем SSO? ➔ На хрен мне еще один логин и пароль … ➔ Легче включить новую программу в существующий состав ➔ Позволять применить “правильную программу” вместо того, что модифицировать текущий состав или “стороить с нуля”, когда есть новые требования у заказчика
  • 6. Какие подходы к SSO? ➔ “Волшебные ссылки” между программыми ➔ Общий Cookie между программыми ➔ OpenID / OAuth решение ➔ Windows NTLM ➔ Еще “bespoke” подход ➔ SAML
  • 7. Что такое SAML? ➔ Security Assertion Markup Language ➔ От википедии: SAML - Технология разработана для обмена данными об аутентификации и авторизации между защищенными доменами, в частности между поставщиком учётных записей (сокр. IdP от англ. identity provider) и поставщиком сервиса (сокр. SP от англ. Service provider). SAML — это открытый стандарт данных, разработанный консорциумом OASIS.
  • 8. Что такое SimpleSAMLphp? ➔ https://simplesamlphp.org/ ➔ Написанно на PHP ➔ Поддерженно UNINETT (норвегия) ➔ Действует как SAML 2.0 Identity Provider и как SAML 2.0 Service Provider ➔ Хороший пример Open Source Software ➔ Много участников (программисты)
  • 9. Как работает SAML? (спасибо Google)
  • 10. Как работает SAML (часть вторая)
  • 11. Drupal и SimpleSAMLphp ➔ Надо установить SimpleSAMLphp ➔ Мы настраеваем Drupal Service Provider используя simpleSAMLphp Authentication ➔ Часто какие-нибудь Web Services надо писать за то, чтобы интегрировать разные элементы решения
  • 12. Какие плюсы? ➔ Полностью Open Source ➔ Архитектура поддерживает легкое добавление дополнительных программ к составу ➔ SAML очень расспространенная поддержка ➔ SAML позволяет добавления Cloud Applications (если у них SAML support)
  • 13. Какие минусы? ➔ Cложность настроики simpleSAMLphp ➔ Видимость бытовых сбоев ➔ Сложность c интергаций с Social Media Authentication ➔ Сложность протокола SAML – есть свои хитрости