AngularJS + OpenID Connect
-
- Уже с Приветом
- Posts: 3008
- Joined: 28 Feb 2013 03:18
- Location: NY
Re: AngularJS + OpenID Connect
Да, я тоже думаю, что Иван Грозный дело говорит. Этот же старый ангуляр в принципе работает как обычный джаваскрипт, импортируется на страницу. Так что можно все на сервере решить. Мы так делаем для всех других приложений, не связанных с новым ангуляром или реактом.
-
- Уже с Приветом
- Posts: 10604
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: AngularJS + OpenID Connect
Где в Single Page Application находится серверная часть ? Все приложение крутится в браузере. В нашем ASP.NET MVC приложении мы конечно аутентификацию делаем на сервере и там это делается просто. Настроили sustainsys.saml2 компонент внутри нашего приложения, настроили параметры в Окте и никакого кода писать не надо вообще. Все делается автоматически. Юзеру только надо логинится в Окту когда его попросят.IvanGrozniy wrote: ↑06 May 2023 12:25 Повторюсь - при правильном подходе аутентификация целиком делается на серверной части! На C#, например. JavaScript вообще не нужен для этого.
В SPA это не работает поэтому и приходится делать все через OpenID Connect, а не через SAML2.0 и поэтому и имеем эти танцы с бубном.
-
- Уже с Приветом
- Posts: 10604
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: AngularJS + OpenID Connect
Как я уже писал мы сделали хак такой для одного нашего SPA приложения путем обертывания его в ASP.NET MVC и последующей аутентификации через SAML 2.0 на серверной части.BronenosezPotemkin wrote: ↑06 May 2023 16:27 Да, я тоже думаю, что Иван Грозный дело говорит. Этот же старый ангуляр в принципе работает как обычный джаваскрипт, импортируется на страницу. Так что можно все на сервере решить. Мы так делаем для всех других приложений, не связанных с новым ангуляром или реактом.
но вот с этим приложением, с которым мучаемся, это никак не проходит. Аутентификация идет в Джаваскрипте (для этого же и написана okta-auth-js библиотека). Я нашел пример где аутентификация идет вообще вручную, без всякого okta-auth-js компонента.. там и code verifier и code challenge генерится вручную и ввообще все запросы на Oktа идут вручную.. надо поглядеть.
-
- Уже с Приветом
- Posts: 10526
- Joined: 04 Feb 2004 14:14
- Location: Edgewater, NJ
Re: AngularJS + OpenID Connect
А откуда берется этот Single page про который вы спрашиваете? Думаю что с сервера! Вот на сервере и проверяйте наличия валидного токена. Если его нет, то отвечайте отлупом на запрос этот единственной страницы кодом 302 - редирект в окту. Иначе без сервера у вас было бы Desktop Application.shadow7256 wrote: ↑06 May 2023 16:35Где в Single Page Application находится серверная часть ? Все приложение крутится в браузере. В нашем ASP.NET MVC приложении мы конечно аутентификацию делаем на сервере и там это делается просто. Настроили sustainsys.saml2 компонент внутри нашего приложения, настроили параметры в Окте и никакого кода писать не надо вообще. Все делается автоматически. Юзеру только надо логинится в Окту когда его попросят.IvanGrozniy wrote: ↑06 May 2023 12:25 Повторюсь - при правильном подходе аутентификация целиком делается на серверной части! На C#, например. JavaScript вообще не нужен для этого.
В SPA это не работает поэтому и приходится делать все через OpenID Connect, а не через SAML2.0 и поэтому и имеем эти танцы с бубном.
-
- Уже с Приветом
- Posts: 13989
- Joined: 16 Jan 2001 10:01
Re: AngularJS + OpenID Connect
Строго говоря, тогда единожды загрузив приложение можно будет работать с ним вечно.IvanGrozniy wrote: ↑06 May 2023 17:36 А откуда берется этот Single page про который вы спрашиваете? Думаю что с сервера! Вот на сервере и проверяйте наличия валидного токена. Если его нет, то отвечайте отлупом на запрос этот единственной страницы кодом 302 - редирект в окту.
Нужно иметь возможность отбрасывать ajax запросы и реагировать на эти отлупы в коде приложения. В зависимости от требуемой степени адекватности реакции это может потребовать серьезных изменений в приложении.
-
- Уже с Приветом
- Posts: 10604
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: AngularJS + OpenID Connect
Это называется static site hosting. Сервер просто тупо отдает браузеру HTML + Javascript + CSS файлы и все приложение уже выполняется в браузере. Сервер может иметь какую то API, которая отвечает на запросы из SPA и все. В нашем случае эта API выполнена через Nancy, но она никакого отношения не имеет к аутентификации.IvanGrozniy wrote: ↑06 May 2023 17:36 А откуда берется этот Single page про который вы спрашиваете? Думаю что с сервера! Вот на сервере и проверяйте наличия валидного токена. Если его нет, то отвечайте отлупом на запрос этот единственной страницы кодом 302 - редирект в окту. Иначе без сервера у вас было бы Desktop Application.
-
- Уже с Приветом
- Posts: 10526
- Joined: 04 Feb 2004 14:14
- Location: Edgewater, NJ
Re: AngularJS + OpenID Connect
Ну тогда очевидное решение. API проверяет токен в запросе. По истечении данного давать ответ 401. Само приложение пусть редирет делает в JavaScript как такой ответ получит.
-
- Уже с Приветом
- Posts: 10604
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: AngularJS + OpenID Connect
вообщем спасибо всем. Умудрились прикрутить, настроить okta-auth-js и authentication теперь работает (все чисто на client side).