Как создать учетные данные агента для разрешений IoT Bosch?
Я пользуюсь службой разрешений Bosch IoT Suite.
У меня есть проблема, генерирующая учетные данные агента. Какие шаги и параметры мне нужно указать для генерации учетных данных агента? Я пытаюсь создать учетные данные агента, который может автоматически активировать вновь созданные учетные записи пользователей.
1 ответ
Вот несколько шагов для создания учетных данных агента для разрешений Bosch IoT Suite:
Цель
Использовать AuthorizedClient разрешений для
- активировать пользователей, не заставляя их делать это самостоятельно
- уменьшить разрешения пользователя путем создания учетных данных агента с подмножеством прав (чтобы уменьшить влияние злоупотребления учетными данными)
Prerequisits
- Вы забронировали службу разрешений IoT на bosch-iot-suite.com
- Вы создали пользователя в службе разрешений
Ознакомьтесь с руководством по разрешениям Bosch IoT: https://permissions.s-apps.de1.bosch-iot-cloud.com/docs/developer-guide/index.html
Руководство
- Создайте токен аутентификации с вашим пользователем
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
- Включите библиотеку разрешений в свое приложение. Следуйте инструкциям в разделе Разрешения IoT компании Bosch.
- Создайте экземпляр клиента разрешений
Permissions.createClientBuilder() .clientId(clientId) .clientSecret(clientSecret) .serviceUrl(serviceUrl) .build();
- Создайте аутентифицированный клиент Permissions (имейте в виду, что у аутентифицированного клиента Permissions есть срок действия, поэтому вам нужно время от времени пересоздавать его)
permissionsClient.authenticate() .agentCredentialsId(agentCredentialsId) .password(agentPassword) .andCreateAuthorizedClient() .executeAndGet() .getAuthorizedClient();