2016-10-18 3 views
1

Недавно я обновил свою среду с WSO2 IS 5.0.0 до WSO2 IS 5.2.0. Моя среда состоит из 2 машин, которые создают кластер (с использованием схемы членства WKA и балансировки нагрузки (AWS ELB) с включенным липким сеансом). Я использую MySQL (а не базу данных по умолчанию H2). Машины, на которых развертывается ИС, - это Windows Server 2012 R2 (машины EC2 AWS). Я также использую так называемые службы WSO2 IS Admin.UserProfileMgtService не может найти пользователя в WSO2 IS 5.2.0

Как упоминалось в заголовке, я потребляю UserProfileMgtService
(https://url:port/services/UserProfileMgtService?wsdl).
В сочетании с этим я использую OAuth2TokenValidationService
(https://url:port/services/OAuth2TokenValidationService?wsdl).

Если я передаю действительный токен доступа в OAuth2TokenValidationService, я могу заполнить объект OAuth2TokenValidationResponseDTO с помощью метода Validate для OAuth2TokenValidationService. В результате я могу извлечь авторизованный пользователь и передать его методу getUserProfile для UserProfileMgtService. Я использую стандартный домен carbon.super, и я использую адрес электронной почты как имя пользователя. Например я передаю два параметра в getUserProfile:
«админ @ admin.com @ carbon.super» в качестве имени пользователя
«по умолчанию», как ProfileName
И как результат я получаю следующее сообщение:
UserNotFound : User admin @ admin.com @ carbon.superdoes не существует: PRIMARY
Если я удалю «@ carbon.super» из авторизованного пользователя, все в порядке, и я могу получить информацию о профиле пользователя. Это очень важно для меня, поскольку я использую многопоточность IS, и есть случай, когда у меня могут быть следующие пользователи:
admin @ admin.com @ test.net
admin @ admin.com @ test2.net

Я заметил, что эта услуга не работает в WSO2 IS 5.0.0. Я начал испытывать эту проблему после обновления.

Это желаемое поведение и введено из-за изменения API в IS 5.2.0? Если это так, есть еще один способ получить профиль пользователя, используя «имя пользователя» + «домен-арендатор» (который извлекается OAuth2TokenValidationService в качестве авторизованного пользователя при передаче действительного токена доступа).
Возможно ли, что это вызвано неправильной конфигурацией? Если да, то какой файл необходимо обновить и что именно нужно изменить в нем?
Есть ли место, где можно было бы получить более подробную информацию о службах WSO2 IS 5.2.0 Admin?

Заранее спасибо.

ответ

1

UserProfileMgtService в Identity Server - это служба администратора. В службах WSO2 Admin, домен арендатора идентифицируется аутентифицированным пользователем и не должен проходить с именем пользователя.

имя пользователя должно быть свободным для арендатора.

Итак, вы можете удалить часть carbon.super из имени пользователя, а затем оно будет работать.

В настройке арендатора вам необходимо пройти аутентификацию с помощью арендатора (Ex admin @ admin.com @ test.net), чтобы получить доступ к этим API. Итак, как и в супер арендаторе, вы можете использовать бесплатное имя пользователя арендатора, а затем оно будет работать.

Например, если вы хотите получить анкету пользователя: [email protected] в tenant domain test.net, ваш запрос должен быть как указано ниже.

enter image description here

Благодаря
Isura.

+0

Спасибо за ответ. Я получил вашу точку зрения (я думаю), я использую учетные данные администратора для предоставления контекста службы, а затем я всего лишь имя пользователя. Если я передам учетные данные администратора carbon.super, я собираюсь получить профили от арендатора carbon.super. И если я передам учетные данные администратора test.net арендатора, я получу идентификаторы от арендатора test.net. –

+2

Да. Ты прав. Чтобы получить профиль в данном арендаторе, требуется аутентификация с тем же арендатором. –

Смежные вопросы