方法:認証
方法:認証
はじめに
このガイドでは、Frame.io プロジェクト上の Camera to Cloud(C2C)デバイスの認証および認可プロセスについて説明します。標準的な手動コード入力方法と、最適なユーザーエクスペリエンスを実現するための強化された QR コードペアリング方法の両方について説明します。
必要なもの
まだご覧になっていない場合は、実装を開始する前にガイドを参照してください。
統合を特定するために、当社チームから既に client_secret を受け取っているはずです。受け取っていない場合は、C2C エコシステムの概要を参照し、当社チームにお問い合わせください。
URL と QR コードのペアリングの前提条件
URL と QR コードのペアリングを実装するには、次の要件を満たしていることを確認してください。
- デバイスの互換性:お使いのデバイスが、ペアリングプロセス中の URL/QR コード生成をサポートしていることを確認します。
認証フローの説明
ユーザーの観点から認証フローを理解するには、次のリソースを参照してください。
この認証プロセスを実行することで、実装要件が最小限に抑えられます。次の操作は不要です。
- Web ブラウザーへのリダイレクト(URL コードペアリングを使用しない場合)
- Frame.io ユーザー認証の処理
- アカウント/プロジェクト選択インターフェイスの提示
- 基本的な情報表示にとどまらない複雑な UI 要素の開発
URL コードペアリングによるユーザーエクスペリエンスの向上
現代のユーザーは、効率的なデバイス操作を期待しています。最新の手動ペアリングプロセスは適切に機能しますが、最適化することができます。
Netflix や Disney+ などのストリーミングサービスと同様に、URL と QR コードのペアリングを実装することで、プロセスを大幅に合理化し、入力エラーを最小限に抑え、ペアリング時間を短縮できます。
デバイス ID(client_id)
各物理デバイスでは、ユーザーのプロジェクト内で接続を追跡するための一意の識別子が必要です。
デバイスの場合、この識別子は認証時に不可欠な client_id です。実装時に、デバイスのシリアル番号、UUID、その他の一意の文字列などの適切な識別子ソースを考慮してください。Apple デバイスで統合する場合は、デバイスの再起動後も一貫した一意の永続的 UUID を使用することをお勧めします。
個人を特定できる情報の取り扱いについては注意してください。ユーザーの電子メールアドレスは、適切な client_id 値ではありません。
また、必ず識別子を管理してください。デバイスの MAC アドレスは、ソフトウェアによって所有されておらず、個人を特定できる情報である可能性があるため、不適切です。
適切な識別子の選択に関するガイダンスが必要な場合は、統合を簡素化する適切な値の決定を当社チームが支援します。
手順 1:デバイスコードの要求
実装を開始するには、/v2/auth/device/code エンドポイントを介してデバイスコードを要求します。
従来のペアリング方法
URL コードペアリングの有効化
URL コードペアリングの場合は、追加のヘッダーを使用して API 呼び出しを変更します。
**注意:**これらの認証エンドポイントは、JSON ではなくフォームデータのみを受け入れます。認証後、他のエンドポイントは JSON ペイロードを受け入れますが、認証エンドポイントは JSON 要求を拒否します。
ペイロードパラメーター
- client_id:物理デバイスの一意の識別子。これは、シリアル番号や UUID などで、一意であることが保証されている必要があります。
- client_secret:Frame.io サポートによって提供され、デバイスモデルを識別します。この機密値は、ユーザーから保護され、保存時に暗号化されたままにする必要があります。
- scope: スペース区切りされ、要求された権限。デバイスから要求される場合:
asset_create:アセットの作成とアップロードを有効にします。offline:リフレッシュトークンによる認証の更新を許可します。このスコープがない場合、認証トークンの有効期限が切れると、ユーザーは 8 時間ごとにデバイスを再認証する必要があります。
実際の実装では、デバイスは通常両方のスコープを要求します。
API 応答の理解
この要求は、次のような応答を生成します。
従来のペアリング応答
URL ペアリング応答
応答ブレークダウン
- device_code:この内部識別子は、ユーザーには表示されないようにし、ポーリング中に認証要求を識別します。
- expires_in:コードの有効期間(秒単位)。
- interval:推奨されるポーリング間隔(秒単位)。
- name:接続デバイスの識別子。
- user_code:デバイスペアリングのために Frame.io に手動で入力する 6 桁のコード。
- verification_uri:QR スキャンが使用できない場合の手動入力のベース URL。
- verification_uri_complete:ペアリングインターフェイスへのユーザーナビゲーションを簡素化するために、モバイルアプリ内でのハイパーリンクまたは QR コード生成を目的とした、ペアリングコードを含む完全な URL。
ユーザーへの QR コードの表示
verification_uri_complete を使用して、QR コードを生成してデバイス画面に表示し、ユーザーがスキャンできるようにして、効率的なペアリングを促します。
例:QR コードが表示されたデバイス画面

万一の場合に備えたオプションを必ず用意してください。QR スキャンができない場合は、手入力用に user_code と verification_uri を表示します。または、verification_uri をモバイルスキャン用の静的 QR コードとして表示することを検討してください。
モバイルアプリ統合の場合、ユーザーはアプリ実行中のデバイスから QR コードをスキャンできないので、verification_uri_complete をタップ可能なハイパーリンクとして含めます。
手順 2:ユーザー承認をポーリングする
ペアリングコードまたは URL コードを提示した後、次のリクエストでユーザー入力を確認します。
ペイロードパラメーター
- client_id:手順 1 で使用したものと同じ識別子。
- device_code:以前に返された
device_code値。 - grant_type:OAuth 付与タイプ識別子。この実装では一貫して
urn:ietf:params:oauth:grant-type:device_codeです。
最初のポーリング試行では通常、以下が返されます。
この致命的でないエラーは、ユーザーがコード入力を完了していないことを示します。完了するまでポーリングを続行します。
次のメッセージが表示される場合:
ユーザー入力前にコードの有効期限が切れました。ステップ 1 で新しいコード/QR コードを生成し、ユーザーに提示して、ポーリングを再開します。
認証に成功すると、以下が表示されます。
Camera to Cloud デバイスの認証が正常に完了しました。
この応答を確認しましょう。
- access_token:Frame.io バックエンドアクセスの認証資格情報。今後の API 要求のヘッダーに必要です。
- expires_in:アクセストークンの有効期間(秒単位)。この期間を過ぎると更新が必要になります。
- refresh_token:アクセストークン管理に使用されます。主に認証の更新に使用されますが、失効にも適用されます。
- token_type:C2C API 実装は
bearerで一貫しており、アクションは不要です。
ステップのまとめ
次に、これらの API 呼び出しを Python のような疑似コードで実装し、潜在的なデバイスコードの有効期限を処理しましょう。
**注意:**外側のループは、ペアリングコードの有効期限が切れ、新しいコードが必要な場合に対応します。
最後のステップとして、Frame.io からプロジェクト情報を取得して表示し、目的のプロジェクトとのペアリングが正常に完了したことを確認します。これについては次のチュートリアルで説明します。
ペアリング用の QR コードの作成と表示
URL/QR コードのペアリングを実装する場合は、応答の verification_uri_complete 値から QR コードを生成する必要があります。以下に、様々なプログラミング言語で一般的なライブラリを使用する例を示します。
qrcode を使用した Python の例
JavaScript の例(Web または Electron)
Android の例(Java)
iOS の例(Swift)
QR コード表示のベストプラクティス
QR コードのペアリングを実装する場合は、最高のユーザーエクスペリエンスを実現するために次のガイドラインに従ってください。
-
最適なサイズ:スキャンの信頼性を高めるために、QR コードを 200~250 ピクセル以上の正方形で表示します。
-
コントラスト:QR コードと背景のコントラストが高いことを確認します(白の上に黒が理想的です)。
-
エラー修正:中程度のエラー修正レベル(L または M)を使用して、コードの密度と信頼性のバランスを取ります。
-
明確な指示:「スマートフォンのカメラでこのコードをスキャンしてデバイスをペアリングする」などの、コードのスキャン方法について明確なガイダンスを提供します。
-
複数のオプション:フォールバックとして、必ず QR コードと一緒に手動ペアリングコードを提示します。
-
モバイルアプリのハイパーリンク:統合がモバイルアプリケーションの場合、ユーザーは同じデバイスから QR コードをスキャンできないため、
verification_uri_completeをタップ可能なリンクとして含めます。 -
テスト:様々なデバイスと照明条件で QR コードをテストして、信頼性の高いスキャンを確保します。

トラブルシューティング
問題が発生した場合は、次の一般的なシナリオと解決策を参照してください。
- 「Connect Device」ボタンが表示されない:C2C 管理パネルにアクセスすると、次のことが示されます。
- 権限が不十分:権限メッセージが表示された場合は、アカウントマネージャーに連絡して権限を調整するか、適切なロールを割り当ててください。
- 既存のデバイス接続:1 つのデバイスを接続すると、プライマリの「Add New Device」ボタンが、C2C Connections パネルの右上隅にある 3 つのドットメニューに変わります。
- 無効なクライアントエラー:
invalid_client応答は、通常誤ったclient_secretによるデバイス情報の不一致を示します。 - 不正な要求エラー:
bad_request応答は、不正な形式の要求データを示しています。フィールド名を確認し、すべての必須フィールドが含まれていることを確認します。
上記の方法で問題が解決されない場合は、このトラブルシューティングセクションを改善するために、お客様の体験を共有してください。
次のステップ
当社チームまでお問い合わせください。その後、認証管理ガイドにお進みください。お客様のご意見をお待ちしております。