スマートテレビに資格情報を入力する際、リモコンやオンスクリーンキーボードを使用することにうんざりしていませんか?何度も取り組んできましたが、最終的には顧客に委ねざるを得ません。では、スマートフォンの画面を数回タップするだけで、ユーザーがログインできるようにサポートしてみてはいかがでしょうか?

テレビのリモコンを使用して資格情報を入力している人物の画像

こんにちは。Auth0開発チームのDanです。ここでは、OAuth 2.0 Device Flowについてご紹介します。この認証を利用すれば、スマートテレビや入力に制限のあるデバイスに簡単、迅速、安全にログインできます。キーボードもブラウザも使用しません。

従来のログイン方式は面倒で、エラーも多発します。OAuth 2.0 Device Flowは軽快で、わずか数秒で認証でき、テレビはもちろん、ゲームコンソール、CLI、プリンタなどにも対応します。

Auth0は、OAuth 2.0 Device Flowの完全対応実装を提供することで、こうしたユーザーエクスペリエンスの悩みの種に取り組むことを容易にします。入力に制限のあるデバイスの種類、この認証許可の仕組み、Auth0の機能について詳細をご覧ください。

入力に制限のあるインターネット接続デバイスとは

(1) ブラウザを持たないか、または (2) テキスト入力方式が実用的ではない、インターネット接続デバイスをお持ちではありませんか?

お持ちなら、それは入力に制限のあるデバイスです。どのようなタイプのデバイスを頭に思い浮かべましたか?私なら...

  • 複合機
  • フィットネストラッカ
  • ストリーミングデバイス
  • 電動歯ブラシ
  • ゲームコンソール
  • 冷蔵庫
  • テディベア
  • 車載インフォテインメントシステム
  • スマートテレビ
  • 頭に「スマート」と付く単語なら何でも

スマートテレビ、プリンタ、ゲームコンソール、その他の典型的な入力に制限のあるデバイス

モノのインターネット(IoT)の急激な台頭により、多くのデバイスはオンライン化されました。現在あるいは未来も、IoTデバイスで実行されるソフトウェアは、デバイスやプラットフォーム全体で顧客に豊かなユーザーエクスペリエンスを提供するために必要なデータを取得する際、御社のAPIを呼び出す場合があります。ところが、そうしたユーザーエクスペリエンスは、デバイスに外部サービスを簡単に認証する方法が実装されていなければ、あまり豊かにも安全にもならない可能性があります。

「入力に制限のあるデバイスで認証を許可するのは難しいもの。では、入力に制限のあるインターネット接続デバイスとはどのようなものでしょうか?このブログ記事で詳しく解説します。」

競争市場でしのぎを削る企業として、ブラウザを使用しない認証を提供できないという理由で、御社のサービスを使用できるデバイスに制限をかけたくはありません。ただし、デバイスがブラウザやユーザーインターフェイスを提供しない場合でも、顧客には、テレビのリモコンの矢印を使用して資格情報を入力し、巨大なオンスクリーンキーボードからキーを選択させたくはないものです。例えば、顧客が入力に手間取っている間に、何者かが画面を録画していれば、顧客の資格情報が漏えいする可能性があります。

さらに、御社の管理外にあり、今後のアクセスのためにユーザーの資格情報を保存可能なシステム(御社のAPIにアクセスする専用のシステムやサードパーティクライアントを活用することもあるスマートディスプレイなど)にユーザー資格情報が入力されることがないようにしたいでしょう。

求められるのは、様々なデバイスで御社のAPIへのアクセスを制御することで、サードパーティアプリケーションを認証する方法です。OAuth 2.0 Device Flowは、それを正確に実現します。ブラウザを実装していないデバイスでも、標準的な権限委譲用認証プロトコルのセキュリティとユーザーエクスペリエンスの利点を活用できます。

Device Flowの取り扱い方を理解するため、ビデオストリーミングアプリを例にとり、実際の仕組みをご覧ください。

OAuth 2.0 Device Flowの仕組み

AuthU TVという技術者向けの架空のビデオプラットフォームをテレビで観るとします。最初に、AuthU TVアプリをスマートテレビにダウンロードします。初めてアプリを開くと、ログイン画面が表示されます。

手始めに、別のデバイス(スマートフォンやラップトップなど)でURLにアクセスし、短いコードを入力し、AuthUアカウントにログインしてユーザー認証を行う必要があります。

このプロセスが完了すると、テレビのソフトウェアからAuthUアカウントへのアクセス権が付与されます。AuthUコンテンツに移動するには、リモコンを使用する必要がありますが、資格情報の入力は不要です。

デバイスに接続するOAuth 2.0 Device Flowの図

大まかに言えば、このプロセスは、YouTubeでユーザーログインの処理時にaccounts.google.comへリダイレクトされる仕組みとよく似ています。OAuth 2.0 Device Flowため、2台目のデバイスを使用して、認証プロセスを一元化されたログインページで管理します。認証プロセスをデバイスから切り離してブラウザに統合すると、MFA、SSO、ソーシャルログインなどのより高度なアイデンティティ管理機能やセキュリティ機能を活用できます。

言うは易しですので、Device Flowの仕組みを見てみましょう。当社のAuth0担当エンジニアが対話型のデモを作成しました。このデモでは、ブラウザから直接、AuthUスマートテレビアプリの認証をシミュレートできます。

まず、Device Flow Playgroundにアクセスしてください。アクセスしたら、当社のデフォルトのデモ設定を使用してプレイグラウンドを試してみるか、または自分のAuth0アカウント設定を使用して構成し、独自のアプリケーションで試すことができます。

Auth0アカウントが必要になるかですって?今すぐ無料でお始めください。Auth0の無料トライアルが提供する充実した機能を使用すると、驚きの声を上げずにはいられないことでしょう。

目的のスコープを選択することもできます。選択したら、「Get Started」をクリックしてください。

Auth0 Device Flowの始め方に関するダッシュボードを示す図

次に、模擬AuthU TVアプリからコンテンツをストリーム配信するため、「Authorize」ボタンをクリックしてアプリを認証するよう求められます。

Auth0 Device Flow:認証リクエスト

デバイスを認証するには、アクティベーション用URL(acme-demo.auth0.com/activate)に移動し、別のデバイスを使用して、スマートテレビに表示されるコードを入力します。QRコードをスキャンし、自動的にユーザーコードを入力することもできます。TVアプリは、2台目のデバイスでプロセスを完了するまで待機状態となります。このプロセス完了により、AuthU TVサービスへのアクセス権を取得するために使用可能な認証応答がトリガされます。

Auth0 Device Flow:トークンリクエスト

提供されるリンクにアクセスし、ワンタイムコードを入力して、「Continue」をクリックします。別のブラウザタブまたはスマートフォンのモバイルブラウザを使用することもできます。

Auth0 Device Flow:デバイスのアクティベーション

Auth0 Device Flow:デバイスのアクティベーションコード

サイトに表示されるコードが、スマートテレビに表示されるコードと一致することを確認し、「Continue」をクリックします。

Auth0 Device Flow:デバイスの確認

次に、アカウントを登録するか、または既存のアカウントを使用してログインします。

Auth0 Device Flow:ユーザー認証

デバイスが接続されたことを確認するメッセージがサイトに表示されます。

Auth0 Device Flow:デバイスの接続

スマートテレビに戻ると、AuthUはコンテンツのストリーム配信を開始する準備が整っています。TVアプリには、ユーザーに関する追加情報を取得してUIをカスタマイズするための認証機能が実装されています。

Auth0 Device Flow:アクティベーション完了

以上が、OAuth 2.0 Device Flowの大まかな技術概要です。続いては、Auth0をアイデンティティ管理プラットフォームとして使用すると、このプロセスがどのように円滑化されるかについて、詳しく見ていきましょう。

Auth0により円滑化されるOAuth 2.0 Device Flow

入力に制限のあるデバイスでAPIからユーザーデータを取得する必要があるとき、以下のプロセスが実行されます。

APIを呼び出すOAuth 2.0 Device Flowの概要

  1. デバイスアプリケーションがまだ認証されていない場合、デバイスアプリケーションはデバイスコードを取得するためにAuth0認証サーバーを呼び出します。

  2. Auth0は、URLとユーザーコードを返して応答します。デバイスアプリは、ユーザーに2台目のデバイス(ラップトップやスマートフォンなど)で特定のURLにアクセスし、アクティベーションコードを入力することを求めます。

  3. デバイスアプリは、アクセストークンとリフレッシュトークンのためにAuth0認証サーバーのポーリングを開始します。

  4. ユーザーは、いずれかの設定済み認証方式を使用して2台目のデバイスでAuth0を認証します。Auth0は、各種プロトコル(OpenID Connect、SAML、WS-Federationなど)を使用して数多くのアイデンティティプロバイダをサポートするアイデンティティ管理ハブです。

  5. 認証が完了すると、Auth0はデイバスアプリにアクセストークンおよびリフレッシュトークンを返して応答します。後者のトークンにより、ユーザーからリクエスト許可をもう一度得なくてもアクセストークンを更新できます。

  6. アクセストークンを使用すると、APIを呼び出してリクエストされたデータを取得できます。

「アクセストークンとリフレッシュトークンを使用すると、認証は迅速化され、持続します。OAuth 2.0 Device Flowにおけるトークンの機能に関する詳細をご覧ください。」

まとめ

本日は、入力に制限のあるインターネット接続デバイスの種類、そのデバイスが開発者および顧客にも提示する課題、Device Flowの実装により、OAuth 2.0に準拠したAuth0はこうした課題に対してどのように取り組むかについて学びました。

OAuth 2.0 Device Flowの最大の特徴は、既存の認証ソリューションをスマートデバイスプラットフォームにまで拡張できるところにあります。この認証許可により、顧客は一方のデバイスで実行されるアプリケーションを別のデバイスを使用して簡単に認証・承認できます。

開発チームがこの認証を実装するには、どのようなコードを書けばよいかについて興味をお持ちでしょう。Device Flowに関する詳細なチュートリアルを近日公開する予定です。乞うご期待ください。それまでは、以下のリソースで詳細をご確認ください。

「OAuth 2.0 Device Flowは、ブラウザを実装していないか、または入力に制限のあるインターネット接続デバイスで実行されるアプリケーション向けに設計されています。この認証フローにより、エンドユーザーはデバイスアプリケーションを認証してサービスAPIにアクセスできます。」

Auth0 について

Auth0 は IDaaS (Identity-as-a-Service)におけるグローバルリーダーで、Web やモバイル、モノのインターネット (IoT)、内部アプリケーションで必要とされるユニバーサル ID プラットフォームで何千もの企業顧客に提供しています。ひと月25億回以上のログインをシームレスに認証・保護するその拡張プラットフォームはデベロッパーに愛され、グローバル企業に信頼されています。米国本社はワシントン州ベルビュー市に位置し、ブエノスアイレス、ロンドン、東京、シドニーにもオフィスを構え、70か国以上のお客様をサポートしています。

詳細については、https://auth0.com/jp/ をご覧いただくか、@auth0_jp on Twitter をフォローしてください。