Thing オーナー管理
Kii Cloud は Thing オーナー管理のために以下の機能を提供します。
オーナー追加
Kii Cloud は、Thing オーナーを追加するフローとして パスワードフロー と PIN コード認証フロー をサポートしています。
パスワードフロー
対象 Thing のパスワードを指定することで、自分または自分が所属するグループをオーナーとして追加できます。
新たなオーナーとしてユーザーを追加する例を以下に挙げます。
curl -v -X POST \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/vnd.kii.ThingOwnershipRequest+json" \
"https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/ownership" \
-d '{
"userID": "{USERID_OF_THE_OWNER}",
"thingPassword": "{PASSOWORD_OF_THE_THING}"
}'
次に、新たなオーナーとしてグループを追加する例を以下に挙げます。
curl -v -X POST \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/vnd.kii.ThingOwnershipRequest+json" \
"https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/ownership" \
-d '{
"groupID": "{GROUPID_OF_THE_OWNER_GROUP}",
"thingPassword": "{PASSOWORD_OF_THE_THING}"
}'
いずれの場合も、オーナー追加に成功すると Kii Cloud は 204 応答を返します。
PIN コード認証フロー
PIN コード認証フローでは、まず新たな Thing オーナー追加用の PIN コードを Kii Cloud より取得します。実際にオーナーを追加する際には、この PIN コードを正しく送信する必要があります。PIN コード認証フローの概要は PIN コード認証フロー を参照してください。
PIN コードの取得:
ユーザーを新たなオーナーとして追加する場合の PIN コード要求例を以下に挙げます。
curl -v -X POST \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
"https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/ownership/request/user:{USER_ID}"
次に、グループを新たなオーナーとして追加する場合の PIN コード要求例を以下に挙げます。
curl -v -X POST \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
"https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/ownership/request/group:{GROUP_ID}"
いずれの場合も、Kii Cloud は次のように PIN コードを返します。
200 OK
{
"code" : "XXXXXXXXXXX"
}
PIN コードのバリデーション:
PIN コードのバリデーションを行う例を以下に挙げます。
curl -v -X POST \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/vnd.kii.ThingOwnershipConfirmationRequest+json" \
"https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/ownership/cofirm" \
-d '{
"code": "XXXXXXXXXXX"
}'
PIN コードのバリデート時に必要となるアクセストークンは、誰が PIN 認証フローを開始したかによります。
Thing が認証フローを開始した場合は、オーナーとして追加するユーザーか、追加するグループのメンバーのアクセストークンが必要です。
モバイルアプリが認証フローを開始した場合は、オーナー追加対象である Thing のアクセストークンが必要です。
PIN コードのバリデーションが成功すると、Kii Cloud は 204 応答を返します。
オーナー確認
Thing、アプリ管理者、およすべての認証済みユーザーは、特定のユーザーやグループがある Thing のオーナーであるか確認できます。
Thing とアプリ管理者は全てのユーザーを確認できます。
ユーザー(含む、Thing オーナー)は、自分と自分が属するグループのみ確認できます。
あるユーザーが Thing のオーナーであるか確認を行う例を以下に挙げます。
curl -v -X HEAD \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
"https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/ownership/user:{USER_ID}"
次に、あるグループが Thing のオーナーであるか確認を行う例を以下に挙げます。
curl -v -X HEAD \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
"https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/ownership/group:{GROUP_ID}"
問い合わせたユーザーやグループが Thing のオーナーである場合、Kii Cloud は 204 応答を返します。オーナーではない場合は 404 応答を返します。
オーナー一覧取得
Thing とアプリ管理者は、Thing のオーナーであるユーザーやグループの一覧を取得できます。
オーナー一覧を取得する例を以下に挙げます。
curl -v -X GET \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
"https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/ownership"
Kii Cloud は次のようにオーナー一覧を返します。
200 OK
Content-type: application/vnd.kii.ThingOwnershipRetrievalResponse+json
{
"users" : [ "0267251d9d60-7a09-4e11-ca44-068167c6" ],
"groups" : [ "d5kl1xaf643lekoi6ur6999c1" ]
}
オーナー削除
ユーザー(含む、Thing オーナー)は自分を Thing オーナーより削除できます。またグループメンバーは、グループを Thing オーナーより削除できます。アプリ管理者は任意のオーナーを削除可能です。
オーナーよりユーザーを削除する例を以下に挙げます。
curl -v -X DELETE \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
"https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/ownership/user:{USER_ID}"
次に、オーナーよりグループを削除する例を以下に挙げます。
curl -v -X DELETE \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
"https://api-jp.kii.com/api/apps/{APP_ID}/things/{THING_ID}/ownership/group:{GROUP_ID}"
いずれの場合も、削除に成功すると Kii Cloud は 204 応答を返します。