Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

karoljas96
Amator
Posty: 45
Rejestracja: ndz mar 15, 2020 10:21 pm

Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

Post autor: karoljas96 »

Cześć,
zdarza mi się pisać małe 'aplikacje'(PWA) w php przeznaczone do prostych rzeczy (np. tablica informacyjna linkująca do plików z Synology Drive). W chwili obecnej użytkownicy muszą logować się zarówno przez login.php appki jak i DSM, czyli w dwóch miejscach. Jest to dość niewygodne, biorąc pod uwagę, że wymagam długich i skomplikowanych haseł.
Zastanawiam się czy jest możliwe wykorzystanie DSM w celu generowania tokenów, z których mogłaby korzystać zewnętrza aplikacja do autryzowania logowania, jeśli użytkownik jest prawidłowo zalogowany do DSM. Tylko kompletnie nie wiem, jak się za to zabrać. Spodziewałem się, że pakiet oAuth będzie w stanie generować takie tokeny ale się rozczarowałem.

Byłbym wdzięczny za jakiekolwiek sugestie
look12
Zawsze On-Line
Posty: 513
Rejestracja: ndz sty 24, 2016 10:46 am

Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

Post autor: look12 »

A sprawdzałeś SSO Serwer ?
Tu masz przewodnik do api SSO:
https://global.download.synology.com/d ... _Guide.pdf
DS916+ /7.1-42661/
DS112+ /6.2.4-25556/
RT2600ac /SRM 1.3-9193/
karoljas96
Amator
Posty: 45
Rejestracja: ndz mar 15, 2020 10:21 pm

Re: Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

Post autor: karoljas96 »

look12 pisze: śr cze 16, 2021 10:45 pm A sprawdzałeś SSO Serwer ?
Tu masz przewodnik do api SSO:
https://global.download.synology.com/d ... _Guide.pdf
W punt! Dokładnie o to mi chodziło :D Pięknie dziękuję.
Edit: chyba jednak chodziło mi o LDAP server ale dzięki za nakierowanie
karoljas96
Amator
Posty: 45
Rejestracja: ndz mar 15, 2020 10:21 pm

Re: Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

Post autor: karoljas96 »

Niestety po dokładniejszym przyjrzeniu się jak dziala SSO i LDAP widzę, że to wciąż nie to o co mi chodziło. Oba rozwiązania wymagają ponownego wpisania loginu i hasła w aplikacji zewnętrznej, co jest uciążliwe. Mi zależy na tym, żeby była możliwość wysłania przez PHP zapytania do DSM czy użytkownik jest obecnie zalogowany i jeśli tak, to zwrócić jego nazwę.

Edit: Próbowałem uzyskać przez API nazwę zalogowanego użytkownika, według dokumentacji '/usr/syno/synoman/webman/modules/authenticate.cgi' lub '/webman/modules/authenticate.cgi'' powinny zwrócić username ale wyskakuje bład 404. Jedynie używając '/webman/login.cgi' jestem w stanie sprawdzić, czy użytkownik jest zalogowany do DSM czy nie, ale jaki to już niewiadomo.
Próbowłem też kombinować z /webapi/auth.cgi?api=SYNO.API.Auth&version=3&method=info' ale nic z tego.
Szukałem też w 'webapi/query.cgi?api=SYNO.API.Info&version=1&method=query&query=all' czegoś co pozwolic wyświelić username ale również mi się to nie udało (choćby dlatego, że nigdzie nie podano jakiej metody należy użyć).

Straszne jest to, że Synology nie kompletnie zaniedbuje aktualizuje dokumentacji :(
look12
Zawsze On-Line
Posty: 513
Rejestracja: ndz sty 24, 2016 10:46 am

Re: Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

Post autor: look12 »

Podłącz logowanie do DSM za pośrednictwem SSO Serwer.
Jeżeli apka będzie współpracować z SSO, a użytkownik wcześniej wykonał logowanie do DSM to autentykacja do apki zakończy się powodzeniem bez dodatkowych pytań.
DS916+ /7.1-42661/
DS112+ /6.2.4-25556/
RT2600ac /SRM 1.3-9193/
karoljas96
Amator
Posty: 45
Rejestracja: ndz mar 15, 2020 10:21 pm

Re: Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

Post autor: karoljas96 »

look12 pisze: pt cze 18, 2021 7:42 am Podłącz logowanie do DSM za pośrednictwem SSO Serwer.
Jeżeli apka będzie współpracować z SSO, a użytkownik wcześniej wykonał logowanie do DSM to autentykacja do apki zakończy się powodzeniem bez dodatkowych pytań.
Faktycznie działa ale tylko jednostronnie: tzn jeśli uzytkownik w pierwszej kolejności zaloguje się do SSO to łapie w DSM, ale jeśli najpierw zaloguje się do DSM to nie łapie w SSO.
look12
Zawsze On-Line
Posty: 513
Rejestracja: ndz sty 24, 2016 10:46 am

Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

Post autor: look12 »

Ustawiasz w DSM domyślne logowanie do SSO i na oknie logowania do DSM masz logowanie za pośrednictwem SSO, jak ktoś wybierze i zmieni na logowanie do DSM i zaloguje się bezpośrednio z pominięciem SSO, to oczywiście nie ma prawa działać.
DS916+ /7.1-42661/
DS112+ /6.2.4-25556/
RT2600ac /SRM 1.3-9193/
karoljas96
Amator
Posty: 45
Rejestracja: ndz mar 15, 2020 10:21 pm

Re: Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

Post autor: karoljas96 »

look12 pisze: pt cze 18, 2021 7:13 pm Ustawiasz w DSM domyślne logowanie do SSO i na oknie logowania do DSM masz logowanie za pośrednictwem SSO, jak ktoś wybierze i zmieni na logowanie do DSM i zaloguje się bezpośrednio z pominięciem SSO, to oczywiście nie ma prawa działać.
Ok udało się ale ale żeby to działało należy w pakiecie serwera SSO dodać nową aplikację o nazwie DSM, skopiować jej ID i w Panelu sterowania wejść w Domena/LDAP -> Klient SSO, zaznaczyć włącz usługę SSO, jako adres serwera wpisać adres DSM, jako iD aplikacji skopiowany ID i wtedy dopiero można zaznaczyć Wybiez SSO jako domyslną usługę logowania
look12
Zawsze On-Line
Posty: 513
Rejestracja: ndz sty 24, 2016 10:46 am

Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

Post autor: look12 »

No na tym dokładnie polega konfiguracja DSM w SSO. Sam do tego doszedłeś, tym większa satysfakcja po Twojej stronie.
DS916+ /7.1-42661/
DS112+ /6.2.4-25556/
RT2600ac /SRM 1.3-9193/
karoljas96
Amator
Posty: 45
Rejestracja: ndz mar 15, 2020 10:21 pm

Re: Czy DSM może autoryzować logowanie do zewnętrznej aplikacji webowej?

Post autor: karoljas96 »

look12 pisze: sob cze 19, 2021 3:20 pm No na tym dokładnie polega konfiguracja DSM w SSO. Sam do tego doszedłeś, tym większa satysfakcja po Twojej stronie.
Dzięki za pomoc :)
ODPOWIEDZ