[PHP, IT-инфраструктура, Сетевые технологии, API, Облачные сервисы] Synology SSO Server – управление авторизацией и доступ к сервисам с сайта
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Некоторое время назад передо мной встала задача, в целях защиты коммерческой тайны своих клиентов, отказаться от использования сторонних облачных сервисов.
Первое и самое логичное – предоставить им доступ на уже имеющийся в наличии Synology.
И тут возникло желание сделать это красиво, не отдельным логином/паролем, а с использованием уже выданных ранее от личного кабинета. «Бесшовный» переход из личного кабинета на сервисы Synology – то, что нужно.
Описание и скрипт под катом
Для дальнейшей работы нам понадобятся установленный LDAP Server и SSO Server.
SSO Server – это собственная реализация OAuth2.0 от Synology.
Настраиваем LDAP и заводим нужного пользователя, устанавливаем ему права на доступы к сервисам.
Далее вступает в работу написанный мной php скрипт, который мы устанавливает на сайт. Он не большой и выложен на GitHub.
С ним все просто. Скачиваем и размещаем на сайт в папку /my.
В config.php нужно заменить следующие значения на свои
- APP_ID – вы получите его на следующем этапе, при регистрации в SSO Server
- SSO_HOST – адрес хоста для доступа к Synology
- LOCAL_HOST – адрес сайта на котором лежит скрипт
- REDIRECT_URI – адрес по которому доступен скрипт SSO_Oauth.php
В index.php (место обозначено) добавить дальнейшую логику или переадресацию после того как пользователь успешно авторизован.
Далее необходимо привязать авторизацию на сайте через SSO Server. В нем все совсем просто – Открываем SSO Server > Список приложений > Добавить > Вводим название и URI адрес на скрипт SSO_Oauth.php. После нажатия на «Ок», будет сгенерирован ID приложения. Его нужно скопировать и разместить в нашем config.php > APP_ID.
Таким образом, если пользователь прошел авторизацию на вашем сайте через SSO, то перейдя по ссылке на любой из сервисов Synology, к которому у него открыт доступ в LDAP, ему не прийдется проходить повторную авторизацию. Это актуально и в обратную сторону – если он авторизовался в вашем облаке, то личный кабинет на сайте также будет доступен.
Реализация оказалась не такой и простой. В сети я нашел только один guide по данного API – Synology SSO API Guide, но там все делается на стороне клиента через ajax и по какой-то причине не определялось, что пользователь авторизован, а также работало ооочень медленно. Поэтому пришлось находить свое решение, но оно оказалось гораздо короче и проще.
Буду рад, если еще кому-то пригодится.
===========
Источник:
habr.com
===========
Похожие новости:
- [SQL, Администрирование баз данных, Облачные сервисы] Несколько SQL-приемов от Application DBA. Нетривиальные особенности работы с базами данных (перевод)
- [Разработка мобильных приложений, Разработка под Android, Google API, Монетизация мобильных приложений] Внедрение IMA SDK в Android-приложениях
- [JavaScript, Node.JS, Google API, Контент-маркетинг] Как стать экспертом для поисковых систем
- [Delphi, IT-инфраструктура] Как я сделал электронную очередь за 0 рублей на чистом энтузиазме, чего это стоило и что из этого вышло
- [Python, Программирование, API, ВКонтакте API] VKWave — фреймворк для разработки ботов ВКонтакте
- В ночные сборки Firefox добавлена поддержка ускорения WebRTC через VAAPI
- [IT-инфраструктура, ERP-системы, CRM-системы, Управление проектами, Управление продуктом] Новый формат отдела разработки ПО
- [Финансы в IT] О чем говорят графики: что такое технический анализ, и зачем его используют биржевые инвесторы
- [PHP, Алгоритмы, HTML] Как я html-парсер на php писал, и что из этого вышло. Заключительная часть
- [Системное администрирование, Сетевые технологии, Серверное администрирование] Что происходит, когда вы обновляете свой DNS (перевод)
Теги для поиска: #_php, #_itinfrastruktura (IT-инфраструктура), #_setevye_tehnologii (Сетевые технологии), #_api, #_oblachnye_servisy (Облачные сервисы), #_synology, #_sso_server, #_oauth, #_php, #_itinfrastruktura (
IT-инфраструктура
), #_setevye_tehnologii (
Сетевые технологии
), #_api, #_oblachnye_servisy (
Облачные сервисы
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 10:14
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Некоторое время назад передо мной встала задача, в целях защиты коммерческой тайны своих клиентов, отказаться от использования сторонних облачных сервисов. Первое и самое логичное – предоставить им доступ на уже имеющийся в наличии Synology. И тут возникло желание сделать это красиво, не отдельным логином/паролем, а с использованием уже выданных ранее от личного кабинета. «Бесшовный» переход из личного кабинета на сервисы Synology – то, что нужно. Описание и скрипт под катом Для дальнейшей работы нам понадобятся установленный LDAP Server и SSO Server. SSO Server – это собственная реализация OAuth2.0 от Synology. Настраиваем LDAP и заводим нужного пользователя, устанавливаем ему права на доступы к сервисам. Далее вступает в работу написанный мной php скрипт, который мы устанавливает на сайт. Он не большой и выложен на GitHub. С ним все просто. Скачиваем и размещаем на сайт в папку /my. В config.php нужно заменить следующие значения на свои
В index.php (место обозначено) добавить дальнейшую логику или переадресацию после того как пользователь успешно авторизован. Далее необходимо привязать авторизацию на сайте через SSO Server. В нем все совсем просто – Открываем SSO Server > Список приложений > Добавить > Вводим название и URI адрес на скрипт SSO_Oauth.php. После нажатия на «Ок», будет сгенерирован ID приложения. Его нужно скопировать и разместить в нашем config.php > APP_ID. Таким образом, если пользователь прошел авторизацию на вашем сайте через SSO, то перейдя по ссылке на любой из сервисов Synology, к которому у него открыт доступ в LDAP, ему не прийдется проходить повторную авторизацию. Это актуально и в обратную сторону – если он авторизовался в вашем облаке, то личный кабинет на сайте также будет доступен. Реализация оказалась не такой и простой. В сети я нашел только один guide по данного API – Synology SSO API Guide, но там все делается на стороне клиента через ajax и по какой-то причине не определялось, что пользователь авторизован, а также работало ооочень медленно. Поэтому пришлось находить свое решение, но оно оказалось гораздо короче и проще. Буду рад, если еще кому-то пригодится. =========== Источник: habr.com =========== Похожие новости:
IT-инфраструктура ), #_setevye_tehnologii ( Сетевые технологии ), #_api, #_oblachnye_servisy ( Облачные сервисы ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 10:14
Часовой пояс: UTC + 5