Skip to main content

はじめに

Authlete を用いて認可サーバーを構築する場合、認可画面にてエンドユーザー(リソースオーナー)に認可するスコープを選択させるように設計することができます。本記事では、このような機能を実現するために用いる Authlete の API について紹介します。\ choosing-scopes_ja

認可リクエストからスコープ一覧を取得

最初に必要となるのは、クライアントがリクエストしているスコープの把握です。それらのスコープはクライアントからの認可リクエストの、“scope” パラメーターに含まれています。Authlete の /auth/authorization API は認可リクエストを解析し、認可サーバーに対して、どのスコープが要求されているかを “scopes” の配列として回答します。以下はリクエスト・レスポンスの例です。
  • リクエスト
  • レスポンス
この “scopes” の値をもとに、クライアントに付与するアクセス権をエンドユーザーに選択してもらうような認可ページを構成できるようになります。

エンドユーザーが選択したスコープを指定

エンドユーザーの意図を承けた認可サーバーは、Authlete に対し、ユーザーが選択したスコープを持つアクセストークン (and/or 認可コード) の発行を要求します。 このような、クライアントからの元々の認可リクエストが要求していたスコープを「絞る」機能の実現には、Authlete の /auth/authorization/issue API へのリクエストパラメーターのひとつである “scopes” を用います。空ではない、文字列の配列をこの scopes パラメーターに指定すると、Authlete はそれを発行するトークンのスコープとして用います。以下はリクエスト・レスポンスの例です。
  • リクエスト
  • レスポンス
結果的に認可サーバーは、クライアントに対し、「絞られた」スコープを持つアクセストークンを与えることになります。
上記機能では、最初の認可リクエスト中にないスコープを追加することはできません。あくまでも、認可リクエストでのスコープからスコープを「絞る」ことにのみ利用できます。