許可リスト登録済みドメインのリスト取得と取得
このページでは、Allowlisted Domains API を使用して許可リスト内の特定のドメインを一覧表示して取得する方法を示すコード例と運用上の詳細について説明します。
始める前に
次の作業を実施した後、このページの内容に進んでください。
許可リストに登録されているドメインの一覧を取得する
list メソッドを使用して、すべてのエントリを取得します。必要に応じて、pageSize、pageToken、または filter の文字列を指定して結果を絞り込むことができます。
Python
def list_allowlisted_domains(
service, page_size=None, page_token=None, domain_filter=None
):
"""Lists allowlisted domains."""
try:
filter_string = None
if domain_filter:
filter_string = f"domain = '{domain_filter}'"
response = (
service.allowlistedDomains()
.list(
pageSize=page_size, pageToken=page_token, filter=filter_string
)
.execute()
)
return response
except Exception as e:
print(f'An error occurred during list: {e}')
return None
特定のドメインを取得する
前のリスト オペレーションで取得したリソース名を使用して、特定のドメインを同期的に取得します。
Python
def get_allowlisted_domain(service, resource_name):
"""Gets an allowlisted domain."""
if not resource_name:
print('Resource name is missing.')
return None
try:
response = service.allowlistedDomains().get(name=resource_name).execute()
return response
except Exception as e:
print(f'An error occurred during get: {e}')
return None
エラー処理
このセクションでは、許可リストに登録されたドメインを一覧表示または取得する際に発生する一般的なエラー条件とトラブルシューティングの手順について説明します。
リストのエラー処理
| エラー条件 | RPC ステータス コード | エラー メッセージ | トラブルシューティング / 正当性 |
|---|---|---|---|
| リソースに対する権限がない | PERMISSION_DENIED (403) |
"Permission denied for allowlisted domain resource." |
• ユーザーに適切なスコープが付与されていることを確認します。 • ユーザーに必要な権限があることを確認します。 • 連絡先メールアドレスに問い合わせて、プロジェクト/ユーザーが許可リストに登録されているかどうかを確認します。 |
| ユーザーの顧客 ID が見つからない | NOT_FOUND (404) |
"Customer ID not found for user." |
ログインしているユーザーが有効なドメインに関連付けられていません。 |
| ページネーション中にリストが変更されました | ABORTED |
"List has been mutated. Please restart pagination." |
ページネーション中に基盤となるドメインのリストが変更(ミューテーション)されました。allowlistedDomains.list オペレーションを最初のページから再開する必要があります。並行して進行中のミューテーションがある場合は、完全なリストを一度に取得することを検討してください。 |
| 無効なドメイン フィルタ値が指定されました | INVALID_ARGUMENT (400) |
"Invalid domain filter value provided. Error: <Error message>." |
リスト リクエストのフィルタ パラメータで指定されたドメインが空でないか、構文が無効でないかを確認します。 無効なフィルタ パラメータが指定された場合: フィルタで無効な構文またはサポートされていないオペレーションが渡されたため、 allowlistedDomains.list オペレーションが失敗しました。エラー メッセージに正確なユースケースが表示されます。API を呼び出す際は、次の形式を使用してください。GET https://cloudidentity.googleapis.com/v1/allowlistedDomains?filter="domain = 'google.com'" |
| フィルタ式が無効です | INVALID_ARGUMENT (400) |
"Invalid filter expression: %s." |
リクエストで渡されたフィルタ式が正しくありません。 |
| 複合条件は対象外 | INVALID_ARGUMENT (400) |
"Composite conditions (AND, OR, NOT) are not supported in the filter." |
フィルタは複合条件をサポートしていません。単一条件のフィルタリングのみが許可されます。 |
| 「=」演算子のみがサポートされています | INVALID_ARGUMENT (400) |
"Only '=' operator is supported in the filter." |
すべてのフィルタ式に等価演算子(=)を使用します。他のオペレーションはサポートされていません。 |
| 「domain」フィールドのみがサポートされています | INVALID_ARGUMENT (400) |
"Only 'domain' field is supported in the filter." |
フィルタはドメイン フィールド(domain = 'example.com' など)を対象とする必要があります。他のフィールドは対象外です。 |
| RHS に無効なメンバー値が含まれています / 文字列である必要があります | INVALID_ARGUMENT (400) |
"RHS of filter expression has invalid member value.""RHS of filter expression should be a string." |
フィルタ式の右辺(RHS)の値は文字列(ドメイン名)にする必要があります。 |
| ページサイズが負の値である | INVALID_ARGUMENT (400) |
"Page size cannot be negative." |
pageSize パラメータが負でない整数であることを確認します。 |
| 無効なページトークン | INVALID_ARGUMENT (400) |
"Invalid page token." |
このエラーは、トークンの形式が正しくないか、有効期限が切れていることを示します。直前のリスト レスポンスの nextPageToken フィールドから提供されたトークンを、変更せずにそのまま使用してください。検証に失敗した場合は、pageToken パラメータを省略して、最初のページからページ設定を再開します。 |
エラー処理を取得する
| エラー条件 | RPC ステータス コード | エラー メッセージ | トラブルシューティング / 正当性 |
|---|---|---|---|
| リソースに対する権限がない | PERMISSION_DENIED (403) |
"Permission denied for allowlisted domain resource." |
• ユーザーに適切なスコープが付与されていることを確認します。 • ユーザーに必要な権限があることを確認します。 • 連絡先メールアドレスに問い合わせて、プロジェクト/ユーザーが許可リストに登録されているかどうかを確認します。 |
| ユーザーの顧客 ID が見つからない | NOT_FOUND (404) |
"Customer ID not found for user." |
ログインしているユーザーが有効なドメインに関連付けられていません。 |
| ドメインが許可リストに登録されていない | NOT_FOUND (404) |
"Allowlisted domain <domain> not found" |
指定されたドメインが許可リストに登録されていません。 |
| リソース名が無効です | INVALID_ARGUMENT (400) |
"Invalid resource name: <resourceName>." |
リソース名の形式を検証する: name パラメータに使用する文字列は、allowlistedDomains/UNIQUE_IDENTIFIER 形式に正確に準拠している必要があります。 |