メインコンテンツへスキップ
Diditが750万ドルを調達、本人確認と不正対策のインフラを構築
Didit
ブログ一覧へ
ブログ2026年3月7日

PythonでDidit APIアクセスにOAuth 2.0クライアントクレデンシャルフローを実装する (JA)

API認証を習得することは、安全で効率的な統合に不可欠です。このガイドでは、Pythonを使用してDiditの強力な本人確認APIにアクセスするためのOAuth 2.0クライアントクレデンシャルフローの実装を詳しく説明し、セキュアな統合を保証します。.

By Didit更新日
implementing-oauth-2-0-client-credentials-flow-for-didit-api-access-in-python.png

安全なAPIアクセスOAuth 2.0クライアントクレデンシャルフローの実装は、機密性の高い本人確認データを保護し、Didit APIとのサーバー間通信を保護するために不可欠です。

Python実装ガイドこの記事では、Didit API呼び出し用のアクセストークンを取得および更新するための、コード例を含むステップバイステップのPythonガイドを提供します。

レート制限の理解Diditのレート制限ポリシーがAPIの安定性をどのように保護し、サービスの中断を避けるために指数関数的バックオフのようなベストプラクティスを実装する方法を学びます。

Diditの開発者ファーストアプローチDiditは、プログラムによる登録、クリーンなAPI、包括的なドキュメントを通じて、真に開発者ファーストなエクスペリエンスを提供し、統合を簡単かつ効率的にします。

APIアクセスにおけるOAuth 2.0クライアントクレデンシャルフローの理解

API統合の世界では、セキュリティが最優先事項です。アプリケーションがユーザーの関与なしにサービスAPIに直接アクセスする必要がある場合、OAuth 2.0クライアントクレデンシャルフローは、安全な認証のための業界標準の方法です。このフローは、サーバー間通信、バックグラウンドサービス、またはエンドユーザーがデータアクセスに同意する必要のないマシン間通信に最適です。代わりに、アプリケーション自体が自身の資格情報を使用して認証されます。

Diditのような堅牢な本人確認プラットフォームにとって、APIアクセスの保護は不可欠です。クライアントクレデンシャルフローは、認可されたアプリケーションのみが、ID検証、受動的および能動的生体認証、AMLスクリーニングなどのDiditの強力なIDサービススイートと対話できるようにします。この方法には、クライアントIDとクライアントシークレット(またはAPIキー)を短期間のアクセストークンと交換し、そのトークンを使用して後続のAPIリクエストを認可することが含まれます。この関心の分離は、すべてのAPI呼び出しで長期間有効な資格情報が直接公開されるのを防ぐことで、セキュリティを向上させます。

Diditの開始: 登録と資格情報の取得

Diditは、AIネイティブで開発者ファーストなIDプラットフォームであることを誇りにしています。これは、プログラムによるアクセスであっても、可能な限りシームレスに開始できるように設計されていることを意味します。手動でブラウザベースの登録を必要とする多くのプラットフォームとは異なり、Diditでは2つのAPI呼び出しだけで登録と資格情報の取得が可能です。

まず、通常はメールアドレスを提供して登録プロセスを開始します。Diditは、そのメールアドレスにOTP(ワンタイムパスワード)を送信します。2番目のステップは、OTPコードでこのメールアドレスを確認することです。確認が成功すると、Diditは自動的に組織とデフォルトのアプリケーションを作成し、アクセストークン、クライアントID、そして最も重要なapi_keyを返します。このapi_keyは、クライアントクレデンシャルフローのクライアントシークレットとして機能し、最大限の機密性をもって扱われるべきです。

あるいは、すでに組織とアプリケーションをお持ちの場合は、Didit Auth APIを使用して直接資格情報を取得できます。たとえば、GETリクエストを/organizations/me/{org_id}/applications/{app_id}/に送信すると、アプリケーションのclient_idapi_keyが返されます。これにより、セットアッププロセスが効率化され、開発者は迅速に統合し、Diditのモジュール式IDプリミティブを活用し始めることができます。

PythonでのOAuth 2.0クライアントクレデンシャルフローの実装

それでは、Pythonを使用してアクセストークンを取得する実践的な実装について見ていきましょう。基本的な考え方は、DiditのトークンエンドポイントにPOSTリクエストを送信し、クライアントIDとAPIキーを提供することです。応答には、アクセストークンとその有効期限が含まれます。


import requests
import os

# Replace with your actual client_id and api_key
CLIENT_ID = os.environ.get("DIDIT_CLIENT_ID")
API_KEY = os.environ.get("DIDIT_API_KEY") # This is your client_secret

TOKEN_URL = "https://apx.didit.me/auth/v2/oauth2/token"

def get_access_token():
    headers = {
        "Content-Type": "application/x-www-form-urlencoded"
    }
    data = {
        "grant_type": "client_credentials",
        "client_id": CLIENT_ID,
        "client_secret": API_KEY
    }

    try:
        response = requests.post(TOKEN_URL, headers=headers, data=data)
        response.raise_for_status() # Raise an exception for HTTP errors
        token_data = response.json()
        return token_data.get("access_token"), token_data.get("expires_in")
    except requests.exceptions.RequestException as e:
        print(f"Error obtaining access token: {e}")
        return None, None

access_token, expires_in = get_access_token()

if access_token:
    print(f"Successfully obtained access token: {access_token[:30]}...")
    print(f"Token expires in: {expires_in} seconds")

    # Example of using the access token for a subsequent API call
    # (replace with an actual Didit API endpoint and method)
    # API_ENDPOINT = "https://apx.didit.me/api/v2/some-didit-service"
    # auth_headers = {
    #     "Authorization": f"Bearer {access_token}"
    # }
    # try:
    #     api_response = requests.get(API_ENDPOINT, headers=auth_headers)
    #     api_response.raise_for_status()
    #     print("API call successful:", api_response.json())
    # except requests.exceptions.RequestException as e:
    #     print(f"Error making API call: {e}")

このPythonのコードスニペットは、必要なPOSTリクエストを作成する方法を示しています。例に示されているように、CLIENT_IDAPI_KEYは環境変数を使用して安全に保存することを忘れないでください。

トークン管理とレート制限に関する考慮事項

アクセストークンはセキュリティ上の理由から通常、短命です。トークンの期限が切れる前に更新する戦略を実装することが重要です。これには通常、トークンとその有効期限を保存し、現在のトークンの有効期限が近づいたら新しいトークンを要求することが含まれます。Diditのトークン応答のexpires_inフィールドは、トークンが有効な期間を正確に示しており、堅牢な更新ロジックを構築できます。

API統合のもう一つの重要な側面は、レート制限を理解し、尊重することです。Diditは、適切に設計されたAPIと同様に、安定性を維持し、公正な使用を保証するためにレート制限を適用します。たとえば、Diditは通常、GETおよび書き込み/削除エンドポイントの両方で、アプリケーションごとに1分あたり300リクエストを許可しています。セッション作成(POST /v2/session/)のような影響の大きい操作には、特定のより厳格な制限(例:ワークフローの場合は600 rpm)がある場合があります。アプリケーションがこれらの制限を超過すると、Diditは429 Too Many Requests HTTPステータスコードを返し、スロットリング戦略をガイドするためのX-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset(エポック秒)のような有用なヘッダーも返します。Retry-Afterヘッダーは、レート制限違反を適切に処理するための推奨戦略である指数関数的バックオフを実装するのに特に役立ちます。

適切なトークン管理を実装し、レート制限を遵守することで、Diditとの統合が安全かつ信頼性の高いものとなり、不要なサービス中断を防ぐことができます。

Diditが提供するもの

Diditは、AIネイティブで開発者ファーストなプラットフォームにより、複雑な本人確認の課題を簡素化します。当社のモジュール式アーキテクチャにより、包括的なID検証(OCR、MRZ、バーコードを含む)や、ディープフェイク防止のための高度な受動的・能動的生体認証検出から、生体認証のための1:1顔照合および顔検索、コンプライアンスのための堅牢なAMLスクリーニングおよびモニタリングまで、必要な正確なIDチェックをプラグアンドプレイで利用できます。当社の住所証明、年齢推定(プライバシー保護)、電話およびメール検証製品は、お客様がカスタマイズされた検証ワークフローを構築する能力をさらに強化します。

Diditは、無料のコアKYCを提供し、セットアップ費用を不要にし、クリーンなAPIと強力なノーコードビジネスコンソールを開発者向けに提供することで際立っています。この柔軟性により、API駆動型開発を好むか、視覚的なワークフロービルダーを好むかにかかわらず、Diditを既存のシステムに簡単に統合できます。構造化されたIDデータとグローバルな設計に対する当社のコミットメントは、お客様の検証プロセスが効率的でスケーラブルであり、世界中で準拠していることを保証します。本投稿で強調されているプログラムによる登録と資格情報の取得は、Diditがシームレスな開発者エクスペリエンスをどのように優先しているかを示す一例にすぎず、これにより、複雑な認証のハードルを乗り越えるのではなく、構築に集中できます。

開始する準備はできましたか?

Diditの動作をご覧になりませんか?今すぐ無料デモを入手してください。

Diditの無料ティアで、無料で本人確認を開始しましょう。

本人確認と不正対策のインフラ。

KYC、KYB、取引監視、ウォレットスクリーニングを一つのAPIで。5分で統合できます。

AIにこのページの要約を依頼する
PythonでDidit API向けOAuth 2.0クライアントクレデンシャル.