Вот несколько шагов для создания учетных данных агента для разрешений Bosch IoT Suite:
Назначение
Использование AuthorizedClient of Permissions для
- активировать пользователей, не заставляя их делать это самостоятельно
- уменьшить разрешения пользователя путем создания учетных данных агента с подмножеством прав (чтобы уменьшить влияние, если учетные данные злоупотребляют)
Предварительные условия
- Вы забронировали службу разрешений IoT на bosch-iot-suite.com
- Вы создали пользователя в службе разрешений
Ознакомьтесь с Руководством по Bosch IoT. Разрешения: https://permissions.s -apps.de1.bosch-iot-cloud.com / docs / developer-guide / index.html # Начало работы---Bosch-IoT-Suite_216542264
Guide
- Создать токен аутентификации с нужным пользователем
POST https://permissions-api.s-apps.de1.bosch-iot-cloud.com/2/rest/authentication
Headers:
x-im-client-access-token: <....>
Authorization Basic <username:password> (Base64 encoded username:password)
- Создайте Авторизационный токен с этим Аутентификационным токеном (предупреждение) Вы должны быть осторожны, чтобы правильно указать область действия в этом токене авторизации (для активации пользователей используйте область действия «pn»)
POST https://permissions-api.s-apps.de1.bosch-iot-cloud.com/2/rest/authorization/HAX?scope=pn
Headers:
x-im-client-access-token: <....>
Authorization: Bearer <authentication token>
Создание учетных данных агента с токеном авторизации
POST https://permissions-api.s-apps.de1.bosch-iot-cloud.com/2/rest/users/current/agent-credentials
Headers:
x-im-client-access-token: <....>
Authorization: Bearer <authorization token>
Body:
{
"scopes": [ "pn" ]
}
Использование в реализации Java
- Включение библиотеки разрешений в ваше приложениеруководство от Bosch IoT Permissions
- Создание экземпляра клиента Permissions
Permissions.createClientBuilder()
.clientId(clientId)
.clientSecret(clientSecret)
.serviceUrl(serviceUrl)
.build();
- Создание аутентифицированного клиента Permissions (имейте в виду, что у аутентифицированного клиента Permissions истекает срок действия,поэтому вам нужно время от времени воссоздавать его)
permissionsClient.authenticate()
.agentCredentialsId(agentCredentialsId)
.password(agentPassword)
.andCreateAuthorizedClient()
.executeAndGet()
.getAuthorizedClient();