Сервер идентификации Spring и WSO2

Я пытаюсь реализовать панель инструментов, где некоторые пользователи (те, у кого есть роль менеджера) могут добавлять, обновлять и удалять других пользователей. Есть ли способ добавить нового пользователя, обновляющего не только мою базу данных, но и сервер идентификации wso2?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
149
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Для операций CRUD, связанных с пользователем (создание, чтение, обновление и удаление), на сервере идентификации wso2 вы можете использовать SCIM2.0/Users API https://is.docs.wso2.com/en/latest/apis/scim2- отдых-apis/

Таким образом, вы можете вызывать соответствующий API SCIM2.0, связанный с вашей операцией, с панели управления, чтобы добавлять, обновлять и удалять пользователей на сервере идентификации wso2.

Спасибо, это то, что я искал! Но у меня есть проблема, если я вызываю API (например, POST localhost:9443/t/carbon.super/scim2/Users) из Postman и использую базовую авторизацию (имя пользователя и пароль), он работает, но если я использую OAuth2. 0, вставив токен JWT, URL-адрес аутентификации (localhost:9443/oauth/authorize), URL-адрес токена доступа (localhost:9443/oauth/token), идентификатор клиента, секрет клиента и область действия (internal_user_mgt_create), которую он не выполняет. не работает, я получаю 403 Forbidden, хотя я дал пользователю разрешения, которые вы мне написали

Fede 20.10.2022 11:20

Какую версию сервера идентификации WSO2 вы используете?

Udesh Athukorala 20.10.2022 13:12

Вы зарегистрировали свое приложение как приложение для управления? В сервере идентификации WSO2 6.0.0, если вам нужен доступ к API-интерфейсам управления, вам необходимо создать поставщика услуг как «приложение для управления». См. [1] для получения дополнительной информации. [1] is.docs.wso2.com/en/latest/guides/applications/register-sp/…

Udesh Athukorala 20.10.2022 13:26
Ответ принят как подходящий

Для операций USER CRUD вы можете использовать пользовательские API SCIM, упомянутые в этом документе.

Вы можете создать новую роль на сервере идентификации и добавить к ней следующие разрешения. Добавление этих разрешений гарантирует, что созданная роль имеет только права просмотра, обновления и удаления пользователя.

 - /permission/admin/manage/identity/usermgt/view
 - /permission/admin/manage/identity/usermgt/create
 - /permission/admin/manage/identity/usermgt/update
 - /permission/admin/manage/identity/usermgt/delete

После создания роли вы можете назначить роль пользователю, который хочет управлять пользователями. После этого вы можете получить токен для этого пользователя и использовать его для аутентификации пользовательских API-интерфейсов SCIM, упомянутых в этом документе, и для управления пользователями.

Спасибо, это то, что я искал! Но у меня есть проблема, если я вызываю API (например, POST localhost:9443/t/carbon.super/scim2/Users) из Postman и использую базовую авторизацию (имя пользователя и пароль), он работает, но если я использую OAuth2. 0, вставив токен JWT, URL-адрес аутентификации (localhost:9443/oauth/authorize), URL-адрес токена доступа (localhost:9443/oauth/token), идентификатор клиента, секрет клиента и область действия (internal_user_mgt_create), которую он не выполняет. не работает, я получаю 403 Forbidden, хотя я дал пользователю разрешения, которые вы мне написали

Fede 20.10.2022 11:20

Можете ли вы поделиться образцом завитка, который вы используете? Не забудьте скрыть любую конфиденциальную информацию

Sominda Gamage 20.10.2022 11:31

curl -v -X POST -H "Авторизация: базовая <client-id:client-secret>" -k -d "grant_type=password&username=<username>&password=<password>‌​&scope=internal_user‌​_mgt_create" -H " Content-Type:application/x-www-form-urlencoded" localhost: 9443/oauth2/token

Fede 20.10.2022 11:46

Попробуй это. curl -l -x post '🔁 localhost: 9443/t/carbon.super/oauth2/token ' -h 'Authorization: Basic awnuzk1rq0lgdlbwvjr0d3lscw5ut0jhcxfzyto4mwvsnldlChzuwdhfbjni‌ s3hvuud- ' --data-urlencode 'grant_type=password' --data-urlencode 'username=manager' --data-urlencode 'password=manager' --data-urlencode 'scope=internal_user_mgt_list'

Sominda Gamage 20.10.2022 13:40

Используйте приведенное выше, чтобы получить токен и соответствующим образом изменить области. Если вы пытаетесь использовать последнюю версию IS (IS 6.0.0), обязательно пометьте приложение как management application, а затем попробуйте вызов токена.

Sominda Gamage 20.10.2022 13:42

Другие вопросы по теме