Как настроить внешнюю веб-службу (REST) ​​для аутентификации в WSO2? - PullRequest
0 голосов
/ 04 мая 2020

У меня есть отдельный Do tnet API веб-службы для аутентификации пользователей. Как я могу настроить его с помощью WSO2 API Manager?

Я уже настроил WSO2 API Manager с внешним IDP (Keycloak). Это то, чего я ищу, или можно достичь по-другому.

1 Ответ

0 голосов
/ 06 мая 2020

Если вы ищете способ заменить свое хранилище пользователей (LDAP / AD / JDB C) своей службой Do tnet, вы можете написать новый менеджер пользовательских хранилищ, расширяющий CarbonRemoteUserStoreManger класс. Там вы должны вызывать ваши пользовательские API для аутентификации, извлечения пользователей. Затем вы можете добавить вторичное / первичное хранилище пользователей с помощью реализации диспетчера пользовательских хранилищ .

Если вы хотите настроить службу Do tnet в качестве федеративного IdP на сервере API Manager вам, возможно, придется написать Custom Federated Authenticator для связи с вашей службой Do tnet для аутентификации пользователей. Там вы должны переопределить initiateAuthenticationRequest и processAuthenticationResponse.

Редактирование ответа в новом контексте вопроса

Для создания или проверки токенов с внешняя сторона (Do tnet service), WSO2 должен заранее знать договор на обслуживание этой услуги. Чтобы получить эту информацию на сервер APIM WSO2, нужно написать расширение для службы диспетчера ключей сервера APIM WSO2.

По умолчанию APIM WSO2 имеет реализацию для взаимодействия со своим собственным компонентом диспетчера ключей и WSO2. Идентификационный сервер. Но вам нужно написать logi c (шаблоны запросов / ответов) для проверки токенов с помощью вашей службы do tnet. Это официальная документация для этого. Эти два средних сообщения также написаны на этой топи c.

По сути, вам нужно написать простой проект расширения java для упомянутого интерфейса, чтобы WSO2 знал, как общаться с вашим сервисом. образец такой реализации , написанный для Okta в качестве диспетчера ключей, указан здесь.

Что касается вашей проверки правильности обоих типов токенов;

Да можно использовать пользовательский интерфейс диспетчера ключей, как описано выше. Как только вы получите токен на стороне Менеджера API, вы можете отличить guish, если токен был выдан вашей службой Do tnet или самой WSO2 из вашей Java logi c (может быть длины токена), тогда ваш логик c должен перенаправить запрос проверки соответственно в службу проверки ключей WSO2 по умолчанию (Call super()) или в ваш сервисный вызов Do tnet. Если вы не можете различить guish между двумя токенами, просто взглянув на них, тогда вы можете попробовать оба сервера, чтобы проверить, может ли один из них проверить их. (В этом есть уязвимость безопасности.)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...