API を使用してカスタム ロールを作成する
ロールは、ユーザーに割り当てられる一連のアクセス許可です。 ネットワーク 管理などのプラットフォーム ロールに加えて、必要なアクセス許可のセットのみを持つカスタム ロールを作成することもできます。
API がユーザーのアクセス許可を付与する方法は、リソースへのアクセス権をユーザーに付与 することです。
このページでは、API を使用してカスタム ロールを作成する方法について説明します。
手順 1: ロール リソースを決定する
カスタム ロールを設計するときは、まず、ロールがアクセスできるリソースを決定する必要があります。 たとえば、ロールはリソース ID 157 にアクセスできます。これにより、 "UI API Ad Profile Create"
そのロールのユーザーは 広告プロファイルを作成できます。
メンバーのユーザーがアクセスできる可能性があるシステム内のリソースの一覧を表示するには、「 API を使用してシステム リソースを表示する」を参照してください。
この例では、カスタム ロールは次のリソースにアクセスできます。
ID | 役割 |
---|---|
1 | API Yield Auction Tier Create |
2 | API 支払ルールの読み取り |
手順 2: ロール JSON を作成する
これらのリソースへのアクセス権を新しいロールに付与するには、次のような JSON オブジェクトをアップロードする必要があります。
注:
name
と の一覧resources
が必要です。
次の手順で追加する必要があるロール JSON の "最初の下書き" を次に示します。
{
"access-member-role" : {
"description" : "Auction Tiers and Payment Rules Only",
"resources" : [
{
"id" : 1
},
{
"id" : 2
}
],
"name" : "[test] auction-tier-payment-rule"
}
}
手順 3: リソースの依存関係を調べる
特定のリソースは、多くの場合、他のより一般的なリソースに依存します。 カスタム ロールが必要なすべてのシステム リソースにアクセスできるようにするには、すべての依存関係を手動で指定して追加する必要があります。
これを簡単にするために、必要な依存関係を見つけるために使用できる API サービスがあります。 次に GET
示すように、 Access Resource Dependency List Service サービス を呼び出します。 クエリ文字列パラメーターを resource_id
含める必要があります。
$ curl -b /Users/username/.x-api-client/usor-env-cookies -X GET \
'https://api.appnexus.com/access-resource-dependency-list?resource_id=1'
フィールドにリソース ID の一覧が children
返されます。 これらの ID をロール JSON に追加する必要があります。
注:
これらの依存関係には、独自の依存関係が含まれる場合があります。
{
"response" : {
"access-resource-dependency-list" : [
{
"children" : [
153,
163,
171
],
"resource_id" : 1,
"parents" : [
146
],
"dependencies" : [
153,
163,
171
]
}
],
"count" : 1,
"start_element" : 0,
"status" : "OK",
"num_elements" : 0
}
}
手順 4: リソースの依存関係を使用してロール JSON を更新する (必要な場合)
カスタム ロールのリソースに依存関係がある場合は、それらをロール JSON に追加します。 次のサンプルのようになります。
{
"access-member-role" : {
"name" : "[test] auction-tier-payment-rule",
"resources" : [
{
"id" : 1
},
{
"id" : 2
},
{
"id" : 153
},
{
"id" : 163
},
{
"id" : 171
}
],
"description" : "Auction Tiers and Payment Rules Only"
}
}
手順 5: POST
JSON のロール
POST
アクセス メンバー ロール サービスに対するロール JSON。
$ curl -b cookies -X POST -d '@create-custom-role.json' \
'https://api.appnexus.com/access-member-role?member_id=1282'
すべてが計画通りに進んだ場合は、次のような応答が表示されます。 リソースの依存関係の完全な一覧を指定するのを忘れた場合は、必要な依存関係のリソース ID でエラーが返されます。
{
"response" : {
"access-member-role" : [
{
"id" : 113,
"last_modified" : "2016-04-04 21:05:48",
"resources" : [
{
"name" : "hbapi-ym-auction-tier-post",
"id" : 1
},
{
"id" : 2,
"name" : "hbapi-payment-rule-get"
},
{
"id" : 153,
"name" : "hbapi-ym-auction-tier-get"
},
{
"id" : 163,
"name" : "hbapi-ym-profile-get"
},
{
"name" : "hbapi-publisher-get",
"id" : 171
}
],
"description" : "Auction Tiers and Payment Rules Only",
"member_id" : 1282,
"name" : "[test] auction-tier-payment-rule"
}
],
"start_element" : 0,
"status" : "OK",
"count" : 1,
"num_elements" : 1
}
}