我正在尝试根据docs available https://docs.internetofthings.ibmcloud.com/apis/swagger/v0002-beta/security-gateway-beta.html#!/Limited_Gateway/put_authorization_devices_deviceId_roles为网关设备分配标准网关角色
但我一直收到403禁止的错误。我使用的是应用程序凭据(api密钥和令牌),它具有"Operations application“角色,因此具有分配角色的权限。
下面是一些正在运行的脚本,其中我用虚拟值替换了org、type、id和token
curl -X PUT \
https://dummyorg.internetofthings.ibmcloud.com:443/api/v0002/authorization/devices/g%3Adummyorg%3Adummytype%3Adummyid/roles \
-H 'authorization: Basic dummyauth' \
-H 'content-type: application/json' \
-d '{
"roles": [
{
"roleId": "PD_STANDARD_GW_DEVICE",
"roleStatus": 1
}
]
}'响应HTTP 403已禁用
当我尝试获取设备的角色时,它工作得很好
curl -X GET \
https://dummyorg.internetofthings.ibmcloud.com:443/api/v0002/authorization/devices/g%3Adummyorg%3Adummytype%3Adummyid/roles \
-H 'authorization: Basic dummyauth' \响应
{
"results": [
{
"roleId": "PD_PRIVILEGED_GW_DEVICE",
"roleStatus": 1
}
],
"rolesToGroups": {}
}发布于 2017-04-20 16:16:05
注意url -你必须使用'g‘并且你必须对它进行编码。您需要包含一个基本的Authorisation,其中包含您的API密钥(我的是标准应用程序):
PUT /api/v0002/authorization/devices/g%3AOrgID%3Agatewaytype%3AmyGateway/roles HTTP/1.1
Host: OrgID.internetofthings.ibmcloud.com
Authorization: Basic removed
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: removed
{
"roles": [
{
"roleId": "PD_STANDARD_GW_DEVICE",
"roleStatus": 1
}
],
"rolesToGroups": {}
}https://stackoverflow.com/questions/43512056
复制相似问题