メインコンテンツまでスキップ

3. トークンタイプ識別子

本仕様のいくつかのパラメータは、問題のトークンを記述するための値として識別子を利用します。具体的には、リクエストの requested_token_typesubject_token_type、および actor_token_type パラメータと、レスポンスの issued_token_type メンバーです。トークンタイプ識別子は URI です。トークン交換は、他の当事者によって発行されたトークンと、特定の認可サーバーからのトークンの両方で機能します。前者では、トークンタイプ識別子は認可サーバーがそれを解析できるように構文 (たとえば、JWT または SAML 2.0) を示します。後者では、特定の認可サーバーが何のためにそれを発行したか (たとえば、access_token または refresh_token) を示します。

次のトークンタイプ識別子は、本仕様によって定義されています。他の URI を使用して、他のトークンタイプを示すことができます (MAY)。

urn:ietf:params:oauth:token-type:access_token トークンが、特定の認可サーバーによって発行された OAuth 2.0 アクセストークンであることを示します。

urn:ietf:params:oauth:token-type:refresh_token トークンが、特定の認可サーバーによって発行された OAuth 2.0 リフレッシュトークンであることを示します。

urn:ietf:params:oauth:token-type:id_token トークンが、[OpenID.Core] のセクション 2 で定義されている ID トークンであることを示します。

urn:ietf:params:oauth:token-type:saml1 トークンが、base64url エンコードされた SAML 1.1 [OASIS.saml-core-1.1] アサーションであることを示します。

urn:ietf:params:oauth:token-type:saml2 トークンが、base64url エンコードされた SAML 2.0 [OASIS.saml-core-2.0-os] アサーションであることを示します。

[JWT] のセクション 9 で定義されている値 urn:ietf:params:oauth:token-type:jwt は、トークンが JWT であることを示します。

アクセストークンと JWT の区別は微妙です。アクセストークンは委任された認可決定を表しますが、JWT はトークン形式です。アクセストークンは JWT としてフォーマットできますが、必ずしもそうする必要はありません。また、JWT はアクセストークンである可能性が高いですが、すべての JWT がアクセストークンであるわけではありません。本仕様の意図は、urn:ietf:params:oauth:token-type:access_token が、トークンが問題の認可サーバーによって発行された典型的な OAuth アクセストークンであり、クライアントに対して不透明であり、その認可サーバーから取得された他のアクセストークンと同じ方法で使用できることの指標となることです。(それは JWT である可能性も十分にありますが、クライアントはその事実を知っている必要はありません。) 一方、urn:ietf:params:oauth:token-type:jwt は、JWT がリクエストまたは送信されていることを具体的に示すためのものです (おそらく、[RFC7523] によって促進されるように、異なる認可サーバーからアクセストークンを取得するための認可グラントとして JWT が使用されるクロスドメインのユースケースにおいて)。

本質的にバイナリであるトークンの場合、それらを伝達するために使用される URI は、HTTP および OAuth での使用に適した base64 またはその他のエンコーディングのセマンティクスに関連付けられる必要があることに注意してください。