6.4. オフラインアクセス
オフラインアクセス ログイン時に、クライアントアプリケーションは更新トークンではなくオフライントークンを要求します。クライアントアプリケーションは、このオフライントークンを保存し、ユーザーがログアウトした場合に今後のログインに使用できます。このアクションは、ユーザーがオンラインにない場合でも、アプリケーションがユーザーの代わりにオフライン操作を実行する必要がある場合に便利です。たとえば、通常のデータバックアップです。
クライアントアプリケーションは、ストレージでオフライントークンを永続化し、これを使用して Red Hat Single Sign-On サーバーから新しいアクセストークンを取得します。
更新トークンとオフライントークンの相違点は、オフライントークンの期限が切れず、SSO Session Idle
timeout および SSO Session Max
lifespan の対象でないことです。オフライントークンは、ユーザーのログアウトまたはサーバーの再起動後に有効になります。更新トークンアクションには、30 日ごとに 1 回、または Offline Session Idle の値にオフライントークンを使用する必要があります。
Offline Session Max Limited を有効にすると、更新トークンアクションにオフライントークンを使用していても、オフライントークンが 60 日後に有効期限が切れます。管理コンソールの Offline Session Max の値を変更できます。
Revoke Refresh Token オプションを有効にすると、各オフライントークンを 1 回だけ使用できます。更新後、前の 1 つではなく、更新応答から新しいオフライントークンを保存する必要があります。
ユーザーは、Red Hat Single Sign-On が ユーザーアカウントのコンソール で付与するオフライントークンを表示し、取り消すことができます。管理者は、Consents
タブで 管理コンソールの個々のユーザーのオフライントークンを取り消すことができます。管理者は、各クライアントの Offline Access
タブで発行されたオフライントークンすべてを表示できます。管理者は、失効ポリシー を設定してオフライントークンを取り消すことができます。
オフライントークンを発行するには、ユーザーは realm-level offline_access
ロールのロールマッピングが必要です。クライアントには、そのロールをスコープで割り当てる必要もあります。クライアントは、offline_access
クライアント スコープを Optional client scope
としてロールに追加し、デフォルトでは実行する必要があります。
クライアントは、承認要求を Red Hat Single Sign-On に送信するときに scope=offline_access
パラメーターを追加することでオフライントークンを要求できます。Red Hat Single Sign-On OIDC クライアントアダプターは、アプリケーションのセキュアな URL (例: http://localhost:8080/customer-portal/secured?scope=offline_access) にアクセスするために使用すると、このパラメーターを自動的に追加します。認証要求の本文に scope=offline_access
が含まれている場合、Direct Access Grant および Service Accounts はオフライントークンをサポートします。