> ## 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やメディアコンソールなど、入力に制約のあるデバイス向けに、デバイス認可フロー の仕組みと、これを使用すべき理由を説明します。ネイティブアプリで使用します。

# デバイス認可フロー

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

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

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

<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="フロー - Device Authorization - 認可シーケンス図" width="1500" height="1543" data-path="docs/images/cdy7uua7fh8z/1A6jpG3W1H6SC9ZK92NyKd/40af53209f90a7c392f621f329fb4424/auth-sequence-device-auth.png" />
</Frame>

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

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

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

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

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

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

デバイス認可フロー を実装する最も簡単な方法は、次のチュートリアルに従うことです。[デバイス認可フロー を使用して API を呼び出す](/ja/docs/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="/ja/docs/glossary?term=Refresh+Token">リフレッシュトークン</Tooltip>を失効させる必要があります。手順については、[ユーザーからデバイスのリンクを解除する](/ja/docs/manage-users/user-accounts/unlink-devices-from-users)を参照してください。なお、現在の<Tooltip tip="アクセストークン: API へのアクセスに使用される、不透明な文字列または JWT 形式の認可資格情報。" cta="用語集を表示" href="/ja/docs/glossary?term=Access+Token">アクセストークン</Tooltip>の有効期限が切れ、アプリケーションが失効済みのリフレッシュトークンを使用しようとするまでは、そのデバイスに再認可は強制されません。リフレッシュトークンの詳細については、[リフレッシュトークン](/ja/docs/secure/tokens/refresh-tokens)を参照してください。

<div id="learn-more">
  ## 詳しく見る
</div>

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