次の方法で共有


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
   }
}

ヒント

リソースに関する詳細情報の取得

リソースの依存関係の詳細については、「API を使用して システム リソースを表示する」の手順を参照してください。

手順 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
   }
}