|
|
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Говорят, что для аунтефикации/авторизации в микросервисных приложениях нужно использовать SSO/oauth2. Есть некоторое надопонимание. Вот допустим есть такое микросервисное приложение: hello-world-service использует hello-service. Юзер может обращаться как к одному приложению, так и ко второму. Как сделать чтобы аунтефицировать пользователя черещ auth server понятно. Непонятно как аунтефицировать микросевисы при обращении друг к другу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 13:10 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
redwhite90 hello-world-service использует hello-service. Накуа нужны такие микросервисы? Опять приходим к тому что городят их только ради того что "модно". Микросервисы не должны пересекаться, если же все же нужен обмен какой-то информацией, то это делается через messaging, и это скорее нотификации чем изменение данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 13:15 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
забыл никredwhite90hello-world-service использует hello-service. Накуа нужны такие микросервисы? Опять приходим к тому что городят их только ради того что "модно". Микросервисы не должны пересекаться, если же все же нужен обмен какой-то информацией, то это делается через messaging, и это скорее нотификации чем изменение данных Накуя нужны такие вопросы? Понятно, что это высосанный из пальца пример. Но RPC делать иногда нужно. Вопрос как аунтефицироваться. P.S. Очереди будут на следующем этапе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 13:17 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Зачем нужен Single Sing On - в общем то понятно, микросервисы тут не при чем. Как настроить SSO и как с ним работать - наверное читать в доке по тому продукту поддерживающему SSO, который используете ))) Зачем нужно аудентификация при обмене данных между микросервисами - лично мне не понятно. Человек уже прошел контроль, запросы между микросервисами уже доверительные (в локальной/закрытой подсети). Зачем там какая-то аудентификация - лично мне не понятно. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 13:25 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
redwhite90, Опять вопросы журналста) redwhite90Говорят )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 13:28 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
P.S. Картинку не понял. Т.к. например в SSO от Oracle, аутентификация проходит на HTTP сервере. Т.е. сервер(служба) аутентификации работает МЕЖДУ клиентом и нашим приложением (микросервисом). Если клиент аутентификаци не прошел, до приложения (микросервиса) запрос даже доходить не должен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 13:29 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevP.S. Картинку не понял. Т.к. например в SSO от Oracle, аутентификация проходит на HTTP сервере. Т.е. сервер(служба) аутентификации работает МЕЖДУ клиентом и нашим приложением (микросервисом). Если клиент аутентификаци не прошел, до приложения (микросервиса) запрос даже доходить не должен. Ну то есть Вы полагаете, что надо сделать какой-то фасад, который на котором будет проходить аунтефикация. Если аунтефикация пройдена, то всё доступно. Сам этот фасад с другими микросервисами работает без авторизации? миросервисы друг с другом тоже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 13:42 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 13:48 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
redwhite90Ну то есть Вы полагаете, что надо сделать какой-то фасад, который на котором будет проходить аунтефикация. Нет. Я полагаю, что все уже сделано до нас. Это задача SSO и Web Server'а (или Application Server'а если он берет на себя задачу обслуживания внешнего HTTP). redwhite90Если аунтефикация пройдена, то всё доступно. Не все. А в рамках полномочий данного пользователя. Если ф-ции приложения разнесены по раным URL / страничкам / servlet'ам , то возможно даже задачу разграничения полномочий может взять на себя Web Server Но скорее всего, полномочия проще проверять в прикладном коде redwhite90Сам этот фасад с другими микросервисами работает без авторизации? миросервисы друг с другом тоже? Наверное зависит от задачи (и архитектуры) и от степени параноидальности людей отвечающих за секьюрити Моя точка зрения, что они МОГУТ работать без авторизации. Точнее, сам факт наличия IP из внутренней подсети - может уже быть достаточным основаниям доверять источнику запроса. Фасад занимающийся авторизацией. в любом случае, с микросервисами будет работаь без авторизации. Иначе получается, что нужно делать фасад который будет авторизовать фасад занимающийся авторизацией и так далее, до бесконечности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 14:08 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Ну и остается определить, что такое "авторизация". На мой взгляд, это процесс проверки user name + password и выдача user id (или некоего другого "токена"). Ее достаточно делать один раз. НО в наиболее параноидальных случаях, возможно требуется делать на каждую операцию (пример: банкомат, попросили баланс - требуют пин-код, попросили снять деньги - опять требуют пин-код) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 14:11 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
я бы использовал JWT-токен. При обращении к любому сервису проверяется его наличие, если нет - редирект на страницу аутентфикации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 14:26 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Arm79его наличие,где именно он должен лежать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 14:35 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Petro123где именно он должен лежать?В запросе "клиентском": token is created during authentication (is provided in case of successful authentication) and is verified by the server before any processing. It is used by an application to allow a client to present a token representing his "identity card" (container with all information about him) to server and allow the server to verify the validity and integrity of the token in a secure way, all of this in a stateless and portable approach (portable in the way that client and server technologies can be different including also the transport channel even if HTTP is the most often used). Т.е. если мы от одного сервиса шлем запрос в другой, то этот токен нужно копировать в новый запрос. PS. В вебсфере через LTPA все уже очень давно и прозрачно работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 14:50 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Petro123Arm79его наличие,где именно он должен лежать? Что значит - лежать? ))) Обращаешься к серверу авторизации, он тебе выдает токен с некоторым сроком жизни Этот токен используешь при обращении к любому сервису (который знает, что токен вообще должен быть) Сервис прямо из токена проверяет его валидность (напоминаю, он self-contained как обозначено на скрине выше). То есть не тратится время на сетевое взаимодействие В общем то, не обязательно JWT, просто у них есть пара плюсов, таких как возможность хранения пользовательской информации в токене (например, набор claim) и поддержка инфраструктурой (нет необходимости самому проверять валидность токена, обращения с невалидными токенами просто не дойдут до методов с бизнес-логикой А лежит он у клиента. В принципе, какое то хранение на сервере можно организовать для реализации черных списков и отозванных токенов, но это некритичные частности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 14:55 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Arm79, Вы все описали sso. А микросервисы тут причём? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 14:59 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Petro123Arm79его наличие,где именно он должен лежать? IMHO Он должен быть в REST запросе, который приходит на микросервис Как я понимаю, после SSO токен в том или ином виде хранится в куках (или другом механизме связанном с сессий) клиента. Но опять таки, это лучше читать в доках конкретного SSO. p.s. специально не углябляюсь в детали реализации, т.к. это зависит от используемого софта + я с этм детально не работал. В настройке SSO от Oracle (SSO, Weblogic, Oracle ADF, Oracle BI) участвовал. К примеру подозреваю, что ни о каких JWT-токенах SSO от Oracle не знает ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 15:04 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Petro123Arm79, Вы все описали sso. А микросервисы тут причём? Какой то непонятный вопрос. Что значит - причем? А что, не причем? Мне казалось очевидным, что в распределенной среде обращения к разным кускам логики должны быть авторизированы. И правильно использовать сначала в одном месте аутентификацию, получить авторизационный токен, и далее ко всем сервисам обращаться с этим токеном. Так достигается не только авторизация, но и снижаются накладные расходы на сетевые взаимодействия. У вас иное мнение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 15:05 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Arm79....к разным кускам логики должны быть авторизированы. ... У вас иное мнение? В исходном вопросе автора, смешаны "люди и кони" 1. Обращение ОТ ПОЛЬЗОВАТЕЛЕЙ к сервисам - да, должны, беспорно 2. Общение МЕЖДУ СИСТЕМНЫМИ сервисами - если общение в защищенной среде (внутренняя IP сеть сервеной), то не факт. Большенство обращений все равно должны быть в режиме Superuser (видеть все данные). IMHO & AFAIK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 15:09 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Arm79Petro123Arm79, Вы все описали sso. А микросервисы тут причём? Какой то непонятный вопрос. Что значит - причем? А что, не причем? Это просто тролль авторКак я понимаю, после SSO токен в том или ином виде хранится в куках (или другом механизме связанном с сессий) клиента. Но опять таки, это лучше читать в доках конкретного SSO. Вообще токены стараются не засветить. Они обычно на сервере лежат и в браузер не попадают. SSO токен это oauth2 токен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 15:10 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Андрей ПанфиловPetro123где именно он должен лежать?В запросе "клиентском": token is created during authentication (is provided in case of successful authentication) and is verified by the server before any processing. It is used by an application to allow a client to present a token representing his "identity card" (container with all information about him) to server and allow the server to verify the validity and integrity of the token in a secure way, all of this in a stateless and portable approach (portable in the way that client and server technologies can be different including also the transport channel even if HTTP is the most often used). Т.е. если мы от одного сервиса шлем запрос в другой, то этот токен нужно копировать в новый запрос. PS. В вебсфере через LTPA все уже очень давно и прозрачно работает. А как бы это сделать в spring cloud? https://github.com/gredwhite/spring-cloud ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 15:13 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevArm79....к разным кускам логики должны быть авторизированы. ... У вас иное мнение? В исходном вопросе автора, смешаны "люди и кони" 1. Обращение ОТ ПОЛЬЗОВАТЕЛЕЙ к сервисам - да, должны, беспорно 2. Общение МЕЖДУ СИСТЕМНЫМИ сервисами - если общение в защищенной среде (внутренняя IP сеть сервеной), то не факт. Большенство обращений все равно должны быть в режиме Superuser (видеть все данные). IMHO & AFAIK У нас так и есть. Есть "интерфейсный" сервис - дирижер, который авторизирует клиентские запросы. А взаимодействия "внутри" среды по умолчанию доверенные. Правда у нас не микросервисы, а обычные нормальные сервисы ))))) Такое поведение - не догма, просто у нас доступ к ресурсам равнозначный для всех пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 15:14 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
redwhite90Вообще токены стараются не засветить. Они обычно на сервере лежат и в браузер не попадают. SSO токен это oauth2 токен? Не готов говорить без ссылок на конкретную доку/технологию/софт/архитектуру/требования странно, как его можно не светить. Я вошел в одно приложение, аудентифицировался, мне выдали токен Теперь я хочу войти в другое приложение, вообще НЕ связанное с первым. Аудентифицироваться не хочу, т.к. у нас SSO. Явно, что для данного сценария, клиенту нужно знать свой токен. И никакие прокси тут не спасут, т.к. SSO оно не только для Web, но и для обычных приложений, м даже MS DOS приложений ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 15:18 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevredwhite90Вообще токены стараются не засветить. Они обычно на сервере лежат и в браузер не попадают. SSO токен это oauth2 токен? Не готов говорить без ссылок на конкретную доку/технологию/софт/архитектуру/требования странно, как его можно не светить. Я вошел в одно приложение, аудентифицировался, мне выдали токен Теперь я хочу войти в другое приложение, вообще НЕ связанное с первым. Аудентифицироваться не хочу, т.к. у нас SSO. Явно, что для данного сценария, клиенту нужно знать свой токен. И никакие прокси тут не спасут, т.к. SSO оно не только для Web, но и для обычных приложений, м даже MS DOS приложений ))) Токен выдали приложение, а не браузеру. https://tools.ietf.org/html/rfc6749#section-4.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 15:24 |
|
||
|
Аунтефикация в микросевисных приложениях
|
|||
|---|---|---|---|
|
#18+
в ссылке выше Client- это клиентское приложение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.05.2018, 15:25 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=46&tid=2122053]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 397ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...