Русский
Русский
English
Статистика
Реклама

Synology SSO Server управление авторизацией и доступ к сервисам с сайта

Некоторое время назад передо мной встала задача, в целях защиты коммерческой тайны своих клиентов, отказаться от использования сторонних облачных сервисов.
Первое и самое логичное предоставить им доступ на уже имеющийся в наличии 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
К списку статей
Опубликовано: 17.08.2020 16:16:01
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Php

It-инфраструктура

Сетевые технологии

Api

Облачные сервисы

Synology

Sso server

Oauth

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru