> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> デバイス認可フロー の仕組みと、スマート TV やメディアコンソールなどの入力手段が限られたデバイスでこれを使用すべき理由を学びます。ネイティブアプリで使用します。

# デバイス認可フロー

インターネットに接続する入力手段が限られたデバイスでは、デバイスがユーザーを直接認証するのではなく、ユーザーにコンピューターやスマートフォンでリンクにアクセスしてデバイスを認可するよう求めます。これにより、テキストを簡単に入力できないデバイスでも、使いにくいユーザー体験を避けられます。これを実現するために、デバイスアプリは Device <Tooltip tip="Authorization Flow: OAuth 2.0 フレームワークで規定されている認可グラント（またはワークフロー）。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Authorization+Flow">Authorization Flow</Tooltip> ([OAuth 2.0](https://tools.ietf.org/html/rfc8628) で標準化) を使用します。このフローでは、認可プロセスを開始してトークンを取得するために、自身の <Tooltip tip="Client ID: 登録したリソースにAuth0から付与される識別値。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Client+ID">Client ID</Tooltip> を渡します。

<div id="how-it-works">
  ## 仕組み
</div>

デバイス認可フローには 2 つの異なる経路があります。1 つは認可を要求するデバイス上で行われ、もう 1 つはブラウザーで行われます。ブラウザー内でデバイスコードがセッションに関連付けられるブラウザーフローの経路は、デバイスフローの経路の一部と並行して進みます。

<Frame>
  <img src="https://mintcdn.com/translations/raZlN0BXDjNonwyb/docs/images/cdy7uua7fh8z/1A6jpG3W1H6SC9ZK92NyKd/40af53209f90a7c392f621f329fb4424/auth-sequence-device-auth.png?fit=max&auto=format&n=raZlN0BXDjNonwyb&q=85&s=89186d1ffa912a29cf5d0d36d71eb8a8" alt="Flows - デバイス認可 - 認可シーケンス図" width="1500" height="1543" data-path="docs/images/cdy7uua7fh8z/1A6jpG3W1H6SC9ZK92NyKd/40af53209f90a7c392f621f329fb4424/auth-sequence-device-auth.png" />
</Frame>

<div id="device-flow">
  ### デバイスフロー
</div>

1. ユーザーがデバイス上でアプリを起動します。
2. デバイスアプリは、自身の Client ID を使用して Auth0 Authorization Server に認可をリクエストします (`/oauth/device/code` エンドポイント) 。
3. Auth0 Authorization Server は、`device_code`、`user_code`、`verification_uri`、`verification_uri_complete`、`expires_in` (`device_code` と `user_code` の有効期間 (秒) ) 、およびポーリング間隔を示す `interval` を返します。
4. デバイスアプリは、ユーザーにコンピューターまたはスマートフォンを使って有効化するよう求めます。アプリでは、次のいずれかの方法でこれを行えます。

   * これらの値を画面に表示し、ユーザーに `verification_uri` にアクセスして `user_code` を入力するよう求める
   * `verification_uri_complete` から生成された、ユーザーコードが埋め込まれた QR Code または短縮 URL のいずれかをユーザーに操作してもらう
   * ブラウザベースのデバイスで Native に実行されている場合は、`verification_uri_complete` を使用して、ユーザーコードが埋め込まれた確認ページに直接移動する
5. デバイスアプリは、`interval` で指定された間隔で、直前のポーリング request への応答を受け取った時点から時間を数え、アクセストークンを取得するために Auth0 Authorization Server の **/oauth/token** エンドポイントへのポーリングを開始します。デバイスアプリは、ユーザーがブラウザフローを完了するか、ユーザーコードの有効期限が切れるまでポーリングを続けます。
6. ユーザーがブラウザフローを正常に完了すると、Auth0 Authorization Server はアクセストークン (必要に応じてリフレッシュトークンも) を返します。`device_code` は期限切れになるため、デバイスアプリはこの時点で破棄する必要があります。
7. デバイスアプリは、アクセストークンを使って API を呼び出し、ユーザーに関する情報にアクセスできます。
8. API は、リクエストされたデータを返します。

<div id="browser-flow">
  ### ブラウザフロー
</div>

1. ユーザーはコンピューターで `verification_uri` にアクセスし、`user_code` を入力したうえで、有効化するデバイスに同じ `user_code` が表示されていることを確認します。ユーザーが別の方法 (QR コードをスキャンするなど) で `verification_uri_complete` にアクセスした場合は、デバイスの確認だけで済みます。
2. 必要に応じて、Auth0 Authorization Server がユーザーをログイン画面と同意プロンプトにリダイレクトします。
3. ユーザーは設定済みのログインオプションのいずれかを使って認証し、デバイスアプリを認可するための同意ページが表示されることがあります。
4. デバイスアプリによる API へのアクセスが認可されます。

<div id="how-to-implement-it">
  ## 実装方法
</div>

デバイス認可フロー を実装する最も簡単な方法は、チュートリアル「[デバイス認可フロー を使用して API を呼び出す](/docs/ja-jp/get-started/authentication-and-authorization-flow/device-authorization-flow/call-your-api-using-the-device-authorization-flow)」に従うことです。

<div id="force-device-reauthorization">
  ## デバイスの再認可を強制する
</div>

ユーザーにデバイスの再認可を強制するには、そのデバイスに割り当てられている<Tooltip tip="リフレッシュトークン: ユーザーに再度ログインを求めることなく、新しいアクセストークンを取得するために使用されるトークン。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Refresh+Token">リフレッシュトークン</Tooltip>を取り消す必要があります。手順については、[ユーザーからデバイスのリンクを解除する](/docs/ja-jp/manage-users/user-accounts/unlink-devices-from-users)を参照してください。なお、現在の<Tooltip tip="アクセストークン: API へのアクセスに使用される認可資格情報で、不透明な文字列または JWT の形式を取ります。" cta="用語集を見る" href="/docs/ja-jp/glossary?term=Access+Token">アクセストークン</Tooltip>の有効期限が切れ、アプリケーションが取り消されたリフレッシュトークンを使用しようとするまでは、デバイスに再認可は強制されません。リフレッシュトークンの詳細については、[リフレッシュトークン](/docs/ja-jp/secure/tokens/refresh-tokens)を参照してください。

<div id="learn-more">
  ## 詳細はこちら
</div>

* [トークン](/docs/ja-jp/secure/tokens)
* [トークンのベストプラクティス](/docs/ja-jp/secure/tokens/token-best-practices)
* [使用すべきOAuth 2.0フローはどれですか？](/docs/ja-jp/get-started/authentication-and-authorization-flow/which-oauth-2-0-flow-should-i-use)
* [Auth0 Actions](/docs/ja-jp/customize/actions)
