Сервер идентификации WSO2 — API SCIM2, вызываемый другим приложением (client_id и secret)

#wso2-am #wso2is

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

Вопрос:

Я пытаюсь предоставить пользователям сервер идентификации WSO2 версии 5.10.0 из другого приложения.

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

В моем случае единственное, что у меня есть, — это client_id и secret генерируется WSO2 API Manager, интегрированным с этим WSO2IS.

Когда я вызываю API, передавая сгенерированный токен в заголовке, он возвращает 403.

Как мне вызвать WSO2IS SCIM2 API из другого приложения?

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

Ответ №1:

Если вы перейдете к <PRODUCT_HOME>/repository/conf/identity/identity.xml файлу, вы можете найти содержимое следующим образом.

 <Resource context="(.*)/scim2/Users(.*)" secured="true" http-method="POST">
            <Permissions>/permission/admin/manage/identity/usermgt/create</Permissions>
            <Scopes>internal_user_mgt_create</Scopes>
</Resource>
<Resource context="(.*)/scim2/Users" secured="true" http-method="GET">
            <Permissions>/permission/admin/manage/identity/usermgt/list</Permissions>
            <Scopes>internal_user_mgt_list</Scopes>
</Resource> .....
  

Эти конфигурации связаны с тем, как защищена каждая конечная точка SCIM. Более подробную информацию можно найти на https://is.docs.wso2.com/en/latest/develop/authenticating-and-authorizing-rest-apis/#secure-resources

Если вы используете базовую аутентификацию (имя пользователя и пароль), указанное разрешение для соответствующей конечной точки требуется для пользователя, которому принадлежат учетные данные. Аналогично, если вы используете токены доступа, они должны быть сгенерированы с указанными областями. Если токен доступа не имеет требуемой области, вы получите 403 Forbidden.

Например: для создания пользователей SCIM вы должны использовать токен доступа с internal_user_mgt_create областью действия.

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

1. Привет @Anuradha Karunarathna, спасибо за вашу помощь! Это сработало! Просто нужно передать область на основе областей, определенных в identity.xml .