WSO2: Можно ли использовать токен доступа IS для токена доступа APIM к API для тех же пользователей?

#wso2 #wso2is #wso2-am #wso2carbon

#wso2-api-manager #wso2 #wso2-identity-server

Вопрос:

При интеграции сервера идентификации WSO2 (5.6.0) и WSO2 APIM (2.5.0). Я наткнулся на один сценарий, в котором я хочу, чтобы токен, который я генерирую при входе в IS, использовался также для вызова API в APIM, которые создаются одним и тем же пользователем.

Я создаю пользователя в IS, и это отражается в APIM, но токен, который генерируется для IS, сохраняется в IDN_OAUTH2_ACCESS_TOKEN базы данных IS, а для APIM при вызове любых API для того же пользователя токен сохраняется в IDN_OAUTH2_ACCESS_TOKEN APIM.

Я хочу использовать тот же токен, который был сгенерирован в IS, для вызова API, которые тот же пользователь создал в APIM.

Любое руководство в этом направлении поможет мне понять.

Спасибо

Ответ №1:

При распределенном развертывании APIM вы можете использовать IS в качестве узла управления ключами. В следующем документе объясняется, как его настроить.

https://docs.wso2.com/display/AM260/Configuring WSO2 Identity Server as a Key Manager

В этом документе объясняется (шаг 3), как совместно использовать базы данных между APIM и IS. Вы можете использовать то же самое для достижения того, чего вы хотите.

Короче говоря, вам нужно настроить IS на использование APIM DB (совместно используемой между 2 узлами) вместо его собственной IS DB.

Вам также необходимо сопоставить приложение в API store с приложением OAuth, которое вы создали в IS. Смотрите этот документ для этого.

https://docs.wso2.com/display/AM260/Provisioning Out-of-Band OAuth Clients

Комментарии:

1. Спасибо Bee. Я смог сделать это, создав UM_DB, REG_DB и AM_DB, которые являются общими для APIM и IS, но вы говорите, что если у нас должен быть один и тот же токен для IS и APIM, то оба они должны выполняться на одном сервере?

2. Достаточно совместного использования базы данных.

3. хорошо .. теперь, когда я пытаюсь создать новый токен API для конкретного пользователя, я получаю сообщение об ошибке ниже: ОШИБКА — AbstractKeyManager не может создать приложение OAuth: DefaultApplication_PRODUCTION org.apache.axis2.AxisFault: служба не может быть найдена для ссылки на конечную точку (EPR) localhost: 9445 / services /APIKeyMgtSubscriberService Любое предложение, пожалуйста

4. Я вызываю токен из хранилища API, и это сообщение об ошибке от серверной части. 9445 — это порт, на котором IS запущен на том же сервере, где APIM

5. Вы тоже выполнили шаг 5 документа? Вам не обязательно. Если вы следуете всему документу (что, впрочем, лучше всего сделать), вам нужно использовать сервер IS as KM вместо чистого сервера IS, как упоминалось в шаге 1. IS as KM server = Pure IS server KM features