ホーム / ブログセンター / DocuSign Connect: Pythonで"X-DocuSign-Signature-1"ヘッダーを検証する

DocuSign Connect: Pythonで"X-DocuSign-Signature-1"ヘッダーを検証する

シュンファン
2026-02-11
3分
Twitter Facebook Linkedin

DocuSign Connect と Webhook セキュリティの概要

デジタルプロトコルが進化し続ける状況において、DocuSign Connect は、署名完了やステータス更新などのエンベロープイベントに関するリアルタイム通知を提供する強力な webhook メカニズムとして機能します。この機能は、DocuSign をワークフローに統合する企業にとって不可欠であり、継続的なポーリングを必要とせずにシームレスな自動化を可能にします。ただし、webhook への依存度が高まるにつれて、セキュリティの必要性も重要になります。特に、受信リクエストを検証して、改ざんや不正アクセスを防ぐ必要があります。「X-DocuSign-Signature-1」ヘッダーはここで重要な役割を果たし、暗号化された署名を提供します。開発者は、webhook の信頼性を確保するために、この署名を検証する必要があります。

ビジネスの観点から見ると、堅牢な検証は機密性の高い契約データを保護するだけでなく、自動化されたプロセスに対する信頼を確立し、金融や法務サービスなどのコンプライアンス集約型業界における運用リスクを軽減します。

image


DocuSign または Adobe Sign を使用した電子署名プラットフォームの比較にご興味がありますか?

eSignGlobal は、グローバルコンプライアンス、透明性の高い価格設定、およびより迅速なオンボーディングプロセスを備えた、より柔軟で費用対効果の高い電子署名ソリューションを提供します。

👉 無料トライアルを開始


Python で X-DocuSign-Signature-1 ヘッダーを検証する:ステップバイステップガイド

DocuSign Connect を使用する開発者にとって、「X-DocuSign-Signature-1」ヘッダーを検証することは、webhook ペイロードが DocuSign サーバーからのものであることを確認するための不可欠なステップです。このヘッダーには、Connect の構成中に提供された共有シークレットを使用して生成されたペイロードの HMAC-SHA256 署名が含まれています。検証しない場合、システムはリプレイ攻撃やスプーフィング攻撃にさらされる可能性があり、データ侵害や誤ったビジネス上の意思決定につながる可能性があります。

ビジネス統合において検証が重要な理由

ビジネスアプリケーションでは、DocuSign Connect は、署名完了後に CRM の更新をトリガーするなど、イベント駆動型アーキテクチャを推進します。適切な検証がない場合、悪意のあるアクターが偽のイベントを注入し、販売パイプラインやコンプライアンス監査を損なう可能性があります。Python は、その豊富なエコシステムにより、hmachashlib などのシンプルなツールを提供して、このタスクを効率的に処理し、エンタープライズレベルの統合に理想的な選択肢となっています。

実装の前提条件

コードに入る前に、以下があることを確認してください。

  • Connect が構成された DocuSign 開発者アカウント(管理パネルの「Connect」からアクセス可能)。
  • Connect シークレット:これは、webhook の設定中に設定された一意の文字列です(例:32 文字のパスフレーズ)。環境変数または AWS Secrets Manager などのシークレットマネージャーを使用して、安全に保管してください。
  • Python 3.6+ がインストールされており、依存関係のために pip がインストールされている。

Python 標準ライブラリに加えて、追加のライブラリは必要ありませんが、requests は Flask または FastAPI アプリケーションでの webhook 処理を簡素化できます。

ステップ 1:Webhook を受信する

DocuSign の webhook は、エンベロープの詳細を含む JSON ペイロードを含む、エンドポイントに送信される POST リクエストです。ヘッダーには以下が含まれます。

  • X-DocuSign-Signature-1:base64 エンコードされた HMAC 署名。
  • X-DocuSign-Key-Version:通常は「1」。
  • X-DocuSign-Event:イベントタイプ(例:「envelope-sent」)。

Python webhook ハンドラーで、元の本文とヘッダーをキャプチャします。

from flask import Flask, request  # Assuming a simple Flask server
import hmac
import hashlib
import base64
import os

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])
def webhook():
    signature = request.headers.get('X-DocuSign-Signature-1')
    payload = request.get_data()  # Raw bytes, crucial for accurate signing
    secret_key = os.environ.get('DOCUSIGN_SECRET_KEY').encode('utf-8')
    
    # Verification logic here (detailed below)
    return 'OK', 200

注意:常に request.get_data() を使用して元のペイロードバイトを取得してください。文字列化するとハッシュ値が変わります。

ステップ 2:署名を生成して比較する

DocuSign は、シークレットと HMAC-SHA256 を使用して、正確なペイロードバイトに署名します。署名を再計算し、ヘッダー値と比較します。

def verify_signature(payload, signature, secret_key):
    # Compute HMAC-SHA256
    computed_signature = base64.b64encode(
        hmac.new(secret_key, payload, hashlib.sha256).digest()
    ).decode('utf-8')
    
    # Compare signatures (use secure comparison to avoid timing attacks)
    if hmac.compare_digest(computed_signature, signature):
        return True
    return False

# In the webhook function:
if verify_signature(payload, signature, secret_key):
    # Process the payload safely
    data = request.json
    print("Verified event:", data.get('envelopeSummary', {}))
else:
    print("Invalid signature - potential security issue")
    return 'Unauthorized', 403

このコードは、元のペイロードを hmac.new() に渡すことによって HMAC を再計算します。結果は、ヘッダー形式に一致するように base64 エンコードされます。タイミングベースの攻撃を軽減するために、hmac.compare_digest() を使用して一定時間比較を行います。

ステップ 3:エッジケースとベストプラクティスを処理する

  • ペイロードの並べ替え:DocuSign は受信した本文に署名します。ミドルウェアが変更しないようにしてください(例:フレームワークで本文の解析を無効にする)。
  • 複数の署名:バージョン管理されたシークレットを持つ「X-DocuSign-Signature-1」を使用する場合は、DocuSign の API を介して定期的にシークレットをローテーションします。
  • エラーログ:本番環境では、詳細を公開せずに失敗を記録します。監視のために Sentry などのツールと統合します。
  • テスト:DocuSign のサンドボックスを使用して webhook をシミュレートします。ngrok などのツールは、テストのためにローカルエンドポイントを公開できます。
  • スケーラビリティ:高容量のビジネスオペレーションでは、検証をブロックせずに処理するために、Celery を使用した非同期処理を検討してください。

実際のシナリオでは、この検証は、署名が確認された後に Salesforce レコードを更新するなど、より大きなシステムに統合されます。業界のベンチマークによると、企業は、この機能を実装することで統合の失敗を最大 40% 削減できると報告しています。

高度:DocuSign IAM および CLM との統合

DocuSign の Identity and Access Management (IAM) は、SSO とロールベースの制御を追加することで Connect を強化し、承認されたユーザーのみが webhook をトリガーできるようにします。一方、DocuSign エンタープライズスイートの一部である Contract Lifecycle Management (CLM) モジュールは、エンドツーエンドのプロトコルプロセスを自動化します。検証済みの Connect イベントは、交渉またはアーカイブを開始できます。これらの価格設定はカスタムエンタープライズレベルから始まり、通常は年間 $40/ユーザー/月の Advanced プランにバンドルされています。

image

主要な電子署名競合他社を探索する

バランスの取れた視点を提供するために、DocuSign と Adobe Sign、eSignGlobal、HelloSign(現在は Dropbox の一部)などの競合他社を検討してみましょう。各社は、価格設定、コンプライアンス、統合において独自の利点を提供し、多様なビジネスニーズに対応します。

DocuSign の概要

DocuSign は、Connect などの強力な API ツールで市場をリードしており、1,000 以上の統合をサポートしています。そのプランは、Personal ($10/月) から Enterprise (カスタム) まであり、ESIGN および eIDAS によるグローバルコンプライアンスを重視しています。ただし、シートベースの価格設定により、大規模なチームのコストが急激に上昇する可能性があります。

Adobe Sign の概要

Adobe Sign は Adobe Acrobat エコシステムと統合されており、PDF 集中型ワークフローとエンタープライズセキュリティに優れています。価格設定は DocuSign と同様で、個人向けは約 $10/ユーザー/月から始まり、ビジネスレベルでは $40+/ユーザー/月まで拡張されます。条件付きルーティングなどの高度な機能をサポートしていますが、すべての価値を実現するには追加の Adobe ライセンスが必要になる場合があります。

image

eSignGlobal の概要

eSignGlobal は、アジア太平洋地域に焦点を当てた代替案として位置付けられており、100 の主要なグローバル国および地域でコンプライアンスを遵守しています。アジア太平洋地域では、電子署名規制が断片的で、高水準で厳格に規制されているという利点があります。これは、米国およびヨーロッパのフレームワークに重点を置いた ESIGN/eIDAS 標準とは対照的です。アジア太平洋地域では、「エコシステム統合」コンプライアンスが必要であり、政府のデジタル ID (G2B) との深いハードウェア/API 統合が含まれており、西洋で一般的な電子メール検証または自己申告方法をはるかに超えています。eSignGlobal の Essential プランはわずか $16.6/月(基本的なアクセスに相当する $199/年)で、最大 100 件のドキュメントの電子署名、無制限のユーザーシート、およびアクセスコード検証が可能です。これらはすべて、コンプライアンスに準拠した費用対効果の高い料金で提供されます。香港の iAM Smart およびシンガポールの Singpass とシームレスに統合されており、参入障壁の低い地域企業に適しています。

esignglobal HK


DocuSign のよりスマートな代替案をお探しですか?

eSignGlobal は、グローバルコンプライアンス、透明性の高い価格設定、およびより迅速なオンボーディングプロセスを備えた、より柔軟で費用対効果の高い電子署名ソリューションを提供します。

👉 無料トライアルを開始


HelloSign (Dropbox Sign) の概要

HelloSign は Dropbox Sign に名前が変更され、シンプルさに重点を置いており、毎月最大 3 つのドキュメントを無料で提供し、チーム向けには $15/ユーザー/月まで拡張されます。中小企業向けの使いやすさで高く評価されていますが、DocuSign と比較して、エンタープライズコンプライアンスの深さに欠けています。

競合他社の比較表

機能/側面 DocuSign Adobe Sign eSignGlobal HelloSign (Dropbox Sign)
開始価格 (年間、ユーザーごと) $120 (Personal) $120 (Individual) $199 (Essential、無制限ユーザー) 無料 (制限付き);$180 (Essentials)
エンベロープ制限 5-100+/ユーザー/年 10-100+/ユーザー/月 100+/プラン (無制限ユーザー) 3 無料;Pro で無制限
コンプライアンスの重点 グローバル (ESIGN, eIDAS) グローバル + PDF 標準 100+ か国、アジア太平洋エコシステム 米国/国際基礎
API/Webhook サポート 高度 (Connect) 堅牢な統合 Pro に含まれる;Webhook 基本 API;テンプレート
独自の利点 エンタープライズ IAM/CLM Adobe エコシステム シート料金なし;地域 ID 統合 中小企業のシンプルさ
欠点 シートベースのコスト Adobe への依存 アジア太平洋以外での知名度が低い 限られたエンタープライズ機能

この表は、トレードオフを強調しています。DocuSign と Adobe Sign は成熟した企業に適しており、eSignGlobal と HelloSign はコスト重視または地域に焦点を当てたユーザーにアピールします。

電子署名採用に関するビジネス上の考察

ビジネスの観点から見ると、DocuSign などの webhook を検証することは、安全な自動化の基本的な要件ですが、プラットフォームの選択はスケーラビリティと地域のニーズによって異なります。アジア太平洋地域の規制の複雑さは統合ソリューションに有利であり、グローバル企業は相互運用性を優先します。電子署名市場が成長するにつれて(2028 年までに複合年間成長率 40% と予測)、企業は認証などの追加機能を含む総所有コストを評価する必要があります。

結論として、多用途の webhook セキュリティに関しては、DocuSign Connect が依然としてベンチマークです。強力な地域コンプライアンスを備えた DocuSign の代替案を探している企業は、eSignGlobal が中立的で実行可能な選択肢であることに気付くかもしれません。

avatar
シュンファン
eSignGlobalのプロダクトマネジメント責任者であり、電子署名業界で豊富な国際経験を持つベテランリーダーです。 LinkedInでフォロー
法的に拘束力のある電子署名を今すぐ取得!
30日間無料全機能トライアル
ビジネスメール
始める
tip ビジネスメールのみ許可