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 応答を返します。