コンテンツにスキップ

Taegis SDK for Pythonでの認証🔗

以下は、Taegis SDK for Pythonの認証フローです。

キャッシュされたトークン > OAuthによる認証 > SSOまたはユーザー名/パスワード/MFAによる認証

トークンは ~/.taegis_sdk_python/config ファイルにキャッシュされます。このパスがスクリプトから書き込み可能であることを確認してください。

OAuth🔗

デフォルトでは、OAuthトークンは環境変数 CLIENT_ID および CLIENT_SECRET から利用されます。

CLIENT_ID と CLIENT_SECRET を生成します:

from taegis_sdk_python import GraphQLService
from pprint import pprint as pp
service = GraphQLService(environment="US1")
result = service.clients.mutation.create_client(name="my_awesome_app", roles=None)
print(f"CLIENT_ID: {result.client.client_id}")
print(f"CLIENT_SECRET: {result.client_secret}")
pp(result)

重要

これらの結果は暗号化されたボールトに保存してください。

<client_id> および <client_secret> を上記で取得した値に置き換えてください:

CLIENT_ID=<client_id> CLIENT_SECRET=<client_secret> python script.py

環境変数のカスタマイズ🔗

write_to_config を使用して、アプリケーション用のカスタム環境変数名を設定できます。これは自動化して同じスクリプトから異なる環境へアクセスする必要がある場合に便利です。

from taegis_sdk_python import GraphQLService
from taegis_sdk_python.config import write_to_config

# write_to_config(environment, default_reference, custom_reference)
# these are not template strings, but environment reference names
# see next cell for usage example
write_to_config("charlie", "CLIENT_ID", "CHARLIE_CLIENT_ID")
write_to_config("charlie", "CLIENT_SECRET", "CHARLIE_CLIENT_SECRET")

service = GraphQLService()
CHARLIE_CLIENT_ID=<client_id> CHARLIE_CLIENT_SECRET=<client_secret> python script.py

ユーザー🔗

ユーザーのログインはデバイスコード認可によって処理されます。ユーザーはSecureworks® Taegis™ XDRへのリンクを受け取り、組織の設定が認証に適用されます。

ユニバーサル認証🔗

複数の環境にアクセスできるユーザーやクライアントは、use_universal_authentication 設定値を利用することでログイン回数を減らすことができます。デフォルトでは False に設定されています。

すべてのAPIコールに対して:

service = GraphQLService(use_universal_authentication=True)

APIコールごとに:

with service(use_universal_authentication=True):
    ...

認可トークンのクリア🔗

認証トークンを手動でクリアしたい場合:

from taegis_sdk_python import GraphQLService

service = GraphQLService()

service.clear_access_token()