Я пытаюсь реализовать панель инструментов, где некоторые пользователи (те, у кого есть роль менеджера) могут добавлять, обновлять и удалять других пользователей. Есть ли способ добавить нового пользователя, обновляющего не только мою базу данных, но и сервер идентификации wso2?
Для операций CRUD, связанных с пользователем (создание, чтение, обновление и удаление), на сервере идентификации wso2 вы можете использовать SCIM2.0/Users API https://is.docs.wso2.com/en/latest/apis/scim2- отдых-apis/
Таким образом, вы можете вызывать соответствующий API SCIM2.0, связанный с вашей операцией, с панели управления, чтобы добавлять, обновлять и удалять пользователей на сервере идентификации wso2.
Какую версию сервера идентификации WSO2 вы используете?
Вы зарегистрировали свое приложение как приложение для управления? В сервере идентификации WSO2 6.0.0, если вам нужен доступ к API-интерфейсам управления, вам необходимо создать поставщика услуг как «приложение для управления». См. [1] для получения дополнительной информации. [1] is.docs.wso2.com/en/latest/guides/applications/register-sp/…
Для операций 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, хотя я дал пользователю разрешения, которые вы мне написали
Можете ли вы поделиться образцом завитка, который вы используете? Не забудьте скрыть любую конфиденциальную информацию
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
Попробуй это. 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'
Используйте приведенное выше, чтобы получить токен и соответствующим образом изменить области. Если вы пытаетесь использовать последнюю версию IS (IS 6.0.0), обязательно пометьте приложение как management application
, а затем попробуйте вызов токена.
Спасибо, это то, что я искал! Но у меня есть проблема, если я вызываю 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, хотя я дал пользователю разрешения, которые вы мне написали