IAM API

Overview

本APIは、各種APIを利用するユーザ作成と、利用するAPIの権限を管理するAPIです。
ユーザのアカウント作成や権限管理は、ビジネスポータルからお申込頂いた開発者ポータルのアカウント(以降、権限管理者)が実施可能です。

権限管理者は、APIによりユーザ、ユーザをまとめるユーザグループ、およびユーザに付与する権限の作成ができます。またユーザの権限を有効にするには、ユーザ、ユーザグループ、権限をAPIにより紐づけます。
ユーザは、作成直後、権限がないため、どのAPIも利用できません。

- ユーザ

 権限管理者が作成したユーザアカウント。権限管理者が設定した権限の範囲でAPIを利用可能です。

- ユーザグループ

 ユーザをまとめたグループ。お客さまが任意の名前をつけて、作成することが可能です。

- 権限

 利用するAPIをホワイトリスト形式で、指定します。指定できる要素は、利用できるAPI、APIにアクセス可能なソースIPアドレス、および各種APIで保持する情報※です。
※例えば、ネットワークサービスにおいて、特定の回線契約番号を指定することで、ユーザは、指定された契約回線番号のみAPIにて情報参照や設定変更が可能になります。

ユーザ、ユーザグループ、権限の関係性

権限管理者が作成、設定するユーザ、ユーザグループ、および権限の関係は以下の通り。
iam_relation

権限判定のロジック

ユーザは、複数のユーザグループと紐付けることができ、ユーザグループは、複数の権限と紐付けることができます。
複数の権限が紐付いている場合の複数の権限間の判定ロジックは以下の通りです。
logic
① 1つの権限内の同じ要素が複数記載されてる場合は、or条件
② 1つのユーザグループに複数の権限が紐付いている場合は、and条件
③ 1人のユーザに複数のユーザグループが紐付いている場合の各権限は、or条件

権限管理者のAPIキー利用の注意事項

セキュリティの観点から、全てのAPIが操作できる権限管理者によるAPIの操作は、権限管理API等の管理者向けのAPIでのみご利用ください。管理者向け以外のAPI(Business Process APIなど)の操作は、適切な権限を紐付けたユーザを作成し、実施してください。

How to use this API

本APIを使って、ユーザの作成から権限を有効にする設定の流れは以下の通りです。

1.ユーザ、ユーザグループ、および権限の作成

権限管理APIを設定するにあたり、ユーザ、ユーザグループ、および権限を作成します。作成の順番は、順不同。

  • ユーザの作成
  • ユーザグループの作成
  • 権限の作成

2.ユーザとユーザグループ、ユーザグループと権限の紐付け

ユーザの権限を有効にするために作成したユーザ、グループ、および権限を紐づけます。紐付けの順番は、順不同。

  • ユーザとユーザグループの紐付け
  • ユーザグループと権限の紐付け

Resource URL

グローバル共通ドメインの利用、または個別リージョンドメインをご利用ください。
グローバル共通ドメインを利用する場合、お客様のご利用箇所の状況に応じて、一番近いAPIゲートウェイに接続します。1

1.Base Path(Global Load Balance)

https://api.ntt.com/v1/iam

2.Base Path(Region)

https://{region}.api.ntt.com/v1/iam
  • region is jp|us|uk
  • e.g. https://us.api.ntt.com/v1/iam
  • 指定できるregionは、将来拡充予定

Resource Information

Key Value
レスポンス フォーマット JSON
認証(OAuth) Yes
帯域制御#1 Yes
  • #1 お客さま接続単位で適切な流量制限を実施

ユーザ作成

APIを利用するユーザを作成します。

POST /v1/iam/users

Request Parameters

Name Description Type Mandatory Notes
mail 作成するユーザのメールアドレス JSON Yes 半角英数字および記号(-_'.)60文字以内(@を含む)
portalUse 開発者ポータルの利用有無を指定#1 JSON Yes
distributorFlag 作成するユーザが自社ユーザかパートナーかを指定#2 JSON Yes
password 作成するユーザの開発者ポータルのパスワード JSON No portalUseが1の時は、必須。0の時は、不要。入力は、半角英大文字小文字および数字かつそれぞれ1つ以上を指定。8文字以上60文字以内。
  • #1 0: 使用しない / 1: 利用する
  • #2 0: 自社ユーザ / 1: パートナー

Example Request

Content-Type: application/json; charset=utf-8

POST /v1/iam/users
 [
    {
        "mail":"test@example.com",
        "portalUse":"1",
        "password":"xxxxxx",
        "distributorFlag":"0"
    }
 ]

Response Parameters

Name Description type mandatory
consumerKey 作成したユーザのAPI Key String
consumerSecret 作成したユーザのAPI Secret String
distributorFlag 作成したユーザの所属 0:自社ユーザ 1:パートナー
mail 作成したユーザのメールアドレス String
portalUse 作成したユーザの開発者ポータルの利用有無 0:利用しない 1:利用する Int
uuid 作成したユーザのuserId String

Example Result

{
    "users": [
        {
            "consumerKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
            "consumerSecret": "xxxxxxxxxxxxxxxx", 
            "distributorFlag": 0, 
            "mail": "test01@example.com", 
            "portalUse": 1, 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザ一覧の参照

ユーザ一覧を参照します。

GET /v1/iam/users

Request Parameters

なし

Example Request

 GET /v1/iam/users

Response Parameters

Name Description type mandatory
distributorFlag ユーザの所属0:自社ユーザ 1:パートナー Int
mail ユーザのメールアドレス String
portalUse ユーザの開発者ポータルの利用有無 0:利用しない 1:利用する Int
uuid ユーザのuserId String

Example Result

{
    "count": 3, 
    "users": [
        {
            "distributorFlag": 0, 
            "mail": "test01@example.com", 
            "portalUse": 1, 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }, 
        {
            "distributorFlag": 0, 
            "mail": "test02@example.com", 
            "portalUse": 1, 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }, 
        {
            "distributorFlag": 0, 
            "mail": "test03@example.com", 
            "portalUse": 0, 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

特定ユーザの情報参照

特定ユーザの情報を参照します。

GET /v1/iam/users/{userId}

Request Parameters

Name Description Type Mandatory Notes
userId 情報参照するユーザのuserId Path Yes

Example Request

 GET /v1/iam/users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
distributorFlag ユーザの所属0:自社ユーザ 1:パートナー
mail ユーザのメールアドレス String
portalUse ユーザの開発者ポータルの利用有無 0:利用しない 1:利用する Int
uuid ユーザのUUID String

Example Result

{
    "users": [
        {
            "distributorFlag": 0, 
            "mail": "test03@example.com", 
            "portalUse": 0, 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザ情報の更新

ユーザの開発者ポータルの利用有無を変更する。
変更できる情報は、開発者ポータルの利用有無のみです。(2015年9月現在)

PUT /v1/iam/users/{userId}

Request Parameters

Name Description Type Mandatory Notes
userId 情報更新するユーザのuserId Path Yes
portalUse ユーザの開発者ポータルの利用有無 JSON Yes

Example Request

Content-Type: application/json; charset=utf-8

 PUT /v1/iam/users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    {
        "portalUse": "1"
    }

Response Parameters

Name Description type mandatory
distributorFlag ユーザの所属0:自社ユーザ 1:パートナー Int
mail ユーザのメールアドレス String
portalUse ユーザの開発者ポータルの利用有無 0:利用しない 1:利用する Int
uuid ユーザのUUID String

Example Result

{
    "users": [
        {
            "distributorFlag": 0, 
            "mail": "test03@example.com", 
            "portalUse": 1, 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザ情報削除

DELETE /v1/iam/users/{userId}

Request Parameters

Name Description Type Mandatory Notes
userId 情報削除するユーザのuserId Path Yes

Example Request

 DELETE /v1/iam/users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
uuid 情報削除したユーザのUUID String

Example Result

{
    "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

特定ユーザの紐づくユーザグループ一覧の参照

特定ユーザが紐付いているユーザグループ一覧を参照します。

GET /v1/iam/users/{userId}/groups

Request Parameters

Name Description Type Mandatory Notes
userId 紐付いているユーザグループを参照するユーザのUUID Path Yes

Example Request

 GET /v1/iam/users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/groups

Response Parameters

Name Description type mandatory
groupId 所属するユーザグループのUUID String
groupName 所属するユーザグループのユーザグループ名 String
roleId 所属するユーザグループに紐づく権限のUUID String

Example Result

{
    "count": 1, 
    "entities": [
        {
            "groupId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "groupName": "sample_group", 
            "roles": [
                {
                    "roleId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ]
        }
    ]
}

ユーザのAPIキー情報の参照

ユーザのAPIキー情報を参照する。

GET /v1/iam/users/{userId}/keys

Request Parameters

Name Description Type Mandatory Notes
userId APIキーを参照するユーザのuserId Path Yes

Example Request

 GET /v1/iam/users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/keys

Response Parameters

Name Description type mandatory
consumerKey ユーザのAPI Key String
consumerSecret ユーザのAPI Secret String
status APIキーの承認ステータス approved:承認,revoke:未承認 String
uuid APIキーを参照したユーザのUUID String

Example Result

{
    "consumerKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
    "consumerSecret": "xxxxxxxxxxxxxxxx", 
    "status": "approved", 
    "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

ユーザのAPIキー情報の更新

ユーザのAPIキー情報を更新する。

POST /v1/iam/users/{userId}/keys

Request Parameters

Name Description Type Mandatory Notes
userId APIキーを更新するユーザのUUID Path Yes

Example Request

POST /v1/iam/users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/keys

Response Parameters

Name Description type mandatory
consumerKey ユーザのAPI Key String
consumerSecret ユーザのAPI Secret String
uuid APIキーを更新したユーザのUUID String

Example Result

{
    "consumerKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
    "consumerSecret": "xxxxxxxxxxxxxxxx", 
    "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

ユーザのAPIキーの承認/無効化

ユーザのAPIキーのステータスを変更します。ユーザのAPIキーを有効化、無効化できます。

POST /v1/iam/users/{userId}/keys/{API Key}

Request Parameters

Name Description Type Mandatory Notes
userId APIキーを参照するユーザのuserId Path Yes
API Key 承認/無効化するAPIキー Path Yes
action APIキーの承認/無効化の指定 approve:承認、revoke:無効 query argument Yes

Example Request

 POST /v1/iam/users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/keys/***********

Response Parameters

Name Description type mandatory
consumerKey ユーザのAPIキー String
consumerSecret ユーザのAPIシークレット String
status APIキーの承認ステータス approved:承認,revoked:無効 String
uuid APIキーを参照したユーザのUUID String

Example Result

{
    "consumerKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
    "consumerSecret": "xxxxxxxxxxxxxxxx", 
    "status": "revoked", 
    "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

ユーザグループの作成

ユーザを管理するユーザグループを作成します。ユーザグループには、任意の名前を指定できます。

POST /v1/iam/groups

Request Parameters

Name Description Type Mandatory Notes
groupName 作成するユーザグループの名前 JSON Yes

Example Request

Content-Type: application/json; charset=utf-8

POST /v1/iam/groups
{
    "groupName":"example_group"
}

Response Parameters

Name Description type mandatory
groupName 作成したユーザグループのユーザグループ名 String
uuid 作成したユーザグループのgroupId String

Example Result

{
    "groups": [
        {
            "groupName": "example_group", 
            "roles": [], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザグループ一覧の参照

ユーザグループ一覧を参照します。

GET /v1/iam/groups

Request Parameters

なし

Example Request

 GET /v1/iam/groups

Response Parameters

Name Description type mandatory
groupName 参照したユーザグループのユーザグループ名 String
uuid 作成したユーザグループのgroupId String

Example Result

{
    "count": 10, 
    "cursor": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX", 
    "groups": [
        {
            "groupName": "example_group01", 
            "roles": [
                {
                    "roleId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }, 
        {
            "groupName": "example_group02", 
            "roles": [
                {
                    "roleId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }, 
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
        {
            "groupName": "example_group09", 
            "roles": [
                {
                    "roleId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }, 
        {
            "groupName": "example_group10", 
            "roles": [
                {
                    "roleId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

特定ユーザグループの情報参照

特定ユーザグループの情報を参照します。

GET /v1/iam/groups/{groupId}

Request Parameters

Name Description Type Mandatory Notes
groupId 参照するユーザグループのUUID Path Yes

Example Request

 GET /v1/iam/groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
groupName 参照したユーザグループのユーザグループ名 String
roleId 参照したユーザグループに紐づく権限のUUID String
uuid 参照したユーザグループのUUID String

Example Result

{
    "groups": [
        {
            "groupName": "example_group", 
            "roles": [
                {
                    "roleId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザグループの情報更新

ユーザグループ名を更新する。

PUT /v1/iam/groups/{groupId}

Request Parameters

Name Description Type Mandatory Notes
groupId 更新するユーザグループのUUID Path Yes
groupName 更新するユーザグループのユーザグループ名 JSON Yes

Example Request

Content-Type: application/json; charset=utf-8

PUT /v1/iam/groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
{
"groupName": "new_group_name"
}

Response Parameters

Name Description type mandatory
groupName 更新したユーザグループのユーザグループ名 String
roleId 更新したユーザグループに紐づく権限のUUID String
uuid 更新したユーザグループのgroupId String
{
    "groups": [
        {
            "groupName": "new_group_name", 
            "roles": [
                {
                    "roleId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザグループの削除

ユーザグループにユーザが紐付いている場合、ユーザグループは削除できません。
その場合、ユーザグループとユーザの紐付けを解除してください。

DELETE /v1/iam/groups/{groupId}

Request Parameters

Name Description Type Mandatory Notes
groupId 削除するユーザグループのUUID Path Yes

Example Request

 DELETE /v1/iam/groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
groupName 削除したユーザグループのユーザグループ名 String
uuid 削除したユーザグループのgroupId String

Example Result

{
    "groups": [
        {
            "groupName": "example_group", 
            "resources": [], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

特定ユーザグループのユーザ一覧の情報参照

特定ユーザグループに紐づくユーザ一覧の情報を参照します。

GET /v1/iam/groups/{groupId}/users

Request Parameters

Name Description Type Mandatory Notes
groupId ユーザ情報を参照するユーザグループのUUID Path Yes

Example Request

 GET /v1/iam/groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/users

Response Parameters

Name Description type mandatory
userId ユーザグループに所属するユーザのUUID String
uuid ユーザ情報を参照したユーザグループのgroupId String

Example Result

{
    "count": 1, 
    "groups": [
        {
            "users": [
                {
                    "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザグループとユーザの紐付け

ユーザグループとユーザを紐付けます。
ユーザに権限を紐付けるには、権限が紐付いているユーザグループとユーザを紐付ける必要があります。

PUT /v1/iam/groups/{groupId}/users/{userId}

Request Parameters

Name Description Type Mandatory Notes
groupId ユーザを紐付けるユーザグループのUUID Path Yes
userId 紐付けるユーザのUUID Path Yes

Example Request

 PUT /v1/iam/groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
userId 紐付けられたユーザのUUID String
uuid ユーザを紐付けられたユーザグループのgroupId String

Example Result

{
    "groups": [
        {
            "users": [
                {
                    "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザグループとユーザの紐付け解除

ユーザグループとユーザの紐付けを解除します。
ユーザグループを削除する場合、ユーザが紐付いているとユーザグループを削除できません。
本APIにて、ユーザグループとユーザの紐付けを解除してから、ユーザグループを削除してください。

DELETE /v1/iam/groups/{groupId}/users/{userId}

Request Parameters

Name Description Type Mandatory Notes
groupId ユーザを削除するユーザグループのUUID Path Yes
userId 削除するユーザのUUID Path Yes

Example Request

 DELETE /v1/iam/groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
userId 削除されたユーザのUUID String
uuid ユーザを削除したユーザグループのgroupId String

Example Result

{
    "groups": [
        {
            "users": [
                {
                    "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザグループとユーザの紐付き状況の確認

ユーザグループとユーザの紐付き状況を確認します。

GET /v1/iam/groups/{groupId}/users/{userId}

Request Parameters

Name Description Type Mandatory Notes
groupId 特定ユーザの紐付き状況を確認するユーザグループのUUID Path Yes
userId 紐付き状況を確認するユーザのUUID Path Yes

Example Request

 GET /v1/iam/groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/users/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
userId 紐付き状況を確認したユーザのUUID String
uuid 特定ユーザの紐付き状況を確認したユーザグループのgroupId String

Example Result

{
    "count": 1, 
    "groups": [
        {
            "users": [
                {
                    "userId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザグループと権限の紐付け

ユーザグループに権限を紐付けます。

PUT /v1/iam/groups/{groupId}/roles/{roleId}

Request Parameters

Name Description Type Mandatory Notes
groupId 権限を紐付けるユーザグループのUUID Path Yes
roleId 紐付ける権限のUUID Path Yes

Example Request

 PUT /v1/iam/groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/roles/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
userId 紐付けられたユーザのUUID String
uuid ユーザを紐付けられたユーザグループのgroupId String

Example Result

{
    "groups": [
        {
            "groupName": "example_group01", 
            "roles": [
                {
                    "roleId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
                }
            ], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

ユーザグループと権限の紐付け解除

ユーザグループから権限の紐付けを解除します。
権限を削除する場合、ユーザグループが紐付いていると権限を削除できません。
本APIにて、ユーザグループと権限の紐付けを解除してから、権限を削除してください。

DELETE /v1/iam/groups/{groupId}/roles/{roleId}

Request Parameters

Name Description Type Mandatory Notes
groupId 権限との紐付けを解除するユーザグループのUUID Path Yes
roleId 紐付けを解除する権限のUUID Path Yes

Example Request

 DELETE /v1/iam/groups/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/roles/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
roleId 紐付けを解除された権限のUUID String
uuid 権限との紐付けを解除したユーザグループのgroupId String

Example Result

{
    "groups": [
        {
            "groupName": "example_group01", 
            "roles": [], 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

権限の作成

利用するAPIをホワイトリスト形式で、指定します。

POST /v1/iam/roles

Request Parameters

Name Description Type Mandatory Notes
roleName 作成する権限の名前 JSON Yes
basePath 利用許可するAPI名 #1 JSON Yes ワイルドカードは、*を指定
ipAddress 利用許可するアクセス元グローバルIPアドレス #2 JSON Yes ワイルドカードは、*を指定
path 利用許可するAPIリソース名 #3 JSON Yes ワイルドカードは、*を指定
verb 利用許可するMethod名 #4 JSON Yes ワイルドカードは、*を指定
  • #1 権限管理APIに対応しているAPIおよび指定方法

    API Name value
    Business Process API /v1/business-process
    APILog API /v1/apilog
    Cloudn Compute API /v1/cloudn
    Arcstar Universal One Mobile Global M2M API /v1/global-m2m
    Enterprise Cloud API /v1/ec-vcd/api
    Nexcenter API /v1/nexcenter

  • #2 指定方法 192.168.0.10/24 または 192.168.1.2

  • #3 権限管理APIに対応しているAPIリソースの指定方法の例

    API Name value
    Business Process API /contracts, /tickets, etc
    APILog API 指定なし
    Cloudn Compute API /compute
    Arcstar Universal One Mobile Global M2M API /connectivitydirectory, /subscriptionstatus, etc
    Enterprise Cloud API /login, /vAPP, etc
    Nexcenter /data_centers, /entry_apply, etc

  • #4 GET,POST,PUT,DELETE

Example Request

Content-Type: application/json; charset=utf-8

POST /v1/iam/roles
{
    "resources": [
        {
            "basePath": "*", 
            "ipAddress": "*", 
            "path": "*", 
            "verb": "*"
        }
    ], 
    "roleName": "example_role01"
}

Response Parameters

Name Description type mandatory
roleName 作成する権限の名前 JSON Yes
basePath 利用許可するAPI名 JSON
ipAddress 利用許可するアクセス元グローバルIPアドレス JSON
path 利用許可するAPIリソース名 JSON
verb 利用許可するMethod名 JSON
uuid 作成した権限のroleId JSON Yes

Example Result

{
    "roles": [
        {
            "resources": [
                {
                    "basePath": "*", 
                    "ipAddress": "*", 
                    "path": "*", 
                    "verb": "*"
                }
            ], 
            "roleName": "example_role01", 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

権限一覧の参照

権限一覧を参照します。

GET /v1/iam/roles

Request Parameters

なし

Example Request

 GET /v1/iam/roles

Response Parameters

Name Description type mandatory
basePath 利用許可するAPI名 JSON
ipAddress 利用許可するアクセス元グローバルIPアドレス JSON
path 利用許可するAPIリソース名 JSON
verb 利用許可するMethod名 JSON
roleName 参照した権限の権限名 String  Yes
uuid 参照した権限のroleId JSON Yes

Example Result

{
    "count": 10, 
    "cursor": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX", 
    "roles": [
        {
            "resources": [
                {
                    "basePath": "*", 
                    "ipAddress": "*", 
                    "path": "*", 
                    "verb": "*"
                }
            ], 
            "roleName": "example_role01", 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
        {
            "resources": [
                {
                    "basePath": "/v1/business-process", 
                    "ipAddress": "xx.xx.xx.xx/xx", 
                    "path": "/contracts", 
                    "verb": "GET"
                }
            ], 
            "roleName": "example_role02", 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }, 
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
        {
            "resources": [], 
            "roleName": "example_role09", 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }, 
        {
            "resources": [
                {
                    "basePath": "/v1/cloudn", 
                    "ipAddress": "*", 
                    "path": "/compute", 
                    "verb": "*"
                }
            ], 
            "roleName": "example_role10", 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        },
    ]
}

特定権限の情報参照

特定権限の情報を参照します。

GET /v1/iam/roles/{roleId}

Request Parameters

Name Description Type Mandatory Notes
roleId 参照する特定権限のUUID Path Yes

Example Request

 GET /v1/iam/roles/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
basePath 利用許可するAPI名 JSON
ipAddress 利用許可するアクセス元グローバルIPアドレス JSON
path 利用許可するAPIリソース名 JSON
verb 利用許可するMethod名 JSON
roleName 参照した権限の権限名 String Yes
uuid 参照した権限のroleId JSON Yes

Example Result

{
    "roles": [
        {
            "resources": [
                {
                    "basePath": "*", 
                    "ipAddress": "*", 
                    "path": "*", 
                    "verb": "*"
                }
            ], 
            "roleName": "example_role01", 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

特定権限の情報更新

特定権限の情報を更新します。

PUT /v1/iam/roles/{roleId}

Request Parameters

Name Description Type Mandatory Notes
roleId 情報更新する特定権限のUUID Path Yes
roleName 変更する権限名 JSON
basePath 変更するAPI名 JSON
ipAddress 変更するアクセス元グローバルIPアドレス JSON
path 変更するAPIリソース名 JSON
verb 変更するMethod名 JSON
  • basePath、ipAddress、path、およびverbのいずれかの情報更新をする場合、更新する情報以外は更新前の値を送る必要があります。

Example Request

Pattern 1

Content-Type: application/json; charset=utf-8

PUT /v1/iam/roles/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
{
    "roleName": "new_role_name"
}

Pattern 2

Content-Type: application/json; charset=utf-8

PUT /v1/iam/roles/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
{
    "resources": [
        {
            "basePath": "*", 
            "ipAddress": "*", 
            "path": "/compute", 
            "verb": "*"
        }
    ]
}

Response Parameters

Name Description type mandatory
basePath 利用許可するAPI名 JSON
ipAddress 利用許可するアクセス元グローバルIPアドレス JSON
path 利用許可するAPIリソース名 JSON
verb 利用許可するMethod名 JSON
roleName 参照した権限の権限名 String Yes
uuid 参照した権限のroleId JSON Yes

Example Result

{
    "roles": [
        {
            "resources": [
                {
                    "basePath": "*", 
                    "ipAddress": "*", 
                    "path": "/compute", 
                    "verb": "*"
                }
            ], 
            "roleName": "new_role_name", 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

権限の削除

権限を削除します。

DELETE /v1/iam/roles/{roleId}

Request Parameters

Name Description Type Mandatory Notes
roleId 削除する権限のUUID Path Yes

Example Request

 DELETE /v1/iam/roles/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response Parameters

Name Description type mandatory
basePath 利用許可するAPI名 JSON
ipAddress 利用許可するアクセス元グローバルIPアドレス JSON
path 利用許可するAPIリソース名 JSON
verb 利用許可するMethod名 JSON
roleName 削除した権限の名前 JSON Yes
uuid 削除した権限のroleId JSON Yes

Example Result

{
    "roles": [
        {
            "resources": [
                {
                    "basePath": "*", 
                    "ipAddress": "*", 
                    "path": "*", 
                    "verb": "*"
                }
            ], 
            "roleName": "example_role01", 
            "uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
    ]
}

  1. 2015/9現在、DNSラウンドロビン運用。準備出来次第、お客さまの地理的に近いAPIゲートウェイに自動接続予定です。別途アナウンスします。