Skip to main content

例:トラブルシューティングのためのアクセス制御のクエリ (プレビュー) Hosted customers only

注記

この機能は、SaaS版ご利用のお客様のみでサポートされ、プレビューモードとなります。この機能を先行して導入したい場合は、Contrastサポートまでご連絡ください。

本項では、認可の問題のトラブルシューティングを行う際に、Contrast APIを使用してアクセス制御の情報を取得する方法の例を示します。

APIを使用してユーザのロールベースのアクセス制御の情報を取得するには、 「組織の管理」アクションと「プラットフォーム組織の管理」アクションを含むロールが必要です。

ユーザIDのクエリ

ユーザIDを取得するには、以下のクエリを使用します。

  1. 以下の環境変数を設定します。

    HOSTNAME=http://<YourHostName>
    ADMIN_APIKEY=<ServiceKey>
    ADMIN_AUTH=<AdminAuthorization>
    ORGID=<OrganizationId>
    USER_EMAIL=<UserEmail>
    USERID=<obtained in the next step>

    Contrast Webインターフェイスで、管理者またはユーザの変数値をユーザメニュー > ユーザの設定より、取得できます。

    • <YourHostName>は、ContrastインスタンスのURLに置き換えます。例:https://mycompany.com/Contrast

    • <ServiceKey>は、管理者のサービスキーに置き換えます。

    • <AdminAuthorization>は、管理者の認証ヘッダーに置き換えます。

    • <OrganizationID>は、ユーザが所属する組織のIDに置き換えます。

    • <UserEmail>は、Contrastにログインする際に使用するユーザのEメールアドレスに置き換えます。

  2. ユーザのIDを見つけるには、以下のクエリを実行します。

    curl -X GET --location "$HOSTNAME/api/v4/organizations/$ORGID/users/$USER_EMAIL" \
        -H "API-Key: $ADMIN_APIKEY" \
        -H "Authorization: $ADMIN_AUTH"

    クエリの結果例(ユーザIDは強調表示されています):

    {
      "userId": "4790deb8-972d-47c8-b2d0-219617999c83",
      "username": "contrast_view",
      "organizationId": "2f95790d-64dd-4344-9b1c-920021d112bb",
      "firstName": "NX374ERI11",
      "lastName": "KFG0S17TX6",
      "status": "ACTIVE",
      "type": "STANDARD",
      "enabled": true,
      "language": "en",
      "dateTimePreferences": {
        "dateFormat": "MM/dd/yyyy",
        "timeFormat": "hh:mm a",
        "timeZone": "EST"
      },
      "auditDates": {
        "lastLoginTime": "2024-05-29T14:28:00.000+00:00",
        "creationDate": "2024-04-23T20:33:21.000+00:00"
      },
      "userAccessGroupMembership": [
        {
          "userAccessGroupId": "725e7af7-8cf4-44b3-a6d2-b30e6df6573e"
        },
        {
          "userAccessGroupId": "eeb65497-1e65-4eb3-99af-b781a4ce7d29"
        },
        {
          "userAccessGroupId": "12565428-1063-41c4-ada0-cbee082f5eca"
        }
      ],
      "apiOnly": false,
      "external": false,
      "serviceKey": "demo"
    }
  3. USERID変数にユーザIDを割り当てます。

    USERID=4790deb8-972d-47c8-b2d0-219617999c83

ユーザアクセスのクエリ

ユーザのすべてのアクセス制御の情報を取得するには、以下のクエリを実行します。

curl -X GET --location "$HOSTNAME/api/v4/organizations/$ORGID/access-control-query/users/$USERID" \
    -H "API-Key: $ADMIN_APIKEY" \
    -H "Authorization: $ADMIN_AUTH"

ログイン権限のクエリ

ユーザにログイン権限があるかどうかを調べるには、以下のクエリを実行します。

ユーザには、少なくとも「組織の閲覧」アクションを含むロールが必要です。以下のクエリを実行します。

curl -s -X GET --location "$HOSTNAME/api/v4/organizations/$ORGID/access-control-query/users/$USERID" -H "API-Key: $ADMIN_APIKEY" -H "Authorization: $ADMIN_AUTH" \
    | jq | grep ORG_SETTINGS | sort | uniq | wc -l | if grep -q 0; then echo "Not configured for login"; else echo "Configured for login"; fi

結果例:

Configured for login

ユーザロールのクエリ

ユーザに割り当てられているすべてのロールを検索するには、以下のクエリを実行します。

curl -s -X GET --location "$HOSTNAME/api/v4/organizations/$ORGID/access-control-query/users/$USERID" -H "API-Key: $ADMIN_APIKEY" -H "Authorization: $ADMIN_AUTH" \
    | jq | grep roleName | sort | uniq

結果例:

"roleName": "ORGANIZATION_VIEW_ROLE",
"roleName": "rg with 1 app role",

ユーザアクセスグループのクエリ

ユーザに割り当てられているすべてのユーザアクセスグループを検索するには、以下のクエリを実行します。

curl -s -X GET --location "$HOSTNAME/api/v4/organizations/$ORGID/access-control-query/users/$USERID" -H "API-Key: $ADMIN_APIKEY" -H "Authorization: $ADMIN_AUTH" \
    | jq | grep userAccessGroupName | sort | uniq

結果例:

"userAccessGroupName": "Organization View",
"userAccessGroupName": "rg with 1 app uag",

リソースの種類、アクション、IDのクエリ

ユーザのリソース、アクション、ID の一覧を取得するには、以下のクエリを実行します。

curl -s -X GET --location "$HOSTNAME/api/v4/organizations/$ORGID/access-control-query/users/$USERID" \
    -H "API-Key: $ADMIN_ADMIN_APIKEY" \
    -H "Authorization: $ADMIN_AUTH" | jq '.accessList[] | "\(.resourceType) \(.actions) \(.resourceId)"' | sort | uniq

結果例:

"APPLICATION [\"APPLICATION_EDIT\",\"APPLICATION_RULES_ADMIN\",\"APPLICATION_ADMIN\",\"APPLICATION_VIEW\"] 0383916c-956b-418b-a114-0ffc3420cb1c"
"APPLICATION [\"APPLICATION_EDIT\",\"APPLICATION_RULES_ADMIN\",\"APPLICATION_ADMIN\",\"APPLICATION_VIEW\"] 1a7539c4-2339-4524-958d-b60482ebf1f8"
"APPLICATION [\"APPLICATION_EDIT\",\"APPLICATION_RULES_ADMIN\",\"APPLICATION_ADMIN\",\"APPLICATION_VIEW\"] 2762d3b4-1033-406e-94cc-f4040b6e7111"
"APPLICATION [\"APPLICATION_EDIT\",\"APPLICATION_RULES_ADMIN\",\"APPLICATION_ADMIN\",\"APPLICATION_VIEW\"] 7843ab03-84a7-4f21-93bf-37e7bf47f94d"
"APPLICATION [\"APPLICATION_EDIT\",\"APPLICATION_RULES_ADMIN\",\"APPLICATION_ADMIN\",\"APPLICATION_VIEW\"] 97b1a6a1-ee34-4974-9ee2-4c92733de2bb"
"APPLICATION [\"APPLICATION_EDIT\",\"APPLICATION_RULES_ADMIN\",\"APPLICATION_ADMIN\",\"APPLICATION_VIEW\"] a8b804ad-cbe4-43e7-a03f-3f639f5680ab"
"APPLICATION [\"APPLICATION_EDIT\",\"APPLICATION_RULES_ADMIN\",\"APPLICATION_ADMIN\",\"APPLICATION_VIEW\"] d0c389d7-744c-4f2a-b391-8bf41c0dc09c"
"APPLICATION [\"APPLICATION_EDIT\",\"APPLICATION_RULES_ADMIN\",\"APPLICATION_ADMIN\",\"APPLICATION_VIEW\"] de9248b1-e8f5-43b9-a4e3-8a65e844691d"
"APPLICATION [\"PROTECT_ACCESS\",\"PROTECT_POLICIES_MANAGE\"] 0383916c-956b-418b-a114-0ffc3420cb1c"
"APPLICATION [\"PROTECT_ACCESS\",\"PROTECT_POLICIES_MANAGE\"] 1a7539c4-2339-4524-958d-b60482ebf1f8"
"APPLICATION [\"PROTECT_ACCESS\",\"PROTECT_POLICIES_MANAGE\"] 2762d3b4-1033-406e-94cc-f4040b6e7111"
"APPLICATION [\"PROTECT_ACCESS\",\"PROTECT_POLICIES_MANAGE\"] 7843ab03-84a7-4f21-93bf-37e7bf47f94d"
"APPLICATION [\"PROTECT_ACCESS\",\"PROTECT_POLICIES_MANAGE\"] 97b1a6a1-ee34-4974-9ee2-4c92733de2bb"
"APPLICATION [\"PROTECT_ACCESS\",\"PROTECT_POLICIES_MANAGE\"] a8b804ad-cbe4-43e7-a03f-3f639f5680ab"
"APPLICATION [\"PROTECT_ACCESS\",\"PROTECT_POLICIES_MANAGE\"] d0c389d7-744c-4f2a-b391-8bf41c0dc09c"