AngularJS + OpenID Connect

User avatar
BronenosezPotemkin
Уже с Приветом
Posts: 3008
Joined: 28 Feb 2013 03:18
Location: NY

Re: AngularJS + OpenID Connect

Post by BronenosezPotemkin »

Да, я тоже думаю, что Иван Грозный дело говорит. Этот же старый ангуляр в принципе работает как обычный джаваскрипт, импортируется на страницу. Так что можно все на сервере решить. Мы так делаем для всех других приложений, не связанных с новым ангуляром или реактом.
shadow7256
Уже с Приветом
Posts: 10604
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: AngularJS + OpenID Connect

Post by shadow7256 »

IvanGrozniy wrote: 06 May 2023 12:25 Повторюсь - при правильном подходе аутентификация целиком делается на серверной части! На C#, например. JavaScript вообще не нужен для этого.
Где в Single Page Application находится серверная часть ? Все приложение крутится в браузере. В нашем ASP.NET MVC приложении мы конечно аутентификацию делаем на сервере и там это делается просто. Настроили sustainsys.saml2 компонент внутри нашего приложения, настроили параметры в Окте и никакого кода писать не надо вообще. Все делается автоматически. Юзеру только надо логинится в Окту когда его попросят.

В SPA это не работает поэтому и приходится делать все через OpenID Connect, а не через SAML2.0 и поэтому и имеем эти танцы с бубном.
shadow7256
Уже с Приветом
Posts: 10604
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: AngularJS + OpenID Connect

Post by shadow7256 »

BronenosezPotemkin wrote: 06 May 2023 16:27 Да, я тоже думаю, что Иван Грозный дело говорит. Этот же старый ангуляр в принципе работает как обычный джаваскрипт, импортируется на страницу. Так что можно все на сервере решить. Мы так делаем для всех других приложений, не связанных с новым ангуляром или реактом.
Как я уже писал мы сделали хак такой для одного нашего SPA приложения путем обертывания его в ASP.NET MVC и последующей аутентификации через SAML 2.0 на серверной части.

но вот с этим приложением, с которым мучаемся, это никак не проходит. Аутентификация идет в Джаваскрипте (для этого же и написана okta-auth-js библиотека). Я нашел пример где аутентификация идет вообще вручную, без всякого okta-auth-js компонента.. там и code verifier и code challenge генерится вручную и ввообще все запросы на Oktа идут вручную.. надо поглядеть.
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10526
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: AngularJS + OpenID Connect

Post by IvanGrozniy »

shadow7256 wrote: 06 May 2023 16:35
IvanGrozniy wrote: 06 May 2023 12:25 Повторюсь - при правильном подходе аутентификация целиком делается на серверной части! На C#, например. JavaScript вообще не нужен для этого.
Где в Single Page Application находится серверная часть ? Все приложение крутится в браузере. В нашем ASP.NET MVC приложении мы конечно аутентификацию делаем на сервере и там это делается просто. Настроили sustainsys.saml2 компонент внутри нашего приложения, настроили параметры в Окте и никакого кода писать не надо вообще. Все делается автоматически. Юзеру только надо логинится в Окту когда его попросят.

В SPA это не работает поэтому и приходится делать все через OpenID Connect, а не через SAML2.0 и поэтому и имеем эти танцы с бубном.
А откуда берется этот Single page про который вы спрашиваете? Думаю что с сервера! Вот на сервере и проверяйте наличия валидного токена. Если его нет, то отвечайте отлупом на запрос этот единственной страницы кодом 302 - редирект в окту. Иначе без сервера у вас было бы Desktop Application.
Palych
Уже с Приветом
Posts: 13989
Joined: 16 Jan 2001 10:01

Re: AngularJS + OpenID Connect

Post by Palych »

IvanGrozniy wrote: 06 May 2023 17:36 А откуда берется этот Single page про который вы спрашиваете? Думаю что с сервера! Вот на сервере и проверяйте наличия валидного токена. Если его нет, то отвечайте отлупом на запрос этот единственной страницы кодом 302 - редирект в окту.
Строго говоря, тогда единожды загрузив приложение можно будет работать с ним вечно.
Нужно иметь возможность отбрасывать ajax запросы и реагировать на эти отлупы в коде приложения. В зависимости от требуемой степени адекватности реакции это может потребовать серьезных изменений в приложении.
shadow7256
Уже с Приветом
Posts: 10604
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: AngularJS + OpenID Connect

Post by shadow7256 »

IvanGrozniy wrote: 06 May 2023 17:36 А откуда берется этот Single page про который вы спрашиваете? Думаю что с сервера! Вот на сервере и проверяйте наличия валидного токена. Если его нет, то отвечайте отлупом на запрос этот единственной страницы кодом 302 - редирект в окту. Иначе без сервера у вас было бы Desktop Application.
Это называется static site hosting. Сервер просто тупо отдает браузеру HTML + Javascript + CSS файлы и все приложение уже выполняется в браузере. Сервер может иметь какую то API, которая отвечает на запросы из SPA и все. В нашем случае эта API выполнена через Nancy, но она никакого отношения не имеет к аутентификации.
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10526
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: AngularJS + OpenID Connect

Post by IvanGrozniy »

Ну тогда очевидное решение. API проверяет токен в запросе. По истечении данного давать ответ 401. Само приложение пусть редирет делает в JavaScript как такой ответ получит.
shadow7256
Уже с Приветом
Posts: 10604
Joined: 18 Mar 2004 15:11
Location: New York -> FL

Re: AngularJS + OpenID Connect

Post by shadow7256 »

вообщем спасибо всем. Умудрились прикрутить, настроить okta-auth-js и authentication теперь работает (все чисто на client side).

Return to “Вопросы и новости IT”