メニュー

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Twilio API: アクセストークン

アクセストークンはVoiceChat、そしてVideoといったTwilio Client SDKの認証に使用できる生存期間の短いトークンです。 開発者のサーバー上でこのトークンを作成し、クライアントのアイデンティティーを検証し、クライアントAPIの機能へのアクセス権を付与します。 全てのトークンは限られた期間の生存期間を持っています。最大で24時間です。しかしながら、ベストプラクティスとしては開発中のアプリケーションに適したもっとも短い時間のアクセストークンを生成することが求められます。

目次

トークンを生成する

TwilioアクセストークンはJSON Web Tokenに準規しています。アクセストークンの JWT フォーマットの詳細については、こちらをご覧ください。ただし、Twilio のオフィシャルヘルパーライブラリーを利用している場合は、トークン生成機能を使用できるので、トークンの構造を知る必要はありません。

では、アプリケーションでアクセストークンを作成する方法について説明します。

Step 1: APIキーを作成する

最初に、APIキーを作成します。これにはアクセストークンの署名に使用するシークレットが含まれます。API キーは、Twilio コンソールから、またはREST API使用して作成します。API キーを作成する際、キーのシークレットが表示されます。セキュリティ上の理由により、キーを作成したときだけ、シークレットが表示されます。シークレットは、次のステップで、安全な場所にキーの SID と一緒に保管する必要があります。

Step 2: アクセストークンを作成する

続いて、ステップ1で作成したAPIキーのシークレットを使用して、Twilioヘルパーライブラリーを使いアクセストークンを作成します。 各トークンは特定のクライアント機能へのアクセスが許可されます。 以下は、Chatへのアクセスが許可されたトークンの作成方法の例です。

        
        
        
        
              
              
              
              
                    
                    
                    
                    

                    Step 3:認証

                    これで、トークンを使用する準備ができました。ChatVideoのようなクライアント側のSDKには、Ajaxなどの方法を経由し、クライアント側のコードに対して文字列に変換したトークンを取得することが必要です。詳細については、VideoChat用の製品ドキュメント内「アイデンティティーとアクセストークン」ガイドを参照してください。

                    APIキーを利用してアクセストークンのライフサイクルを管理する

                    アプリケーションはAPIキーをアクセストークンの管理をするために利用します。いくつかの基本的なステップで簡単にできます。

                    • REST API を使ってAPI キーを作成し、返却されたシークレットを保存します。お使いの製品のコンソールでも API キーを管理できます。
                    • Twilio ヘルパーライブラリと API キーの Secret を使用して、クライアントのアクセストークンを生成します。
                    • APIキーを削除し生成されたすべてのアクセストークンの無効にします。

                    JWT フォーマット

                    各アクセストークンは、3つの部分、すなわちヘッダー、ペイロード、および署名からなる、エンコードされたJSONオブジェクトであるJWTです。 以下は、上記の例と同様のコードを使用して生成された、Chat用のJWTトークンです。

                    eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImN0eSI6InR3aWxpby1mcGE7dj0xIn0.eyJqdGkiOiJTS3h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4LTE0NTA0NzExNDciLCJpc3MiOiJTS3h4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4Iiwic3ViIjoiQUN4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCIsIm5iZiI6MTQ1MDQ3MTE0NywiZXhwIjoxNDUwNDc0NzQ3LCJncmFudHMiOnsiaWRlbnRpdHkiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaXBfbWVzc2FnaW5nIjp7InNlcnZpY2Vfc2lkIjoiSVN4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eCIsImVuZHBvaW50X2lkIjoiSGlwRmxvd1NsYWNrRG9ja1JDOnVzZXJAZXhhbXBsZS5jb206c29tZWlvc2RldmljZSJ9fX0.IHx8KeH1acIfwnd8EIin3QBGPbfnF-yVnSFp5NpQJi0

                    jwt.io でデバッガーを使用して検証すると、その内容を詳細に調べることができます。

                    ヘッダー

                    {
                      "typ": "JWT",
                      "alg": "HS256",
                      "cty": "twilio-fpa;v=1"
                    }
                    

                    headerセクションは トークンのフォーマットでエンコードされます

                    • alg トークンをエンコードするアルゴリズムです。“HS256” の必要があります。
                    • typ トークンのタイプ"JWT" の必要があります。
                    • cty はコンテンツタイプであり、アクセストークンのバージョンをエンコードします。"twilio-fpa;v=1" である必要があります。

                    ペイロード

                    {
                      "jti": "SKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-1450471147",
                      "iss": "SKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                      "sub": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
                      "nbf": 1450471147,
                      "exp": 1450474747,
                      "grants": {
                        "identity": "user@example.com",
                        "chat": {
                          "service_sid": "ISxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                        }
                      }
                    }
                    

                    payloadセクションは 権限譲渡を表します

                    • jti トークンの一意なIDアプリケーションがこのIDを認識できます。標準のヘルパーライブラリーはAPIキー のSID をトークンと一意でランダムな文字列を使います。
                    • iss は発行者です。この API キーのシークレットで、トークンに署名します。
                    • sub どのアクセスがアカウントのSIDをスコープしたか
                    • nbf 生成されたトークンの有効期限が切れる時間(タイムスタンプ)
                    • exp トークンの有効期限が切れる時間(タイムスタンプ)アクセストークン有効期限は最大24時間です。
                    • grants は、トークンによって与えられた権限の一覧です。 クライアントSDK(Chat、Video)の許可(grant)値は、SDKごとに異なります。

                    署名

                    signature セクションは、トークンの信頼性を証明する署名付きハッシュです。これは、API シークレットを使用して JWT のヘッダーとペイロードを一緒にハッシュ化することによって得られ、アプリケーションと Twilio 以外に知られないようにする必要があります。

                    Rate this page:

                    ヘルプが必要ですか?

                    誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。