JP2020014071A - 認可サーバ装置、クライアント装置、ユーザ端末、情報処理方法及びプログラム - Google Patents
認可サーバ装置、クライアント装置、ユーザ端末、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2020014071A JP2020014071A JP2018133881A JP2018133881A JP2020014071A JP 2020014071 A JP2020014071 A JP 2020014071A JP 2018133881 A JP2018133881 A JP 2018133881A JP 2018133881 A JP2018133881 A JP 2018133881A JP 2020014071 A JP2020014071 A JP 2020014071A
- Authority
- JP
- Japan
- Prior art keywords
- authorization
- information
- client device
- server device
- token
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
【課題】認可サーバ装置の負荷を軽減しながら、ユーザの意図しない認可トークンの使用を防止することでセキュリティを向上させることを目的とする。【解決手段】ユーザが保持する権限をクライアント装置に委譲する認可サーバ装置であって、クライアント装置に対して委譲された権限を示す認可情報を生成してクライアント装置に送信し、認可情報の有効性を示す認可検証情報を生成して権限を持つユーザのユーザ端末に送信する生成手段と、認可情報と認可検証情報とに基づき認可情報の検証を行い、検証結果を送信する検証手段と、クライアント装置に対して委譲された権限を無効化する無効化手段と、を有する。【選択図】図3
Description
本発明は、認可サーバ装置、クライアント装置、ユーザ端末、情報処理方法及びプログラムに関する。
近年、サーバ装置が提供する様々な機能を、ユーザが使用するユーザ端末からネットワーク経由で利用可能にするサービスが広く展開されている。このようなサービスでは、多くの場合、サービスが保有するリソースへのアクセスをユーザ端末から要求された際に、ユーザID及びパスワード等の認証情報を用いてユーザを認証することを要求する。ユーザはユーザ端末に認証情報を入力し、認証が成功するとサービスから認証トークンが発行される。ユーザ端末は発行された認証トークンを付加して、サービスに処理の実行を要求する。サービスは、認証トークンの示すユーザが有する権限の範囲内で処理の実行を許可する。
また、認証されたユーザが、自身が有する権限をクライアント装置に委譲することで、クライアント装置が権限を獲得して処理を実行するようなことも行われている。ここで、クライアント装置とは、サービスが保有するリソースを使用するアプリケーションが動作するサーバ装置やモバイル端末等である。クライアント装置は、権限を委譲される対象としてサービスに登録される。権限を委譲する方法として、例えば、OAuth2.0(非特許文献1)等が広く用いられている。この方法においては、認証されたユーザに、クライアント装置に対して指定された権限を許可するか否かの判定を依頼する許可画面がユーザ端末を通して提示される。ユーザが許可を選択すると、クライアント装置にリソースにアクセスするための権限を示す認可トークンが発行される。そのため、ユーザは自分自身の認証情報をクライアント装置に入力することなく、リソースにアクセスするための権限を委譲することができる。
また、認証されたユーザが、自身が有する権限をクライアント装置に委譲することで、クライアント装置が権限を獲得して処理を実行するようなことも行われている。ここで、クライアント装置とは、サービスが保有するリソースを使用するアプリケーションが動作するサーバ装置やモバイル端末等である。クライアント装置は、権限を委譲される対象としてサービスに登録される。権限を委譲する方法として、例えば、OAuth2.0(非特許文献1)等が広く用いられている。この方法においては、認証されたユーザに、クライアント装置に対して指定された権限を許可するか否かの判定を依頼する許可画面がユーザ端末を通して提示される。ユーザが許可を選択すると、クライアント装置にリソースにアクセスするための権限を示す認可トークンが発行される。そのため、ユーザは自分自身の認証情報をクライアント装置に入力することなく、リソースにアクセスするための権限を委譲することができる。
認可トークンについて、クライアント装置に委譲する権限情報を暗号化してトークンに用いることで、データサーバでのトークン情報の管理を不要にすることでサーバの負荷を軽減する技術が存在する(非特許文献2)。しかし、暗号化した認可情報をトークンに用いる手法では、いったん発行されたトークンを明示的に無効化できない。そのため、一度発行した認可トークンは発行時に定めた有効期限が過ぎるまで無効化できず、ユーザがサービスの利用を終了したい、又はユーザがパスワードの変更等を行って、発行されたトークンをいったん無効にしたいといった場合に対処できない。
このような問題を解決する手段として、ユーザ端末にユーザの状態管理のためのデータを保持させる方法が公開されている。
特許文献1では、ユーザ端末にユーザの認証情報と共に「妥当性検証情報」をブラウザのクッキーとして格納させる。妥当性検証情報にはユーザのログイン/ログアウト状態が書き込まれる。ブラウザからリソースへのアクセス要求があれば認証情報が有効で妥当性検証情報がログイン状態の場合のみリソースを提供する。これにより、ユーザのサービス使用後に第三者によってユーザの認証情報が使用されることを防ぐことができる。
また、特許文献2では、認証情報とは別にブラウザのクッキーにユーザのログイン/ログアウト情報を保持する。これにより、特許文献1と同様に第三者によるユーザの認証情報の使用を防止するほか、1つのブラウザで複数のユーザのログイン/ログアウト情報をクッキーに記憶することで、ログインユーザの切り替えを可能とする。
このような問題を解決する手段として、ユーザ端末にユーザの状態管理のためのデータを保持させる方法が公開されている。
特許文献1では、ユーザ端末にユーザの認証情報と共に「妥当性検証情報」をブラウザのクッキーとして格納させる。妥当性検証情報にはユーザのログイン/ログアウト状態が書き込まれる。ブラウザからリソースへのアクセス要求があれば認証情報が有効で妥当性検証情報がログイン状態の場合のみリソースを提供する。これにより、ユーザのサービス使用後に第三者によってユーザの認証情報が使用されることを防ぐことができる。
また、特許文献2では、認証情報とは別にブラウザのクッキーにユーザのログイン/ログアウト情報を保持する。これにより、特許文献1と同様に第三者によるユーザの認証情報の使用を防止するほか、1つのブラウザで複数のユーザのログイン/ログアウト情報をクッキーに記憶することで、ログインユーザの切り替えを可能とする。
The OAuth 2.0 Authorization Framework(https://tools.ietf.org/html/rfc6749)
JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants(https://tools.ietf.org/html/rfc7523)
しかしながら、特許文献1及び2の方法では、ユーザの認証情報を扱うため、認証情報と妥当性検証情報とをどちらもユーザ側で保持する。そのため、OAuth2.0のようなクライアント装置への権限委譲という目的では扱えない。
本発明は、ユーザが保持する権限をクライアント装置に委譲する認可サーバ装置であって、前記クライアント装置に対して委譲された権限を示す認可情報を生成して前記クライアント装置に送信し、前記認可情報の有効性を示す認可検証情報を生成して権限を持つユーザのユーザ端末に送信する生成手段と、前記認可情報と前記認可検証情報とに基づき前記認可情報の検証を行い、検証結果を送信する検証手段と、前記クライアント装置に対して委譲された権限を無効化する無効化手段と、を有する。
本発明によれば、認可サーバ装置の負荷を軽減しながら、ユーザの意図しない認可トークンの使用を防止することでセキュリティを向上させることができる。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
図1は、認可システムのシステム構成の一例を示す図である。
認可システムは、認可サーバ装置101、リソースサーバ装置102、クライアント装置103、ユーザ端末104を含む。認可サーバ装置101、リソースサーバ装置102、クライアント装置103、ユーザ端末104は、ネットワーク105を介して互いに通信が可能である。ネットワーク105は、LAN等の同一のネットワークとして接続されていてもよいし、インターネット等の外部ネットワークとして接続されていてもよいし、それらの混合であってもよい。認可サーバ装置101とリソースサーバ装置102とは一つの装置で構成されてもよい。また、認可サーバ装置101、リソースサーバ装置102、クライアント装置103は、それぞれ複数の台数、認可システムに含まれていてもよい。
図1は、認可システムのシステム構成の一例を示す図である。
認可システムは、認可サーバ装置101、リソースサーバ装置102、クライアント装置103、ユーザ端末104を含む。認可サーバ装置101、リソースサーバ装置102、クライアント装置103、ユーザ端末104は、ネットワーク105を介して互いに通信が可能である。ネットワーク105は、LAN等の同一のネットワークとして接続されていてもよいし、インターネット等の外部ネットワークとして接続されていてもよいし、それらの混合であってもよい。認可サーバ装置101とリソースサーバ装置102とは一つの装置で構成されてもよい。また、認可サーバ装置101、リソースサーバ装置102、クライアント装置103は、それぞれ複数の台数、認可システムに含まれていてもよい。
認可サーバ装置101は、リソースサーバ装置102が保有するリソースにユーザ及びクライアント装置103の何れか又は双方がアクセスするための権限を管理する。認可サーバ装置101は、リソースサーバ装置102にリソースを保有するユーザのユーザ情報を保有している。また、認可サーバ装置101は、リソースサーバ装置102が保有しているリソースにアクセスするクライアント装置103のクライアント情報を保有している。更に、認可サーバ装置101は、クライアント装置103からの要求に応じてクライアント装置103に対して認可トークン、ユーザ端末104に対してペアレントトークンをそれぞれ発行したり、リソースサーバ装置102からの要求に応じて認可トークンの有効性を検証したりする。ここで、認可トークンとは、認証されたユーザに対して与えられる権限情報、又は認証されたユーザがクライアント装置103に対して委譲した権限を示す認可情報が記述されたデータのことである。認可トークンは、例えば、OAuth2.0におけるアクセストークンである。ここで、ペアレントトークンとは、認可トークンの有効性を示す認可検証情報が記述されたデータのことである。クライアント装置103は、リソースサーバ装置102にリソースへのアクセスを要求する際に、まず認可サーバ装置101に対して認可トークン取得を要求する。認可サーバ装置101は、クライアント装置103に対して認可トークン、ユーザ端末104に対してペアレントトークンをそれぞれ発行する。クライアント装置103は、ユーザ端末104を経由して、リソースサーバ装置102に対して認可トークンと共にリソースアクセス要求を送信する。ユーザ端末104は、クライアント装置103からリソースアクセス要求を受信したら、ペアレントトークンと共にリソースアクセス要求をリソースサーバ装置102に送信する。リソースサーバ装置102は、受信した認可トークン、ペアレントトークンの有効性を検証し、要求の可否を決定する。
リソースサーバ装置102は、ユーザのリソースを保有する。ここで、リソースとは、Webでアクセス可能なあらゆるデータ及び処理の何れか又は双方のことである。データとしては、ユーザのパーソナルデータ、画像データ、文書データ等、様々なものがある。また、リソースサーバ装置102は、クライアント装置103からのリソースアクセス要求に応じてリソースを提供する。
クライアント装置103は、ユーザ端末104からの処理要求に応じて、各種処理を行うアプリケーションが動作するサーバ、又はモバイル端末等である。クライアント装置103は、権限委譲の対象として認可サーバ装置101に登録される。クライアント装置103は、処理を実行する際には、リソースサーバ装置102に処理に必要なリソースへのアクセスを要求する。また、クライアント装置103は、リソースサーバ装置102にリソースへのアクセスを要求するために、認可サーバ装置101に認可トークンの取得を要求する。
ユーザ端末104は、ユーザが操作する端末であり、パーソナルコンピュータ、又はモバイル端末等である。
クライアント装置103は、ユーザ端末104からの処理要求に応じて、各種処理を行うアプリケーションが動作するサーバ、又はモバイル端末等である。クライアント装置103は、権限委譲の対象として認可サーバ装置101に登録される。クライアント装置103は、処理を実行する際には、リソースサーバ装置102に処理に必要なリソースへのアクセスを要求する。また、クライアント装置103は、リソースサーバ装置102にリソースへのアクセスを要求するために、認可サーバ装置101に認可トークンの取得を要求する。
ユーザ端末104は、ユーザが操作する端末であり、パーソナルコンピュータ、又はモバイル端末等である。
図2は、認可サーバ装置101のハードウェア構成の一例を示す図である。リソースサーバ装置102、クライアント装置103、ユーザ端末104のハードウェア構成も図2の認可サーバ装置101のハードウェア構成と同様の構成である。
認可サーバ装置101は、CPU201、RAM202、ROM203、ネットワークインタフェース204、外部記憶装置205、表示装置206、入力装置207を少なくとも備えている。
CPU201は、認可サーバ装置101を構成する各部の動作制御を行うと共に、認可サーバ装置101が行うものとして後述する各種の処理を実行する主体となる。
RAM202は、データや制御情報を一時的に格納するメモリであり、CPU201が各種の処理を実行する際に用いるワークエリアとなる。
ROM203には、認可サーバ装置101の固定の動作パラメータやプログラム等が格納される。
ネットワークインタフェース204は、ネットワーク105に接続して通信するための機能を提供するものである。認可サーバ装置101は、このネットワークインタフェース204によって、外部装置とデータの送受信を行うことができる。
外部記憶装置205は、データを記憶する装置であり、データの読み書きを行うためのI/Oコマンドを受け付けるインタフェースを持つ。外部記憶装置205は、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、光ディスクドライブ、半導体記憶装置又はその他の記憶装置であってもよい。外部記憶装置205は、認可サーバ装置101が行うものとして後述する各処理をCPU201に実行させるためのプログラムやデータが格納されている。
表示装置206は、例えば、LCD(Liquid Crystal Display)等であり、ユーザに必要な情報を表示する。
入力装置207は、例えば、キーボードやマウス、タッチパネル等であり、ユーザから必要な入力を受け付ける。
CPU201がROM203又は外部記憶装置205に記憶されているプログラムに基づき処理を実行することにより後述する図3に示す認可サーバ装置101の機能構成及び図6〜図11のフローチャートの認可サーバ装置101の処理が実現される。同様に、各装置のCPUが各装置のROM又は外部記憶装置に記憶されているプログラムに基づき処理を実行することにより後述する図3に示す各装置の機能構成及び図6〜図11のフローチャートの各装置の処理が実現される。
認可サーバ装置101は、CPU201、RAM202、ROM203、ネットワークインタフェース204、外部記憶装置205、表示装置206、入力装置207を少なくとも備えている。
CPU201は、認可サーバ装置101を構成する各部の動作制御を行うと共に、認可サーバ装置101が行うものとして後述する各種の処理を実行する主体となる。
RAM202は、データや制御情報を一時的に格納するメモリであり、CPU201が各種の処理を実行する際に用いるワークエリアとなる。
ROM203には、認可サーバ装置101の固定の動作パラメータやプログラム等が格納される。
ネットワークインタフェース204は、ネットワーク105に接続して通信するための機能を提供するものである。認可サーバ装置101は、このネットワークインタフェース204によって、外部装置とデータの送受信を行うことができる。
外部記憶装置205は、データを記憶する装置であり、データの読み書きを行うためのI/Oコマンドを受け付けるインタフェースを持つ。外部記憶装置205は、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、光ディスクドライブ、半導体記憶装置又はその他の記憶装置であってもよい。外部記憶装置205は、認可サーバ装置101が行うものとして後述する各処理をCPU201に実行させるためのプログラムやデータが格納されている。
表示装置206は、例えば、LCD(Liquid Crystal Display)等であり、ユーザに必要な情報を表示する。
入力装置207は、例えば、キーボードやマウス、タッチパネル等であり、ユーザから必要な入力を受け付ける。
CPU201がROM203又は外部記憶装置205に記憶されているプログラムに基づき処理を実行することにより後述する図3に示す認可サーバ装置101の機能構成及び図6〜図11のフローチャートの認可サーバ装置101の処理が実現される。同様に、各装置のCPUが各装置のROM又は外部記憶装置に記憶されているプログラムに基づき処理を実行することにより後述する図3に示す各装置の機能構成及び図6〜図11のフローチャートの各装置の処理が実現される。
図3は、認可システムを構成する各装置の機能構成の一例を示す図である。
認可サーバ装置101は、クライアント情報格納部301、認可トークン発行部302、ペアレントトークン発行部303、認可トークン検証部304を含む。
クライアント情報格納部301が認可サーバ装置101の外部記憶装置205に格納したクライアント情報の一例を図4に示す。認可サーバ装置101の外部記憶装置205には、クライアントID401に関連付けて、パスワード402、権限スコープ403が格納されている。クライアントID401は、クライアント装置103を一意に識別するためのIDである。パスワード402は、クライアント装置103を認証するための文字列である。ここでは、クライアント装置103を認証するための情報としてパスワードが用いられているが、他の認証情報が用いられていてもよい。権限スコープ403は、クライアント装置103が有する権限の適用範囲を表している。
認可トークン発行部302は、クライアント装置103から認可トークン発行要求を受信した際に、認可トークンの発行を行う。この際、認可トークン発行部302は、クライアント情報格納部301が格納したクライアント情報に基づいて権限委譲の対象となるクライアント装置103の有効性を検証する。
認可トークン発行部302が発行する認可トークンの一例を図5(a)に示す。認可トークンは、認可トークンID501に関連付けて、クライアントID502、権限スコープ503、認可トークン有効期限504を含む。認可トークンID501は、認可トークンを一意に識別するためのランダムな文字列である。クライアントID502は、権限が委譲された、即ち認可トークンが発行されたクライアント装置103を表している。権限スコープ503は、認可トークンが有する権限の適用範囲を表している。認可トークン有効期限504は、認可トークンの有効期限であり、期限を過ぎた認可トークンは無効となる。認可トークン自体はJWT(JSON Web Token)形式の文字列であってもよい。認可トークンIDは、認可情報を識別する識別情報の一例である。
認可サーバ装置101は、クライアント情報格納部301、認可トークン発行部302、ペアレントトークン発行部303、認可トークン検証部304を含む。
クライアント情報格納部301が認可サーバ装置101の外部記憶装置205に格納したクライアント情報の一例を図4に示す。認可サーバ装置101の外部記憶装置205には、クライアントID401に関連付けて、パスワード402、権限スコープ403が格納されている。クライアントID401は、クライアント装置103を一意に識別するためのIDである。パスワード402は、クライアント装置103を認証するための文字列である。ここでは、クライアント装置103を認証するための情報としてパスワードが用いられているが、他の認証情報が用いられていてもよい。権限スコープ403は、クライアント装置103が有する権限の適用範囲を表している。
認可トークン発行部302は、クライアント装置103から認可トークン発行要求を受信した際に、認可トークンの発行を行う。この際、認可トークン発行部302は、クライアント情報格納部301が格納したクライアント情報に基づいて権限委譲の対象となるクライアント装置103の有効性を検証する。
認可トークン発行部302が発行する認可トークンの一例を図5(a)に示す。認可トークンは、認可トークンID501に関連付けて、クライアントID502、権限スコープ503、認可トークン有効期限504を含む。認可トークンID501は、認可トークンを一意に識別するためのランダムな文字列である。クライアントID502は、権限が委譲された、即ち認可トークンが発行されたクライアント装置103を表している。権限スコープ503は、認可トークンが有する権限の適用範囲を表している。認可トークン有効期限504は、認可トークンの有効期限であり、期限を過ぎた認可トークンは無効となる。認可トークン自体はJWT(JSON Web Token)形式の文字列であってもよい。認可トークンIDは、認可情報を識別する識別情報の一例である。
ペアレントトークン発行部303は、認可トークン発行部302が認可トークンを発行した際に、認可トークン発行部302が発行した認可トークンの有効性情報を含むペアレントトークンの発行を行う。また、ペアレントトークン発行部303は、クライアント装置103から認可トークン無効化要求を受信した際に、対象の認可トークンの有効性情報を削除したペアレントトークンを発行する。
ペアレントトークン発行部303が発行するペアレントトークンの一例を図5(b)に示す。ペアレントトークンは、認可トークンIDリスト505、ペアレントトークン有効期限506を含む。認可トークンIDリスト505は、ペアレントトークンと紐づく認可トークンの一覧を表している。認可トークン自体はJWT(JSON Web Token)形式の文字列であってもよい。認可トークン検証部304で認可トークンの検証を行う際、ペアレントトークンの認可トークンIDリスト505に、検証対象である認可トークンの認可トークンID501が含まれていない場合、検証は失敗する。ペアレントトークン有効期限506は、ペアレントトークンの有効期限であり、期限を過ぎたペアレントトークンは無効となる。
認可トークン検証部304は、クライアント装置103から認可トークン検証要求を受信した際に、認可トークン検証要求と共に送られた認可トークン、ペアレントトークンに基づいて認可トークンの正当性を検証する。
ペアレントトークン発行部303が発行するペアレントトークンの一例を図5(b)に示す。ペアレントトークンは、認可トークンIDリスト505、ペアレントトークン有効期限506を含む。認可トークンIDリスト505は、ペアレントトークンと紐づく認可トークンの一覧を表している。認可トークン自体はJWT(JSON Web Token)形式の文字列であってもよい。認可トークン検証部304で認可トークンの検証を行う際、ペアレントトークンの認可トークンIDリスト505に、検証対象である認可トークンの認可トークンID501が含まれていない場合、検証は失敗する。ペアレントトークン有効期限506は、ペアレントトークンの有効期限であり、期限を過ぎたペアレントトークンは無効となる。
認可トークン検証部304は、クライアント装置103から認可トークン検証要求を受信した際に、認可トークン検証要求と共に送られた認可トークン、ペアレントトークンに基づいて認可トークンの正当性を検証する。
リソースサーバ装置102は、リソース提供部305、リソース格納部306を含む。
リソース提供部305は、クライアント装置103からリソース取得要求を受信した際に、リソース格納部306が格納したリソースを提供する。このとき、リソース提供部305は、リソース取得要求に付加されている認可トークンが、リソースに対する権限を保有しているか否かを、認可サーバ装置101の認可トークン検証部304に問い合わせて検証する。
リソース格納部306は、ユーザが保有するリソースをリソースサーバ装置102の外部記憶装置205等に格納する。
クライアント装置103は、要求処理部307、認可トークン記憶部308を含む。
要求処理部307は、ユーザ端末からの処理要求に応じて、リソースサーバ装置102にリソース提供要求を送信して、処理に必要なリソースを取得する。要求処理部307は、リソース提供要求に、認可トークン記憶部308が記憶した認可トークンを付与する。
認可トークン記憶部308は、認可サーバ装置101の認可トークン発行部302から発行された認可トークンをクライアント装置103の外部記憶装置205等に記憶する。
ユーザ端末104は、ユーザエージェント309、ペアレントトークン記憶部310を含む。
ユーザエージェント309は、Webブラウザ等、ユーザがWebサイトにアクセスするための機能を提供する。また、ユーザエージェント309は、クライアント装置からリソースサーバ装置へのリソース要求がユーザ端末を経由して送信された際に、リソース要求にペアレントトークン記憶部310が記憶したペアレントトークンを付与する。
ペアレントトークン記憶部310は、認可サーバ装置101のペアレントトークン発行部303から発行されたペアレントトークンをユーザ端末104の外部記憶装置205等に記憶する。
リソース提供部305は、クライアント装置103からリソース取得要求を受信した際に、リソース格納部306が格納したリソースを提供する。このとき、リソース提供部305は、リソース取得要求に付加されている認可トークンが、リソースに対する権限を保有しているか否かを、認可サーバ装置101の認可トークン検証部304に問い合わせて検証する。
リソース格納部306は、ユーザが保有するリソースをリソースサーバ装置102の外部記憶装置205等に格納する。
クライアント装置103は、要求処理部307、認可トークン記憶部308を含む。
要求処理部307は、ユーザ端末からの処理要求に応じて、リソースサーバ装置102にリソース提供要求を送信して、処理に必要なリソースを取得する。要求処理部307は、リソース提供要求に、認可トークン記憶部308が記憶した認可トークンを付与する。
認可トークン記憶部308は、認可サーバ装置101の認可トークン発行部302から発行された認可トークンをクライアント装置103の外部記憶装置205等に記憶する。
ユーザ端末104は、ユーザエージェント309、ペアレントトークン記憶部310を含む。
ユーザエージェント309は、Webブラウザ等、ユーザがWebサイトにアクセスするための機能を提供する。また、ユーザエージェント309は、クライアント装置からリソースサーバ装置へのリソース要求がユーザ端末を経由して送信された際に、リソース要求にペアレントトークン記憶部310が記憶したペアレントトークンを付与する。
ペアレントトークン記憶部310は、認可サーバ装置101のペアレントトークン発行部303から発行されたペアレントトークンをユーザ端末104の外部記憶装置205等に記憶する。
次に、認可システムの動作について説明し、併せて、認可方法について説明する。
図6は、認可システムの情報処理の一例を示すフローチャートである。本実施形態では、クライアント装置103としてウェブアプリケーションを提供するサーバを想定して記載するが、クライアント装置103はモバイル端末のアプリケーション等、他の形態であってもよい。
まず、ユーザがユーザ端末104を使ってクライアント装置103に処理を要求する操作を行うと、S601において、ユーザ端末104のユーザエージェント309は、クライアント装置103に処理要求を送信する。
S602において、クライアント装置103の要求処理部307は、処理要求を受信する。
処理の実行にリソースサーバ装置102が保有するリソースが必要な場合には、S603において、クライアント装置103の要求処理部307は、認可サーバ装置101に認可トークン取得要求を送信する。
S604において、認可サーバ装置101の認可トークン発行部302は、認可トークン取得要求を受信する。認可トークン取得要求は、クライアント装置に対する権限の委譲要求の一例である。
S605において、認可トークン発行部302は、認可トークンを発行する。そして、認可トークン発行部302は、発行した認可トークンをクライアント装置103に送信する。
S606において、クライアント装置103の要求処理部307は、認可トークンを受信する。
S607において、クライアント装置103の要求処理部307は、認可トークン取得通知をユーザ端末104に送信する。
図6は、認可システムの情報処理の一例を示すフローチャートである。本実施形態では、クライアント装置103としてウェブアプリケーションを提供するサーバを想定して記載するが、クライアント装置103はモバイル端末のアプリケーション等、他の形態であってもよい。
まず、ユーザがユーザ端末104を使ってクライアント装置103に処理を要求する操作を行うと、S601において、ユーザ端末104のユーザエージェント309は、クライアント装置103に処理要求を送信する。
S602において、クライアント装置103の要求処理部307は、処理要求を受信する。
処理の実行にリソースサーバ装置102が保有するリソースが必要な場合には、S603において、クライアント装置103の要求処理部307は、認可サーバ装置101に認可トークン取得要求を送信する。
S604において、認可サーバ装置101の認可トークン発行部302は、認可トークン取得要求を受信する。認可トークン取得要求は、クライアント装置に対する権限の委譲要求の一例である。
S605において、認可トークン発行部302は、認可トークンを発行する。そして、認可トークン発行部302は、発行した認可トークンをクライアント装置103に送信する。
S606において、クライアント装置103の要求処理部307は、認可トークンを受信する。
S607において、クライアント装置103の要求処理部307は、認可トークン取得通知をユーザ端末104に送信する。
S608において、ユーザ端末104のユーザエージェント309は、認可トークン取得通知を受信する。認可トークン取得通知は、認可情報取得通知の一例である。
S609において、ユーザ端末104のユーザエージェント309は、認可トークン取得通知に含まれる認可トークンを付与して、認可サーバ装置101にペアレントトークン取得要求を送信する。
S610において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークン取得要求を受信する。
S611において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークンを発行する。そして、ペアレントトークン発行部303は、ペアレントトークンをユーザ端末104に送信する。
S612において、ユーザ端末104のユーザエージェント309は、ペアレントトークンを受信する。ユーザ端末104のペアレントトークン記憶部310は、ペアレントトークンを記憶する。
S613において、ユーザ端末104のユーザエージェント309は、ペアレントトークン取得通知をクライアント装置103に送信する。
S614において、クライアント装置103の要求処理部307は、ペアレントトークン取得通知を受信する。
S609において、ユーザ端末104のユーザエージェント309は、認可トークン取得通知に含まれる認可トークンを付与して、認可サーバ装置101にペアレントトークン取得要求を送信する。
S610において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークン取得要求を受信する。
S611において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークンを発行する。そして、ペアレントトークン発行部303は、ペアレントトークンをユーザ端末104に送信する。
S612において、ユーザ端末104のユーザエージェント309は、ペアレントトークンを受信する。ユーザ端末104のペアレントトークン記憶部310は、ペアレントトークンを記憶する。
S613において、ユーザ端末104のユーザエージェント309は、ペアレントトークン取得通知をクライアント装置103に送信する。
S614において、クライアント装置103の要求処理部307は、ペアレントトークン取得通知を受信する。
S615において、クライアント装置103の要求処理部307は、リソースサーバ装置102に対するリソース取得要求に認可トークンを付与してユーザ端末104に送信する。
S616において、ユーザ端末104のユーザエージェント309は、リソース取得要求を受信する。
S617において、ユーザ端末104のユーザエージェント309は、リソース取得要求に含まれる認可トークンの認可トークンIDを認可トークンIDリストに含むペアレントトークンを、ペアレントトークン記憶部310を介して取得する。そして、ユーザエージェント309は、取得したペアレントトークンをリソース取得要求に付与して、リソースサーバ装置102に送信する。
S618において、リソースサーバ装置102のリソース提供部305は、リソース取得要求を受信する。
S619において、リソースサーバ装置102のリソース提供部305は、リソース取得要求に含まれる、認可トークンとペアレントトークンとを含む認可トークン検証要求を認可サーバ装置101に送信する。
S620において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求を受信する。
S621において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求に含まれる認可トークンとペアレントトークンとに基づき、認可トークンが有効か否かの検証を行う。S621の処理の詳細は、後述する図9に示す。
S622において、認可サーバ装置101の認可トークン検証部304は、認可トークンが有効か否かの検証結果をリソースサーバ装置102に送信する。
S616において、ユーザ端末104のユーザエージェント309は、リソース取得要求を受信する。
S617において、ユーザ端末104のユーザエージェント309は、リソース取得要求に含まれる認可トークンの認可トークンIDを認可トークンIDリストに含むペアレントトークンを、ペアレントトークン記憶部310を介して取得する。そして、ユーザエージェント309は、取得したペアレントトークンをリソース取得要求に付与して、リソースサーバ装置102に送信する。
S618において、リソースサーバ装置102のリソース提供部305は、リソース取得要求を受信する。
S619において、リソースサーバ装置102のリソース提供部305は、リソース取得要求に含まれる、認可トークンとペアレントトークンとを含む認可トークン検証要求を認可サーバ装置101に送信する。
S620において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求を受信する。
S621において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求に含まれる認可トークンとペアレントトークンとに基づき、認可トークンが有効か否かの検証を行う。S621の処理の詳細は、後述する図9に示す。
S622において、認可サーバ装置101の認可トークン検証部304は、認可トークンが有効か否かの検証結果をリソースサーバ装置102に送信する。
S623において、リソースサーバ装置102のリソース提供部305は、認可トークンの検証結果を受信する。
S624において、リソースサーバ装置102のリソース提供部305は、認可トークンの検証結果が、認可トークンが有効であることを示していた場合、リソース格納部306を介してリソースを取得し、クライアント装置103にリソースを送信する。
S625において、クライアント装置103の要求処理部307は、リソースを受信する。
S626において、クライアント装置103の要求処理部307は、受信したリソースを使用して処理要求に対応した処理を実行する。そして、要求処理部307は、処理結果をユーザ端末104に送信する。
S627において、ユーザ端末104のユーザエージェント309は、処理結果を受信し、ユーザに表示する。
S624において、リソースサーバ装置102のリソース提供部305は、認可トークンの検証結果が、認可トークンが有効であることを示していた場合、リソース格納部306を介してリソースを取得し、クライアント装置103にリソースを送信する。
S625において、クライアント装置103の要求処理部307は、リソースを受信する。
S626において、クライアント装置103の要求処理部307は、受信したリソースを使用して処理要求に対応した処理を実行する。そして、要求処理部307は、処理結果をユーザ端末104に送信する。
S627において、ユーザ端末104のユーザエージェント309は、処理結果を受信し、ユーザに表示する。
次に、実施形態1に係る認可システムで行われる認可トークンの取得処理について、図7を用いて説明する。
S603において、クライアント装置103の要求処理部307は、認可サーバ装置101に認可トークン取得要求を送信する。実際には、クライアント装置103から送信された要求はユーザ端末104を経由して認可サーバ装置101に送信される。
S604において、認可サーバ装置101の認可トークン発行部302は、認可トークン取得要求を受信する。
S605において、認可トークン発行部302は、認可トークンを発行するために許可を行うユーザが認証済みか否かを判定する。認可トークン発行部302は、認証に成功すれば認可トークンを生成し、クライアント装置103に送信する。認可トークン発行部302は、認証及び認可を、OAuth 2.0のプロトコルを用いて実行することができる。この場合、ユーザID/ユーザパスワード等の認証情報の授受の方法、認可トークンに含まれる内容は、OAuth 2.0等の仕様によって規定されることになる。
S606において、クライアント装置103の要求処理部307は、認可トークンを受信する。
S607において、クライアント装置103の要求処理部307は、認可トークン取得通知をユーザ端末104に送信する。
S603において、クライアント装置103の要求処理部307は、認可サーバ装置101に認可トークン取得要求を送信する。実際には、クライアント装置103から送信された要求はユーザ端末104を経由して認可サーバ装置101に送信される。
S604において、認可サーバ装置101の認可トークン発行部302は、認可トークン取得要求を受信する。
S605において、認可トークン発行部302は、認可トークンを発行するために許可を行うユーザが認証済みか否かを判定する。認可トークン発行部302は、認証に成功すれば認可トークンを生成し、クライアント装置103に送信する。認可トークン発行部302は、認証及び認可を、OAuth 2.0のプロトコルを用いて実行することができる。この場合、ユーザID/ユーザパスワード等の認証情報の授受の方法、認可トークンに含まれる内容は、OAuth 2.0等の仕様によって規定されることになる。
S606において、クライアント装置103の要求処理部307は、認可トークンを受信する。
S607において、クライアント装置103の要求処理部307は、認可トークン取得通知をユーザ端末104に送信する。
S608において、ユーザ端末104のユーザエージェント309は、認可トークン取得通知を受信する。
S609において、ユーザ端末104のユーザエージェント309は、認可トークン取得通知に含まれる認可トークンを付与して、認可サーバ装置101にペアレントトークン取得要求を送信する。
S610において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークン取得要求を受信する。
S611において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークン取得要求に付与されていた認可トークンの認可トークンIDを認可トークンIDリストに含むペアレントトークンを生成し、ユーザ端末104に送信する。ペアレントトークン発行部303は、ペアレントトークの有効期限を、付与されていた認可トークンの有効期限より長い期間に設定する。S611の処理は、認可トークンに対し、認可トークンと対応付けられたペアレントトークを生成する処理の一例である。
S612において、ユーザ端末104のユーザエージェント309は、ペアレントトークンを受信する。ユーザ端末104のペアレントトークン記憶部310は、ペアレントトークンを記憶する。
S613において、ユーザ端末104のユーザエージェント309は、ペアレントトークン取得通知をクライアント装置103に送信する。
S614において、クライアント装置103の要求処理部307は、ペアレントトークン取得通知を受信すると、認可トークンが有効になったと判断し、認可トークン記憶部308を介して、認可トークンを記憶する。
S609において、ユーザ端末104のユーザエージェント309は、認可トークン取得通知に含まれる認可トークンを付与して、認可サーバ装置101にペアレントトークン取得要求を送信する。
S610において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークン取得要求を受信する。
S611において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークン取得要求に付与されていた認可トークンの認可トークンIDを認可トークンIDリストに含むペアレントトークンを生成し、ユーザ端末104に送信する。ペアレントトークン発行部303は、ペアレントトークの有効期限を、付与されていた認可トークンの有効期限より長い期間に設定する。S611の処理は、認可トークンに対し、認可トークンと対応付けられたペアレントトークを生成する処理の一例である。
S612において、ユーザ端末104のユーザエージェント309は、ペアレントトークンを受信する。ユーザ端末104のペアレントトークン記憶部310は、ペアレントトークンを記憶する。
S613において、ユーザ端末104のユーザエージェント309は、ペアレントトークン取得通知をクライアント装置103に送信する。
S614において、クライアント装置103の要求処理部307は、ペアレントトークン取得通知を受信すると、認可トークンが有効になったと判断し、認可トークン記憶部308を介して、認可トークンを記憶する。
このように、認可トークンの生成処理では、クライアント装置103の認可トークン取得要求に対して、認可トークンとペアレントトークンとを生成し、認可トークンはクライアント装置103、ペアレントトークンはユーザ端末104にそれぞれ保管させる。
次に、認可システムが行う認可トークンの検証処理について、図8のフローチャートを用いて説明する。
S615において、クライアント装置103の要求処理部307は、リソースサーバ装置102に対するリソース取得要求に認可トークンを付与してユーザ端末104に送信する。
S616において、ユーザ端末104のユーザエージェント309は、リソース取得要求を受信する。
S617において、ユーザ端末104のユーザエージェント309は、リソース取得要求に含まれる認可トークンの認可トークンIDを認可トークンIDリストに含むペアレントトークンを、ペアレントトークン記憶部310を介して取得する。そして、ユーザエージェント309は、取得したペアレントトークンをリソース取得要求に付与して、リソースサーバ装置102に送信する。
S618において、リソースサーバ装置102のリソース提供部305は、リソース取得要求を受信する。
S619において、リソースサーバ装置102のリソース提供部305は、リソース取得要求に含まれる、認可トークンとペアレントトークンとを含む認可トークン検証要求を認可サーバ装置101に送信する。
S615において、クライアント装置103の要求処理部307は、リソースサーバ装置102に対するリソース取得要求に認可トークンを付与してユーザ端末104に送信する。
S616において、ユーザ端末104のユーザエージェント309は、リソース取得要求を受信する。
S617において、ユーザ端末104のユーザエージェント309は、リソース取得要求に含まれる認可トークンの認可トークンIDを認可トークンIDリストに含むペアレントトークンを、ペアレントトークン記憶部310を介して取得する。そして、ユーザエージェント309は、取得したペアレントトークンをリソース取得要求に付与して、リソースサーバ装置102に送信する。
S618において、リソースサーバ装置102のリソース提供部305は、リソース取得要求を受信する。
S619において、リソースサーバ装置102のリソース提供部305は、リソース取得要求に含まれる、認可トークンとペアレントトークンとを含む認可トークン検証要求を認可サーバ装置101に送信する。
S620において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求を受信する。
S621において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求に含まれる認可トークンとペアレントトークンとに基づき、認可トークンが有効か否かの検証を行う。S621の処理の詳細は、後述する図9に示す。
S622において、認可サーバ装置101の認可トークン検証部304は、認可トークンが有効か否かの検証結果をリソースサーバ装置102に送信する。
S623において、リソースサーバ装置102のリソース提供部305は、認可トークンの検証結果を受信する。
S624において、リソースサーバ装置102のリソース提供部305は、認可トークンの検証結果が、認可トークンが有効であることを示していた場合、リソース格納部306を介してリソースを取得し、クライアント装置103にリソースを送信する。
S625において、クライアント装置103の要求処理部307は、リソースを受信する。
S621において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求に含まれる認可トークンとペアレントトークンとに基づき、認可トークンが有効か否かの検証を行う。S621の処理の詳細は、後述する図9に示す。
S622において、認可サーバ装置101の認可トークン検証部304は、認可トークンが有効か否かの検証結果をリソースサーバ装置102に送信する。
S623において、リソースサーバ装置102のリソース提供部305は、認可トークンの検証結果を受信する。
S624において、リソースサーバ装置102のリソース提供部305は、認可トークンの検証結果が、認可トークンが有効であることを示していた場合、リソース格納部306を介してリソースを取得し、クライアント装置103にリソースを送信する。
S625において、クライアント装置103の要求処理部307は、リソースを受信する。
認可トークンの検証処理の詳細について、図9のフローチャートを用いて説明する。
S619において、リソースサーバ装置102のリソース提供部305は、リソース取得要求に含まれる、認可トークンとペアレントトークンとを含む認可トークン検証要求を認可サーバ装置101に送信する。
S620において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求を受信する。
S901において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求に認可トークン及びペアレントトークンの両方が含まれていたか否かを判定する。認可トークン検証部304は、認可トークン及びペアレントトークンの両方が含まれていたと判定した場合、S903に進み、認可トークン及びペアレントトークンの両方が含まれていないと判定した場合、S902に進む。
S902において、認可サーバ装置101の認可トークン検証部304は、認可トークンが無効であると判定する。
S903において、認可サーバ装置101の認可トークン検証部304は、認可トークン、ペアレントトークンが正規のものであるか否かを判定する。認可トークン検証部304は、正規のものであるか否かは、認可トークン、ペアレントトークンがJWT(JSON Web Token)形式の文字列であるならば、トークンの署名が正当か否かによって判定する。認可トークン検証部304は、認可トークン、ペアレントトークンが正規のものでないと判定した場合には、S902に進み、正規のものであると判定した場合には、S904に進む。
S619において、リソースサーバ装置102のリソース提供部305は、リソース取得要求に含まれる、認可トークンとペアレントトークンとを含む認可トークン検証要求を認可サーバ装置101に送信する。
S620において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求を受信する。
S901において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求に認可トークン及びペアレントトークンの両方が含まれていたか否かを判定する。認可トークン検証部304は、認可トークン及びペアレントトークンの両方が含まれていたと判定した場合、S903に進み、認可トークン及びペアレントトークンの両方が含まれていないと判定した場合、S902に進む。
S902において、認可サーバ装置101の認可トークン検証部304は、認可トークンが無効であると判定する。
S903において、認可サーバ装置101の認可トークン検証部304は、認可トークン、ペアレントトークンが正規のものであるか否かを判定する。認可トークン検証部304は、正規のものであるか否かは、認可トークン、ペアレントトークンがJWT(JSON Web Token)形式の文字列であるならば、トークンの署名が正当か否かによって判定する。認可トークン検証部304は、認可トークン、ペアレントトークンが正規のものでないと判定した場合には、S902に進み、正規のものであると判定した場合には、S904に進む。
S904において、認可サーバ装置101の認可トークン検証部304は、認可トークンの認可トークンID501がペアレントトークンの認可トークンIDリスト505に登録されているか否かを判定する。認可トークン検証部304は、認可トークンの認可トークンID501がペアレントトークンの認可トークンIDリスト505に登録されていないと判定した場合は、S902に進み、登録されていると判定した場合は、S905に進む。
S905において、認可サーバ装置101の認可トークン検証部304は、認可トークン、ペアレントトークンが有効期限内であるか否かを判定する。認可トークン検証部304は、認可トークン、又はペアレントトークンが有効期限内でないと判定した場合は、S902に進み、認可トークン、ペアレントトークンが有効期限内であると判定した場合は、S906に進む。
S906において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求で指定された権限スコープが正当であるか否かを判定する。認可トークン検証部304は、権限スコープが正当でないと判定した場合は、S902に進み、権限スコープが正当であると判定した場合は、S907に進む。
S907において、認可サーバ装置101の認可トークン検証部304は、認可トークンが有効であると判定する。
S622において、認可サーバ装置101の認可トークン検証部304は、認可トークンが有効か否かの検証結果をリソースサーバ装置102に送信する。
S623において、リソースサーバ装置102のリソース提供部305は、認可トークンの検証結果を受信する。
S905において、認可サーバ装置101の認可トークン検証部304は、認可トークン、ペアレントトークンが有効期限内であるか否かを判定する。認可トークン検証部304は、認可トークン、又はペアレントトークンが有効期限内でないと判定した場合は、S902に進み、認可トークン、ペアレントトークンが有効期限内であると判定した場合は、S906に進む。
S906において、認可サーバ装置101の認可トークン検証部304は、認可トークン検証要求で指定された権限スコープが正当であるか否かを判定する。認可トークン検証部304は、権限スコープが正当でないと判定した場合は、S902に進み、権限スコープが正当であると判定した場合は、S907に進む。
S907において、認可サーバ装置101の認可トークン検証部304は、認可トークンが有効であると判定する。
S622において、認可サーバ装置101の認可トークン検証部304は、認可トークンが有効か否かの検証結果をリソースサーバ装置102に送信する。
S623において、リソースサーバ装置102のリソース提供部305は、認可トークンの検証結果を受信する。
このように、認可トークンの検証処理では、クライアント装置103が持つ認可トークン、ユーザ端末104が持つペアレントトークンの両方が有効であると判定されたとき、認可トークンの検証に成功したと判定する。
次に、認可サーバ装置101が行う認可トークンの無効化処理について、図10を用いて説明する。認可トークンの無効化処理は、クライアント装置103からの認可トークン無効化要求を受信した際に実行される。
まず、ユーザがユーザ端末104を使ってクライアント装置103にサービス終了を要求する操作を行うと、S1001において、ユーザ端末104のユーザエージェント309は、クライアント装置103にサービス終了要求を送信する。
S1002において、クライアント装置103の要求処理部307は、サービス終了要求を受信する。
S1003において、クライアント装置103の要求処理部307は、認可サーバ装置101に対する認可トークン無効化要求をユーザ端末104に送信する。
S1004において、ユーザ端末104のユーザエージェント309は、認可トークン無効化要求を受信する。
S1005において、ユーザ端末104のユーザエージェント309は、認可トークン無効化要求に含まれる認可トークンの認可トークンIDを認可トークンIDリストに含むペアレントトークンを、ペアレントトークン記憶部310を介して取得する。そして、ユーザエージェント309は、取得したペアレントトークンを認可トークン無効化要求に付与して、認可サーバ装置101に送信する。
まず、ユーザがユーザ端末104を使ってクライアント装置103にサービス終了を要求する操作を行うと、S1001において、ユーザ端末104のユーザエージェント309は、クライアント装置103にサービス終了要求を送信する。
S1002において、クライアント装置103の要求処理部307は、サービス終了要求を受信する。
S1003において、クライアント装置103の要求処理部307は、認可サーバ装置101に対する認可トークン無効化要求をユーザ端末104に送信する。
S1004において、ユーザ端末104のユーザエージェント309は、認可トークン無効化要求を受信する。
S1005において、ユーザ端末104のユーザエージェント309は、認可トークン無効化要求に含まれる認可トークンの認可トークンIDを認可トークンIDリストに含むペアレントトークンを、ペアレントトークン記憶部310を介して取得する。そして、ユーザエージェント309は、取得したペアレントトークンを認可トークン無効化要求に付与して、認可サーバ装置101に送信する。
S1006において、認可サーバ装置101のペアレントトークン発行部303は、認可トークン無効化要求を受信する。
S1007において、認可サーバ装置101のペアレントトークン発行部303は、認可トークン無効化要求に付与されたペアレントトークンの検証を行う。
ペアレントトークンが有効であると判定した場合、S1008において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークンの認可トークンIDリストから指定された認可トークンの認可トークンIDを削除した新たなペアレントトークンを発行する。そして、ペアレントトークン発行部303は、発行した新たなペアレントトークンをユーザ端末104に送信する。S1008の処理は、ユーザ端末104が保持する認可トークンとクライアント装置103が保持するペアレントトークンとの対応付けを解消することでクライアント装置103に対して委譲された権限を無効化する処理の一例である。
S1009において、ユーザ端末104のユーザエージェント309は、ペアレントトークンを受信する。ユーザエージェント309は、ペアレントトークン記憶部310を介して古いペアレントトークンをユーザ端末104の外部記憶装置等より削除し、新しいペアレントトークンを記憶する。
S1010において、ユーザ端末104のユーザエージェント309は、ペアレントトークン取得通知をクライアント装置103に送信する。
S1011において、クライアント装置103の要求処理部307は、ペアレントトークン取得通知を受信する。
S1012において、クライアント装置103の要求処理部307は、サービス終了要求の成功通知をユーザ端末104に送信する。
S1013において、ユーザ端末104のユーザエージェント309は、サービス終了要求の成功通知を受信する。
S1007において、認可サーバ装置101のペアレントトークン発行部303は、認可トークン無効化要求に付与されたペアレントトークンの検証を行う。
ペアレントトークンが有効であると判定した場合、S1008において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークンの認可トークンIDリストから指定された認可トークンの認可トークンIDを削除した新たなペアレントトークンを発行する。そして、ペアレントトークン発行部303は、発行した新たなペアレントトークンをユーザ端末104に送信する。S1008の処理は、ユーザ端末104が保持する認可トークンとクライアント装置103が保持するペアレントトークンとの対応付けを解消することでクライアント装置103に対して委譲された権限を無効化する処理の一例である。
S1009において、ユーザ端末104のユーザエージェント309は、ペアレントトークンを受信する。ユーザエージェント309は、ペアレントトークン記憶部310を介して古いペアレントトークンをユーザ端末104の外部記憶装置等より削除し、新しいペアレントトークンを記憶する。
S1010において、ユーザ端末104のユーザエージェント309は、ペアレントトークン取得通知をクライアント装置103に送信する。
S1011において、クライアント装置103の要求処理部307は、ペアレントトークン取得通知を受信する。
S1012において、クライアント装置103の要求処理部307は、サービス終了要求の成功通知をユーザ端末104に送信する。
S1013において、ユーザ端末104のユーザエージェント309は、サービス終了要求の成功通知を受信する。
このように、認可トークンの無効化処理では、ペアレントトークンの認可トークンIDリストから認可トークンIDを削除することで認可トークンの無効化を行う。
実施形態1に係る認可システムによれば、認可トークンの検証、無効化はクライアント装置103が持つ認可トークンとユーザ端末104が持つペアレントトークンとの情報を基に行うことができる。そのため、認可サーバ装置101で認可トークンの管理をする必要がない。したがって、認可サーバ装置101の負荷を軽減しながら、ユーザの意図しない認可トークンの使用を防止することでセキュリティの向上が期待できる。
<実施形態2>
実施形態1では、認可トークンの取得処理において、一つのユーザ端末104が一つのクライアント装置103に対して認可トークンの取得を許可する例を示した。本実施形態では、ユーザ端末104が第一のクライアント装置と紐づくペアレントトークンを既に保持している状態で、第二のクライアント装置に発行された認可トークンとペアレントトークンとを紐づける例を示す。
実施形態2に係る認可システムで行われる認可トークンの取得処理について、図11を用いて説明する。
システム構成、ハードウェア構成、機能構成等は、実施形態1と同じであるため詳細な説明は省略する。
実施形態1では、認可トークンの取得処理において、一つのユーザ端末104が一つのクライアント装置103に対して認可トークンの取得を許可する例を示した。本実施形態では、ユーザ端末104が第一のクライアント装置と紐づくペアレントトークンを既に保持している状態で、第二のクライアント装置に発行された認可トークンとペアレントトークンとを紐づける例を示す。
実施形態2に係る認可システムで行われる認可トークンの取得処理について、図11を用いて説明する。
システム構成、ハードウェア構成、機能構成等は、実施形態1と同じであるため詳細な説明は省略する。
S603において、クライアント装置103の要求処理部307は、認可サーバ装置101に認可トークン取得要求を送信する。認可トークン取得要求は、実際には、ユーザ端末104を経由して認可サーバ装置101に送信される。
S604において、認可サーバ装置101の認可トークン発行部302は、クライアント装置103から送信された認可トークン取得要求を受信する。
S605において、認可サーバ装置101の認可トークン発行部302は、認可トークンを発行するために許可を行うユーザが認証済みか否かを判定し、認証に成功すれば認可トークンを発行する。そして、認可トークン発行部302は、発行した認可トークンをクライアント装置103に送信する。ここで、認証及び認可は、OAuth 2.0のプロトコルを用いて実行することもできる。この場合、ユーザID/ユーザパスワード等の認証情報の授受の方法、認可トークンに含まれる内容は、OAuth 2.0等の仕様によって規定されることになる。
S606において、クライアント装置103の要求処理部307は、認可トークンを受信する。
S607において、クライアント装置103の要求処理部307は、認可トークン取得通知をユーザ端末104に送信する。要求処理部307は、認可トークン取得通知には認可トークンを付与する。
S608において、ユーザ端末104のユーザエージェント309は、認可トークン取得通知を受信する。
S609において、ユーザ端末104のユーザエージェント309は、認可トークン取得通知に付与されている認可トークン、及び、ペアレントトークン記憶部310を介してユーザ端末104の外部記憶装置等より取得したペアレントトークンをペアレントトークン取得要求に付与する。そして、ユーザエージェント309は、ペアレントトークン取得要求を認可サーバ装置101に送信する。
S604において、認可サーバ装置101の認可トークン発行部302は、クライアント装置103から送信された認可トークン取得要求を受信する。
S605において、認可サーバ装置101の認可トークン発行部302は、認可トークンを発行するために許可を行うユーザが認証済みか否かを判定し、認証に成功すれば認可トークンを発行する。そして、認可トークン発行部302は、発行した認可トークンをクライアント装置103に送信する。ここで、認証及び認可は、OAuth 2.0のプロトコルを用いて実行することもできる。この場合、ユーザID/ユーザパスワード等の認証情報の授受の方法、認可トークンに含まれる内容は、OAuth 2.0等の仕様によって規定されることになる。
S606において、クライアント装置103の要求処理部307は、認可トークンを受信する。
S607において、クライアント装置103の要求処理部307は、認可トークン取得通知をユーザ端末104に送信する。要求処理部307は、認可トークン取得通知には認可トークンを付与する。
S608において、ユーザ端末104のユーザエージェント309は、認可トークン取得通知を受信する。
S609において、ユーザ端末104のユーザエージェント309は、認可トークン取得通知に付与されている認可トークン、及び、ペアレントトークン記憶部310を介してユーザ端末104の外部記憶装置等より取得したペアレントトークンをペアレントトークン取得要求に付与する。そして、ユーザエージェント309は、ペアレントトークン取得要求を認可サーバ装置101に送信する。
S610において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークン取得要求を受信する。
S1101において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークン取得要求に付与されていた認可トークンの認可トークンIDを、ペアレントトークン取得要求に付与されていたペアレントトークンの認可トークンIDリストに追加する。
S611において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークンをユーザ端末104に送信する。このとき、ペアレントトークン発行部303は、ペアレントトークの有効期限を、付与されていた認可トークンの有効期限より長い期間にする。
S612において、ユーザ端末104のユーザエージェント309は、ペアレントトークンを受信する。
S613において、ユーザ端末104のユーザエージェント309は、ペアレントトークンをペアレントトークン記憶部310を介して記憶し、ペアレントトークン取得通知をクライアント装置103に送信する。
S614において、クライアント装置103の要求処理部307は、ペアレントトークン取得通知を受信すると、認可トークンが有効になったと判断し、認可トークン記憶部308を介して、認可トークンを記憶する。
S1101において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークン取得要求に付与されていた認可トークンの認可トークンIDを、ペアレントトークン取得要求に付与されていたペアレントトークンの認可トークンIDリストに追加する。
S611において、認可サーバ装置101のペアレントトークン発行部303は、ペアレントトークンをユーザ端末104に送信する。このとき、ペアレントトークン発行部303は、ペアレントトークの有効期限を、付与されていた認可トークンの有効期限より長い期間にする。
S612において、ユーザ端末104のユーザエージェント309は、ペアレントトークンを受信する。
S613において、ユーザ端末104のユーザエージェント309は、ペアレントトークンをペアレントトークン記憶部310を介して記憶し、ペアレントトークン取得通知をクライアント装置103に送信する。
S614において、クライアント装置103の要求処理部307は、ペアレントトークン取得通知を受信すると、認可トークンが有効になったと判断し、認可トークン記憶部308を介して、認可トークンを記憶する。
このように、本実施形態に係る認可トークンの生成処理では、第二のクライアント装置の認可トークン取得要求に対してペアレントトークンをユーザ端末104に発行する。ペアレントトークンは、第一のクライアント装置、第二のクライアント装置それぞれに発行された認可トークンの有効性情報を含む。そのため、ユーザ端末104は、ペアレントトークンを、ペアレントトークン記憶部310を介して削除することで第一クライアント装置、第二クライアント装置の認可を一度に取り消すシングルサインアウトを実現することができる。
認可トークンの検証、無効化処理については実施形態1と同様の手順で行われる。
認可トークンの検証、無効化処理については実施形態1と同様の手順で行われる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、上述した認可サーバ装置101のハードウェア構成は一例であり、CPU、RAM、ROM、ネットワークI/F、外部記憶装置等は複数有していてもよい。また、複数のCPUがプログラムに基づき、複数のRAM、ROM、外部記憶装置に記憶されたデータ等を用いながら処理を実行するようにしてもよい。また、CPUに替えてGPU(Graphics Processing Unit)を用いることとしてもよい。他の装置も同様である。
また、上述した実施形態はOAuth2.0のプロトコルに従った構成で記載しているが、これに限定されるものではない。
例えば、上述した認可サーバ装置101のハードウェア構成は一例であり、CPU、RAM、ROM、ネットワークI/F、外部記憶装置等は複数有していてもよい。また、複数のCPUがプログラムに基づき、複数のRAM、ROM、外部記憶装置に記憶されたデータ等を用いながら処理を実行するようにしてもよい。また、CPUに替えてGPU(Graphics Processing Unit)を用いることとしてもよい。他の装置も同様である。
また、上述した実施形態はOAuth2.0のプロトコルに従った構成で記載しているが、これに限定されるものではない。
以上、上述した各実施形態の処理によれば、認可サーバ装置101で認可トークンに関する情報を保持せずに認可トークンの明示的な無効ができるようになる。
そのため、認可サーバ装置101の負荷を軽減しながら、ユーザの意図しない認可トークンの使用を防止することでセキュリティを向上させることができる。
そのため、認可サーバ装置101の負荷を軽減しながら、ユーザの意図しない認可トークンの使用を防止することでセキュリティを向上させることができる。
101 認可サーバ装置
201 CPU
201 CPU
Claims (21)
- ユーザが保持する権限をクライアント装置に委譲する認可サーバ装置であって、
前記クライアント装置に対して委譲された権限を示す認可情報を生成して前記クライアント装置に送信し、前記認可情報の有効性を示す認可検証情報を生成して権限を持つユーザのユーザ端末に送信する生成手段と、
前記認可情報と前記認可検証情報とに基づき前記認可情報の検証を行い、検証結果を送信する検証手段と、
前記クライアント装置に対して委譲された権限を無効化する無効化手段と、
を有する認可サーバ装置。 - 前記生成手段は、前記認可情報に対し、前記認可情報と対応付けられた前記認可検証情報を生成する請求項1記載の認可サーバ装置。
- 前記生成手段は、前記認可情報に前記認可情報を識別する識別情報を付与し、前記認可情報と対応付けられた前記認可検証情報にも前記識別情報を付与する請求項1又は2記載の認可サーバ装置。
- 前記生成手段は、前記認可検証情報の有効期限として、前記認可情報の有効期限よりも長い期限を設定する請求項1乃至3何れか1項記載の認可サーバ装置。
- 前記検証手段は、前記ユーザ端末が保持する前記認可検証情報と、前記クライアント装置が保持する前記認可情報とに対応付けがない場合、前記認可情報は有効ではないとする請求項1乃至4何れか1項記載の認可サーバ装置。
- 前記検証手段は、前記ユーザ端末が保持する前記認可検証情報に前記クライアント装置が保持する前記認可情報の識別情報が含まれていない場合、前記認可検証情報と、前記認可情報とに対応付けがないとする請求項5記載の認可サーバ装置。
- 前記検証手段は、前記ユーザ端末が前記認可検証情報を保持していない場合、前記認可情報は有効ではないとする請求項1乃至4何れか1項記載の認可サーバ装置。
- 前記無効化手段は、前記ユーザ端末が保持する前記認可検証情報と前記クライアント装置が保持する前記認可情報との対応付けを解消することで前記クライアント装置に対して委譲された権限を無効化する請求項1乃至7何れか1項記載の認可サーバ装置。
- 前記無効化手段は、前記ユーザ端末が保持する前記認可検証情報から前記クライアント装置が保持する前記認可情報の識別情報を削除することで前記対応付けを解消する請求項8記載の認可サーバ装置。
- 前記ユーザ端末が既に第1のクライアント装置に対して委譲された権限を示す第1の認可情報の有効性を検証する第1の認可検証情報を保持している状態で、第2のクライアント装置に対する権限の委譲要求が受信された場合、前記生成手段は、前記第1の認可検証情報に追加して、前記第2のクライアント装置に対して委譲された権限を示す第2の認可情報の有効性を検証する第2の認可検証情報を保持する新たな認可検証情報を生成して前記ユーザ端末に送信する請求項1乃至9何れか1項記載の認可サーバ装置。
- 認可サーバ装置に権限の委譲を要求する第1の要求手段と、
前記認可サーバ装置から発行された認可情報を使用して、リソースを有する外部装置にリソース提供を要求する第2の要求手段と、
前記認可サーバ装置から発行された認可情報の無効化を要求する第3の要求手段と、
を有するクライアント装置。 - 前記認可サーバ装置から前記クライアント装置に対して委譲された権限を示す認可情報を受け取った際に、前記第1の要求手段は、ユーザ端末に認可情報取得通知を送信する請求項11記載のクライアント装置。
- 前記第2の要求手段は、ユーザ端末を経由して前記外部装置に前記リソース提供を要求する請求項11又は12記載のクライアント装置。
- 前記第3の要求手段は、ユーザ端末を経由して前記認可サーバ装置に前記認可情報の無効化を要求する請求項11乃至13何れか1項記載のクライアント装置。
- ユーザからクライアント装置に対して委譲された権限を示す認可情報の取得通知を前記クライアント装置から受け取った際に、認可サーバ装置に対して前記認可情報の有効性を示す認可検証情報を要求する第1の要求手段と、
リソースを有する外部装置に対するリソース提供要求を前記クライアント装置から受け取った際に、前記認可情報の検証を前記認可サーバ装置に要求する第2の要求手段と、
前記クライアント装置から認可情報の無効化の要求を受け取った際に、前記認可情報の無効化を前記認可サーバ装置に要求する第3の要求手段と
を有するユーザ端末。 - ユーザが保持する権限をクライアント装置に委譲する認可サーバ装置が実行する情報処理方法であって、
前記クライアント装置に対して委譲された権限を示す認可情報を生成して前記クライアント装置に送信し、前記認可情報の有効性を示す認可検証情報を生成して権限を持つユーザのユーザ端末に送信する生成工程と、
前記認可情報と前記認可検証情報とに基づき前記認可情報の検証を行い、検証結果を送信する検証工程と、
前記クライアント装置に対して委譲された権限を無効化する無効化工程と、
を含む情報処理方法。 - クライアント装置が実行する情報処理方法であって、
認可サーバ装置に権限の委譲を要求する第1の要求工程と、
前記認可サーバ装置から発行された認可情報を使用して、リソースを有する外部装置にリソース提供を要求する第2の要求工程と、
前記認可サーバ装置から発行された認可情報の無効化を要求する第3の要求工程と、
を含む情報処理方法。 - ユーザ端末が実行する情報処理方法であって、
ユーザからクライアント装置に対して委譲された権限を示す認可情報の取得通知を前記クライアント装置から受け取った際に、認可サーバ装置に対して前記認可情報の有効性を示す認可検証情報を要求する第1の要求工程と、
リソースを有する外部装置に対するリソース提供要求を前記クライアント装置から受け取った際に、前記認可情報の検証を前記認可サーバ装置に要求する第2の要求工程と、
前記クライアント装置から認可情報の無効化の要求を受け取った際に、前記認可情報の無効化を前記認可サーバ装置に要求する第3の要求工程と
を含む情報処理方法。 - コンピュータを、請求項1乃至10何れか1項記載の認可サーバ装置の各手段として機能させるためのプログラム。
- コンピュータを、請求項11乃至14何れか1項記載のクライアント装置の各手段として機能させるためのプログラム。
- コンピュータを、請求項15記載のユーザ端末の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018133881A JP2020014071A (ja) | 2018-07-17 | 2018-07-17 | 認可サーバ装置、クライアント装置、ユーザ端末、情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018133881A JP2020014071A (ja) | 2018-07-17 | 2018-07-17 | 認可サーバ装置、クライアント装置、ユーザ端末、情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020014071A true JP2020014071A (ja) | 2020-01-23 |
Family
ID=69169637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018133881A Pending JP2020014071A (ja) | 2018-07-17 | 2018-07-17 | 認可サーバ装置、クライアント装置、ユーザ端末、情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020014071A (ja) |
-
2018
- 2018-07-17 JP JP2018133881A patent/JP2020014071A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6727799B2 (ja) | 権限委譲システム、情報処理装置、認可サーバ、制御方法およびプログラム | |
JP6675163B2 (ja) | 権限委譲システム、認可サーバの制御方法、認可サーバおよびプログラム | |
CN110138718B (zh) | 信息处理系统及其控制方法 | |
JP6124687B2 (ja) | 画像形成装置、サーバー装置、情報処理方法及びプログラム | |
US9571494B2 (en) | Authorization server and client apparatus, server cooperative system, and token management method | |
JP6166596B2 (ja) | 認可サーバーシステムおよびその制御方法、並びにプログラム | |
JP6066647B2 (ja) | デバイス装置、その制御方法、およびそのプログラム | |
US9047456B2 (en) | System and method for controlling access to a resource | |
JP6061633B2 (ja) | デバイス装置、制御方法、およびそのプログラム。 | |
JP6815744B2 (ja) | サーバ装置、システム、情報処理方法及びプログラム | |
KR20170067660A (ko) | 인가 서버, 인증 제휴 시스템 및 프로그램을 저장한 저장 매체 | |
JP7096736B2 (ja) | システム、及びデータ処理方法 | |
JP2014203267A (ja) | システムおよびその制御方法、アクセス管理サービスシステムおよびその制御方法、並びにプログラム | |
JP2009071435A (ja) | アカウント管理システム、基底アカウント管理装置、派生アカウント管理装置及びプログラム | |
JP2008257492A (ja) | 認証処理プログラム、情報処理プログラム、認証処理装置、認証処理システムおよび情報処理システム | |
JP7196241B2 (ja) | 情報処理装置、制御方法、およびプログラム | |
JP2015133034A (ja) | 情報処理システム及び認証方法 | |
JP2017120502A (ja) | クラウドサービスへのIoT機器の登録方法 | |
JP2021060924A (ja) | 情報処理装置、情報処理システム及びプログラム | |
JP2020014071A (ja) | 認可サーバ装置、クライアント装置、ユーザ端末、情報処理方法及びプログラム | |
JP5145856B2 (ja) | 電子情報管理システム、電子情報管理装置及び電子情報管理プログラム | |
JP2014142732A (ja) | 権限委譲システム | |
JP2020053100A (ja) | 情報処理システムと、その制御方法とプログラム | |
JP2016206971A (ja) | 連携システム、連携システムの制御方法、及びプログラム | |
JP5027097B2 (ja) | エージェントアクセス管理システム |