(57)【要約】【課題】認可サーバ装置の負荷を軽減しながら、ユーザの意図しない認可トークンの使用を防止することでセキュリティを向上させることを目的とする。【解決手段】ユーザが保持する権限をクライアント装置に委譲する認可サーバ装置であって、クライアント装置に対して委譲された権限を示す認可情報を生成してクライアント装置に送信し、認可情報の有効性を示す認可検証情報を生成して権限を持つユーザのユーザ端末に送信する生成手段と、認可情報と認可検証情報とに基づき認可情報の検証を行い、検証結果を送信する検証手段と、クライアント装置に対して委譲された権限を無効化する無効化手段と、を有する。【選択図】図３
2020014071.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが保持する権限をクライアント装置に委譲する認可サーバ装置であって、
前記クライアント装置に対して委譲された権限を示す認可情報を生成して前記クライアント装置に送信し、前記認可情報の有効性を示す認可検証情報を生成して権限を持つユーザのユーザ端末に送信する生成手段と、
前記認可情報と前記認可検証情報とに基づき前記認可情報の検証を行い、検証結果を送信する検証手段と、
前記クライアント装置に対して委譲された権限を無効化する無効化手段と、
を有する認可サーバ装置。
【請求項２】
前記生成手段は、前記認可情報に対し、前記認可情報と対応付けられた前記認可検証情報を生成する請求項１記載の認可サーバ装置。
【請求項３】
前記生成手段は、前記認可情報に前記認可情報を識別する識別情報を付与し、前記認可情報と対応付けられた前記認可検証情報にも前記識別情報を付与する請求項１又は２記載の認可サーバ装置。
【請求項４】
前記生成手段は、前記認可検証情報の有効期限として、前記認可情報の有効期限よりも長い期限を設定する請求項１乃至３何れか１項記載の認可サーバ装置。
【請求項５】
前記検証手段は、前記ユーザ端末が保持する前記認可検証情報と、前記クライアント装置が保持する前記認可情報とに対応付けがない場合、前記認可情報は有効ではないとする請求項１乃至４何れか１項記載の認可サーバ装置。
【請求項６】
前記検証手段は、前記ユーザ端末が保持する前記認可検証情報に前記クライアント装置が保持する前記認可情報の識別情報が含まれていない場合、前記認可検証情報と、前記認可情報とに対応付けがないとする請求項５記載の認可サーバ装置。
【請求項７】
前記検証手段は、前記ユーザ端末が前記認可検証情報を保持していない場合、前記認可情報は有効ではないとする請求項１乃至４何れか１項記載の認可サーバ装置。
【請求項８】
前記無効化手段は、前記ユーザ端末が保持する前記認可検証情報と前記クライアント装置が保持する前記認可情報との対応付けを解消することで前記クライアント装置に対して委譲された権限を無効化する請求項１乃至７何れか１項記載の認可サーバ装置。
【請求項９】
前記無効化手段は、前記ユーザ端末が保持する前記認可検証情報から前記クライアント装置が保持する前記認可情報の識別情報を削除することで前記対応付けを解消する請求項８記載の認可サーバ装置。
【請求項１０】
前記ユーザ端末が既に第１のクライアント装置に対して委譲された権限を示す第１の認可情報の有効性を検証する第１の認可検証情報を保持している状態で、第２のクライアント装置に対する権限の委譲要求が受信された場合、前記生成手段は、前記第１の認可検証情報に追加して、前記第２のクライアント装置に対して委譲された権限を示す第２の認可情報の有効性を検証する第２の認可検証情報を保持する新たな認可検証情報を生成して前記ユーザ端末に送信する請求項１乃至９何れか１項記載の認可サーバ装置。
【請求項１１】
認可サーバ装置に権限の委譲を要求する第１の要求手段と、
前記認可サーバ装置から発行された認可情報を使用して、リソースを有する外部装置にリソース提供を要求する第２の要求手段と、
前記認可サーバ装置から発行された認可情報の無効化を要求する第３の要求手段と、
を有するクライアント装置。
【請求項１２】
前記認可サーバ装置から前記クライアント装置に対して委譲された権限を示す認可情報を受け取った際に、前記第１の要求手段は、ユーザ端末に認可情報取得通知を送信する請求項１１記載のクライアント装置。
【請求項１３】
前記第２の要求手段は、ユーザ端末を経由して前記外部装置に前記リソース提供を要求する請求項１１又は１２記載のクライアント装置。
【請求項１４】
前記第３の要求手段は、ユーザ端末を経由して前記認可サーバ装置に前記認可情報の無効化を要求する請求項１１乃至１３何れか１項記載のクライアント装置。
【請求項１５】
ユーザからクライアント装置に対して委譲された権限を示す認可情報の取得通知を前記クライアント装置から受け取った際に、認可サーバ装置に対して前記認可情報の有効性を示す認可検証情報を要求する第１の要求手段と、
リソースを有する外部装置に対するリソース提供要求を前記クライアント装置から受け取った際に、前記認可情報の検証を前記認可サーバ装置に要求する第２の要求手段と、
前記クライアント装置から認可情報の無効化の要求を受け取った際に、前記認可情報の無効化を前記認可サーバ装置に要求する第３の要求手段と
を有するユーザ端末。
【請求項１６】
ユーザが保持する権限をクライアント装置に委譲する認可サーバ装置が実行する情報処理方法であって、
前記クライアント装置に対して委譲された権限を示す認可情報を生成して前記クライアント装置に送信し、前記認可情報の有効性を示す認可検証情報を生成して権限を持つユーザのユーザ端末に送信する生成工程と、
前記認可情報と前記認可検証情報とに基づき前記認可情報の検証を行い、検証結果を送信する検証工程と、
前記クライアント装置に対して委譲された権限を無効化する無効化工程と、
を含む情報処理方法。
【請求項１７】
クライアント装置が実行する情報処理方法であって、
認可サーバ装置に権限の委譲を要求する第１の要求工程と、
前記認可サーバ装置から発行された認可情報を使用して、リソースを有する外部装置にリソース提供を要求する第２の要求工程と、
前記認可サーバ装置から発行された認可情報の無効化を要求する第３の要求工程と、
を含む情報処理方法。
【請求項１８】
ユーザ端末が実行する情報処理方法であって、
ユーザからクライアント装置に対して委譲された権限を示す認可情報の取得通知を前記クライアント装置から受け取った際に、認可サーバ装置に対して前記認可情報の有効性を示す認可検証情報を要求する第１の要求工程と、
リソースを有する外部装置に対するリソース提供要求を前記クライアント装置から受け取った際に、前記認可情報の検証を前記認可サーバ装置に要求する第２の要求工程と、
前記クライアント装置から認可情報の無効化の要求を受け取った際に、前記認可情報の無効化を前記認可サーバ装置に要求する第３の要求工程と
を含む情報処理方法。
【請求項１９】
コンピュータを、請求項１乃至１０何れか１項記載の認可サーバ装置の各手段として機能させるためのプログラム。
【請求項２０】
コンピュータを、請求項１１乃至１４何れか１項記載のクライアント装置の各手段として機能させるためのプログラム。
【請求項２１】
コンピュータを、請求項１５記載のユーザ端末の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認可サーバ装置、クライアント装置、ユーザ端末、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、サーバ装置が提供する様々な機能を、ユーザが使用するユーザ端末からネットワーク経由で利用可能にするサービスが広く展開されている。このようなサービスでは、多くの場合、サービスが保有するリソースへのアクセスをユーザ端末から要求された際に、ユーザＩＤ及びパスワード等の認証情報を用いてユーザを認証することを要求する。ユーザはユーザ端末に認証情報を入力し、認証が成功するとサービスから認証トークンが発行される。ユーザ端末は発行された認証トークンを付加して、サービスに処理の実行を要求する。サービスは、認証トークンの示すユーザが有する権限の範囲内で処理の実行を許可する。
また、認証されたユーザが、自身が有する権限をクライアント装置に委譲することで、クライアント装置が権限を獲得して処理を実行するようなことも行われている。ここで、クライアント装置とは、サービスが保有するリソースを使用するアプリケーションが動作するサーバ装置やモバイル端末等である。クライアント装置は、権限を委譲される対象としてサービスに登録される。権限を委譲する方法として、例えば、ＯＡｕｔｈ２．０（非特許文献１）等が広く用いられている。この方法においては、認証されたユーザに、クライアント装置に対して指定された権限を許可するか否かの判定を依頼する許可画面がユーザ端末を通して提示される。ユーザが許可を選択すると、クライアント装置にリソースにアクセスするための権限を示す認可トークンが発行される。そのため、ユーザは自分自身の認証情報をクライアント装置に入力することなく、リソースにアクセスするための権限を委譲することができる。
【０００３】
認可トークンについて、クライアント装置に委譲する権限情報を暗号化してトークンに用いることで、データサーバでのトークン情報の管理を不要にすることでサーバの負荷を軽減する技術が存在する（非特許文献２）。しかし、暗号化した認可情報をトークンに用いる手法では、いったん発行されたトークンを明示的に無効化できない。そのため、一度発行した認可トークンは発行時に定めた有効期限が過ぎるまで無効化できず、ユーザがサービスの利用を終了したい、又はユーザがパスワードの変更等を行って、発行されたトークンをいったん無効にしたいといった場合に対処できない。
このような問題を解決する手段として、ユーザ端末にユーザの状態管理のためのデータを保持させる方法が公開されている。
特許文献１では、ユーザ端末にユーザの認証情報と共に「妥当性検証情報」をブラウザのクッキーとして格納させる。妥当性検証情報にはユーザのログイン／ログアウト状態が書き込まれる。ブラウザからリソースへのアクセス要求があれば認証情報が有効で妥当性検証情報がログイン状態の場合のみリソースを提供する。これにより、ユーザのサービス使用後に第三者によってユーザの認証情報が使用されることを防ぐことができる。
また、特許文献２では、認証情報とは別にブラウザのクッキーにユーザのログイン/ログアウト情報を保持する。これにより、特許文献１と同様に第三者によるユーザの認証情報の使用を防止するほか、1つのブラウザで複数のユーザのログイン/ログアウト情報をクッキーに記憶することで、ログインユーザの切り替えを可能とする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−５６３８号公報
【特許文献２】特開２００６−１３９６１３号公報
【非特許文献】
【０００５】
【非特許文献１】Ｔｈｅ  ＯＡｕｔｈ  ２．０  Ａｕｔｈｏｒｉｚａｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ（ｈｔｔｐｓ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ６７４９）
【非特許文献２】ＪＳＯＮ  Ｗｅｂ  Ｔｏｋｅｎ  （ＪＷＴ）  Ｐｒｏｆｉｌｅ  ｆｏｒ  ＯＡｕｔｈ  ２．０  Ｃｌｉｅｎｔ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ ａｎｄ Ａｕｔｈｏｒｉｚａｔｉｏｎ Ｇｒａｎｔｓ（ｈｔｔｐｓ：//ｔｏｏｌｓ.ｉｅｔｆ.ｏｒｇ/ｈｔｍｌ/ｒｆｃ７５２３）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１及び２の方法では、ユーザの認証情報を扱うため、認証情報と妥当性検証情報とをどちらもユーザ側で保持する。そのため、ＯＡｕｔｈ２．０のようなクライアント装置への権限委譲という目的では扱えない。
【課題を解決するための手段】
【０００７】
本発明は、ユーザが保持する権限をクライアント装置に委譲する認可サーバ装置であって、前記クライアント装置に対して委譲された権限を示す認可情報を生成して前記クライアント装置に送信し、前記認可情報の有効性を示す認可検証情報を生成して権限を持つユーザのユーザ端末に送信する生成手段と、前記認可情報と前記認可検証情報とに基づき前記認可情報の検証を行い、検証結果を送信する検証手段と、前記クライアント装置に対して委譲された権限を無効化する無効化手段と、を有する。
【発明の効果】
【０００８】
本発明によれば、認可サーバ装置の負荷を軽減しながら、ユーザの意図しない認可トークンの使用を防止することでセキュリティを向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】認可システムのシステム構成の一例を示す図である。
【図２】認可サーバ装置のハードウェア構成の一例を示す図である。
【図３】認可システムを構成する各装置の機能構成の一例を示す図である。
【図４】クライアント情報の一例を示す図である。
【図５】認可トークン及びペアレントトークンの一例を示す図である。
【図６】認可システムの情報処理の一例を示すフローチャートである。
【図７】実施形態１の認可トークンの取得処理の一例を示すフローチャートである。
【図８】認可トークンの検証処理の一例を示すフローチャートである。
【図９】認可トークンの検証処理の詳細の一例を示すフローチャートである。
【図１０】認可トークンの無効化処理の一例を示すフローチャートである。
【図１１】実施形態２の認可トークンの取得処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面に基づいて説明する。
【００１１】
＜実施形態１＞
図１は、認可システムのシステム構成の一例を示す図である。
認可システムは、認可サーバ装置１０１、リソースサーバ装置１０２、クライアント装置１０３、ユーザ端末１０４を含む。認可サーバ装置１０１、リソースサーバ装置１０２、クライアント装置１０３、ユーザ端末１０４は、ネットワーク１０５を介して互いに通信が可能である。ネットワーク１０５は、ＬＡＮ等の同一のネットワークとして接続されていてもよいし、インターネット等の外部ネットワークとして接続されていてもよいし、それらの混合であってもよい。認可サーバ装置１０１とリソースサーバ装置１０２とは一つの装置で構成されてもよい。また、認可サーバ装置１０１、リソースサーバ装置１０２、クライアント装置１０３は、それぞれ複数の台数、認可システムに含まれていてもよい。
【００１２】
認可サーバ装置１０１は、リソースサーバ装置１０２が保有するリソースにユーザ及びクライアント装置１０３の何れか又は双方がアクセスするための権限を管理する。認可サーバ装置１０１は、リソースサーバ装置１０２にリソースを保有するユーザのユーザ情報を保有している。また、認可サーバ装置１０１は、リソースサーバ装置１０２が保有しているリソースにアクセスするクライアント装置１０３のクライアント情報を保有している。更に、認可サーバ装置１０１は、クライアント装置１０３からの要求に応じてクライアント装置１０３に対して認可トークン、ユーザ端末１０４に対してペアレントトークンをそれぞれ発行したり、リソースサーバ装置１０２からの要求に応じて認可トークンの有効性を検証したりする。ここで、認可トークンとは、認証されたユーザに対して与えられる権限情報、又は認証されたユーザがクライアント装置１０３に対して委譲した権限を示す認可情報が記述されたデータのことである。認可トークンは、例えば、ＯＡｕｔｈ２．０におけるアクセストークンである。ここで、ペアレントトークンとは、認可トークンの有効性を示す認可検証情報が記述されたデータのことである。クライアント装置１０３は、リソースサーバ装置１０２にリソースへのアクセスを要求する際に、まず認可サーバ装置１０１に対して認可トークン取得を要求する。認可サーバ装置１０１は、クライアント装置１０３に対して認可トークン、ユーザ端末１０４に対してペアレントトークンをそれぞれ発行する。クライアント装置１０３は、ユーザ端末１０４を経由して、リソースサーバ装置１０２に対して認可トークンと共にリソースアクセス要求を送信する。ユーザ端末１０４は、クライアント装置１０３からリソースアクセス要求を受信したら、ペアレントトークンと共にリソースアクセス要求をリソースサーバ装置１０２に送信する。リソースサーバ装置１０２は、受信した認可トークン、ペアレントトークンの有効性を検証し、要求の可否を決定する。
【００１３】
リソースサーバ装置１０２は、ユーザのリソースを保有する。ここで、リソースとは、Ｗｅｂでアクセス可能なあらゆるデータ及び処理の何れか又は双方のことである。データとしては、ユーザのパーソナルデータ、画像データ、文書データ等、様々なものがある。また、リソースサーバ装置１０２は、クライアント装置１０３からのリソースアクセス要求に応じてリソースを提供する。
クライアント装置１０３は、ユーザ端末１０４からの処理要求に応じて、各種処理を行うアプリケーションが動作するサーバ、又はモバイル端末等である。クライアント装置１０３は、権限委譲の対象として認可サーバ装置１０１に登録される。クライアント装置１０３は、処理を実行する際には、リソースサーバ装置１０２に処理に必要なリソースへのアクセスを要求する。また、クライアント装置１０３は、リソースサーバ装置１０２にリソースへのアクセスを要求するために、認可サーバ装置１０１に認可トークンの取得を要求する。
ユーザ端末１０４は、ユーザが操作する端末であり、パーソナルコンピュータ、又はモバイル端末等である。
【００１４】
図２は、認可サーバ装置１０１のハードウェア構成の一例を示す図である。リソースサーバ装置１０２、クライアント装置１０３、ユーザ端末１０４のハードウェア構成も図２の認可サーバ装置１０１のハードウェア構成と同様の構成である。
認可サーバ装置１０１は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、ネットワークインタフェース２０４、外部記憶装置２０５、表示装置２０６、入力装置２０７を少なくとも備えている。
ＣＰＵ２０１は、認可サーバ装置１０１を構成する各部の動作制御を行うと共に、認可サーバ装置１０１が行うものとして後述する各種の処理を実行する主体となる。
ＲＡＭ２０２は、データや制御情報を一時的に格納するメモリであり、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアとなる。
ＲＯＭ２０３には、認可サーバ装置１０１の固定の動作パラメータやプログラム等が格納される。
ネットワークインタフェース２０４は、ネットワーク１０５に接続して通信するための機能を提供するものである。認可サーバ装置１０１は、このネットワークインタフェース２０４によって、外部装置とデータの送受信を行うことができる。
外部記憶装置２０５は、データを記憶する装置であり、データの読み書きを行うためのＩ／Ｏコマンドを受け付けるインタフェースを持つ。外部記憶装置２０５は、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、光ディスクドライブ、半導体記憶装置又はその他の記憶装置であってもよい。外部記憶装置２０５は、認可サーバ装置１０１が行うものとして後述する各処理をＣＰＵ２０１に実行させるためのプログラムやデータが格納されている。
表示装置２０６は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等であり、ユーザに必要な情報を表示する。
入力装置２０７は、例えば、キーボードやマウス、タッチパネル等であり、ユーザから必要な入力を受け付ける。
ＣＰＵ２０１がＲＯＭ２０３又は外部記憶装置２０５に記憶されているプログラムに基づき処理を実行することにより後述する図３に示す認可サーバ装置１０１の機能構成及び図６〜図１１のフローチャートの認可サーバ装置１０１の処理が実現される。同様に、各装置のＣＰＵが各装置のＲＯＭ又は外部記憶装置に記憶されているプログラムに基づき処理を実行することにより後述する図３に示す各装置の機能構成及び図６〜図１１のフローチャートの各装置の処理が実現される。
【００１５】
図３は、認可システムを構成する各装置の機能構成の一例を示す図である。
認可サーバ装置１０１は、クライアント情報格納部３０１、認可トークン発行部３０２、ペアレントトークン発行部３０３、認可トークン検証部３０４を含む。
クライアント情報格納部３０１が認可サーバ装置１０１の外部記憶装置２０５に格納したクライアント情報の一例を図４に示す。認可サーバ装置１０１の外部記憶装置２０５には、クライアントＩＤ４０１に関連付けて、パスワード４０２、権限スコープ４０３が格納されている。クライアントＩＤ４０１は、クライアント装置１０３を一意に識別するためのＩＤである。パスワード４０２は、クライアント装置１０３を認証するための文字列である。ここでは、クライアント装置１０３を認証するための情報としてパスワードが用いられているが、他の認証情報が用いられていてもよい。権限スコープ４０３は、クライアント装置１０３が有する権限の適用範囲を表している。
認可トークン発行部３０２は、クライアント装置１０３から認可トークン発行要求を受信した際に、認可トークンの発行を行う。この際、認可トークン発行部３０２は、クライアント情報格納部３０１が格納したクライアント情報に基づいて権限委譲の対象となるクライアント装置１０３の有効性を検証する。
認可トークン発行部３０２が発行する認可トークンの一例を図５（ａ）に示す。認可トークンは、認可トークンＩＤ５０１に関連付けて、クライアントＩＤ５０２、権限スコープ５０３、認可トークン有効期限５０４を含む。認可トークンＩＤ５０１は、認可トークンを一意に識別するためのランダムな文字列である。クライアントＩＤ５０２は、権限が委譲された、即ち認可トークンが発行されたクライアント装置１０３を表している。権限スコープ５０３は、認可トークンが有する権限の適用範囲を表している。認可トークン有効期限５０４は、認可トークンの有効期限であり、期限を過ぎた認可トークンは無効となる。認可トークン自体はＪＷＴ（ＪＳＯＮ  Ｗｅｂ  Ｔｏｋｅｎ）形式の文字列であってもよい。認可トークンＩＤは、認可情報を識別する識別情報の一例である。
【００１６】
ペアレントトークン発行部３０３は、認可トークン発行部３０２が認可トークンを発行した際に、認可トークン発行部３０２が発行した認可トークンの有効性情報を含むペアレントトークンの発行を行う。また、ペアレントトークン発行部３０３は、クライアント装置１０３から認可トークン無効化要求を受信した際に、対象の認可トークンの有効性情報を削除したペアレントトークンを発行する。
ペアレントトークン発行部３０３が発行するペアレントトークンの一例を図５（ｂ）に示す。ペアレントトークンは、認可トークンＩＤリスト５０５、ペアレントトークン有効期限５０６を含む。認可トークンＩＤリスト５０５は、ペアレントトークンと紐づく認可トークンの一覧を表している。認可トークン自体はＪＷＴ（ＪＳＯＮ Ｗｅｂ Ｔｏｋｅｎ）形式の文字列であってもよい。認可トークン検証部３０４で認可トークンの検証を行う際、ペアレントトークンの認可トークンＩＤリスト５０５に、検証対象である認可トークンの認可トークンＩＤ５０１が含まれていない場合、検証は失敗する。ペアレントトークン有効期限５０６は、ペアレントトークンの有効期限であり、期限を過ぎたペアレントトークンは無効となる。
認可トークン検証部３０４は、クライアント装置１０３から認可トークン検証要求を受信した際に、認可トークン検証要求と共に送られた認可トークン、ペアレントトークンに基づいて認可トークンの正当性を検証する。
【００１７】
リソースサーバ装置１０２は、リソース提供部３０５、リソース格納部３０６を含む。
リソース提供部３０５は、クライアント装置１０３からリソース取得要求を受信した際に、リソース格納部３０６が格納したリソースを提供する。このとき、リソース提供部３０５は、リソース取得要求に付加されている認可トークンが、リソースに対する権限を保有しているか否かを、認可サーバ装置１０１の認可トークン検証部３０４に問い合わせて検証する。
リソース格納部３０６は、ユーザが保有するリソースをリソースサーバ装置１０２の外部記憶装置２０５等に格納する。
クライアント装置１０３は、要求処理部３０７、認可トークン記憶部３０８を含む。
要求処理部３０７は、ユーザ端末からの処理要求に応じて、リソースサーバ装置１０２にリソース提供要求を送信して、処理に必要なリソースを取得する。要求処理部３０７は、リソース提供要求に、認可トークン記憶部３０８が記憶した認可トークンを付与する。
認可トークン記憶部３０８は、認可サーバ装置１０１の認可トークン発行部３０２から発行された認可トークンをクライアント装置１０３の外部記憶装置２０５等に記憶する。
ユーザ端末１０４は、ユーザエージェント３０９、ペアレントトークン記憶部３１０を含む。
ユーザエージェント３０９は、Ｗｅｂブラウザ等、ユーザがＷｅｂサイトにアクセスするための機能を提供する。また、ユーザエージェント３０９は、クライアント装置からリソースサーバ装置へのリソース要求がユーザ端末を経由して送信された際に、リソース要求にペアレントトークン記憶部３１０が記憶したペアレントトークンを付与する。
ペアレントトークン記憶部３１０は、認可サーバ装置１０１のペアレントトークン発行部３０３から発行されたペアレントトークンをユーザ端末１０４の外部記憶装置２０５等に記憶する。
【００１８】
次に、認可システムの動作について説明し、併せて、認可方法について説明する。
図６は、認可システムの情報処理の一例を示すフローチャートである。本実施形態では、クライアント装置１０３としてウェブアプリケーションを提供するサーバを想定して記載するが、クライアント装置１０３はモバイル端末のアプリケーション等、他の形態であってもよい。
まず、ユーザがユーザ端末１０４を使ってクライアント装置１０３に処理を要求する操作を行うと、Ｓ６０１において、ユーザ端末１０４のユーザエージェント３０９は、クライアント装置１０３に処理要求を送信する。
Ｓ６０２において、クライアント装置１０３の要求処理部３０７は、処理要求を受信する。
処理の実行にリソースサーバ装置１０２が保有するリソースが必要な場合には、Ｓ６０３において、クライアント装置１０３の要求処理部３０７は、認可サーバ装置１０１に認可トークン取得要求を送信する。
Ｓ６０４において、認可サーバ装置１０１の認可トークン発行部３０２は、認可トークン取得要求を受信する。認可トークン取得要求は、クライアント装置に対する権限の委譲要求の一例である。
Ｓ６０５において、認可トークン発行部３０２は、認可トークンを発行する。そして、認可トークン発行部３０２は、発行した認可トークンをクライアント装置１０３に送信する。
Ｓ６０６において、クライアント装置１０３の要求処理部３０７は、認可トークンを受信する。
Ｓ６０７において、クライアント装置１０３の要求処理部３０７は、認可トークン取得通知をユーザ端末１０４に送信する。
【００１９】
Ｓ６０８において、ユーザ端末１０４のユーザエージェント３０９は、認可トークン取得通知を受信する。認可トークン取得通知は、認可情報取得通知の一例である。
Ｓ６０９において、ユーザ端末１０４のユーザエージェント３０９は、認可トークン取得通知に含まれる認可トークンを付与して、認可サーバ装置１０１にペアレントトークン取得要求を送信する。
Ｓ６１０において、認可サーバ装置１０１のペアレントトークン発行部３０３は、ペアレントトークン取得要求を受信する。
Ｓ６１１において、認可サーバ装置１０１のペアレントトークン発行部３０３は、ペアレントトークンを発行する。そして、ペアレントトークン発行部３０３は、ペアレントトークンをユーザ端末１０４に送信する。
Ｓ６１２において、ユーザ端末１０４のユーザエージェント３０９は、ペアレントトークンを受信する。ユーザ端末１０４のペアレントトークン記憶部３１０は、ペアレントトークンを記憶する。
Ｓ６１３において、ユーザ端末１０４のユーザエージェント３０９は、ペアレントトークン取得通知をクライアント装置１０３に送信する。
Ｓ６１４において、クライアント装置１０３の要求処理部３０７は、ペアレントトークン取得通知を受信する。
【００２０】
Ｓ６１５において、クライアント装置１０３の要求処理部３０７は、リソースサーバ装置１０２に対するリソース取得要求に認可トークンを付与してユーザ端末１０４に送信する。
Ｓ６１６において、ユーザ端末１０４のユーザエージェント３０９は、リソース取得要求を受信する。
Ｓ６１７において、ユーザ端末１０４のユーザエージェント３０９は、リソース取得要求に含まれる認可トークンの認可トークンＩＤを認可トークンＩＤリストに含むペアレントトークンを、ペアレントトークン記憶部３１０を介して取得する。そして、ユーザエージェント３０９は、取得したペアレントトークンをリソース取得要求に付与して、リソースサーバ装置１０２に送信する。
Ｓ６１８において、リソースサーバ装置１０２のリソース提供部３０５は、リソース取得要求を受信する。
Ｓ６１９において、リソースサーバ装置１０２のリソース提供部３０５は、リソース取得要求に含まれる、認可トークンとペアレントトークンとを含む認可トークン検証要求を認可サーバ装置１０１に送信する。
Ｓ６２０において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークン検証要求を受信する。
Ｓ６２１において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークン検証要求に含まれる認可トークンとペアレントトークンとに基づき、認可トークンが有効か否かの検証を行う。Ｓ６２１の処理の詳細は、後述する図９に示す。
Ｓ６２２において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークンが有効か否かの検証結果をリソースサーバ装置１０２に送信する。
【００２１】
Ｓ６２３において、リソースサーバ装置１０２のリソース提供部３０５は、認可トークンの検証結果を受信する。
Ｓ６２４において、リソースサーバ装置１０２のリソース提供部３０５は、認可トークンの検証結果が、認可トークンが有効であることを示していた場合、リソース格納部３０６を介してリソースを取得し、クライアント装置１０３にリソースを送信する。
Ｓ６２５において、クライアント装置１０３の要求処理部３０７は、リソースを受信する。
Ｓ６２６において、クライアント装置１０３の要求処理部３０７は、受信したリソースを使用して処理要求に対応した処理を実行する。そして、要求処理部３０７は、処理結果をユーザ端末１０４に送信する。
Ｓ６２７において、ユーザ端末１０４のユーザエージェント３０９は、処理結果を受信し、ユーザに表示する。
【００２２】
次に、実施形態１に係る認可システムで行われる認可トークンの取得処理について、図７を用いて説明する。
Ｓ６０３において、クライアント装置１０３の要求処理部３０７は、認可サーバ装置１０１に認可トークン取得要求を送信する。実際には、クライアント装置１０３から送信された要求はユーザ端末１０４を経由して認可サーバ装置１０１に送信される。
Ｓ６０４において、認可サーバ装置１０１の認可トークン発行部３０２は、認可トークン取得要求を受信する。
Ｓ６０５において、認可トークン発行部３０２は、認可トークンを発行するために許可を行うユーザが認証済みか否かを判定する。認可トークン発行部３０２は、認証に成功すれば認可トークンを生成し、クライアント装置１０３に送信する。認可トークン発行部３０２は、認証及び認可を、ＯＡｕｔｈ ２．０のプロトコルを用いて実行することができる。この場合、ユーザＩＤ／ユーザパスワード等の認証情報の授受の方法、認可トークンに含まれる内容は、ＯＡｕｔｈ ２．０等の仕様によって規定されることになる。
Ｓ６０６において、クライアント装置１０３の要求処理部３０７は、認可トークンを受信する。
Ｓ６０７において、クライアント装置１０３の要求処理部３０７は、認可トークン取得通知をユーザ端末１０４に送信する。
【００２３】
Ｓ６０８において、ユーザ端末１０４のユーザエージェント３０９は、認可トークン取得通知を受信する。
Ｓ６０９において、ユーザ端末１０４のユーザエージェント３０９は、認可トークン取得通知に含まれる認可トークンを付与して、認可サーバ装置１０１にペアレントトークン取得要求を送信する。
Ｓ６１０において、認可サーバ装置１０１のペアレントトークン発行部３０３は、ペアレントトークン取得要求を受信する。
Ｓ６１１において、認可サーバ装置１０１のペアレントトークン発行部３０３は、ペアレントトークン取得要求に付与されていた認可トークンの認可トークンＩＤを認可トークンＩＤリストに含むペアレントトークンを生成し、ユーザ端末１０４に送信する。ペアレントトークン発行部３０３は、ペアレントトークの有効期限を、付与されていた認可トークンの有効期限より長い期間に設定する。Ｓ６１１の処理は、認可トークンに対し、認可トークンと対応付けられたペアレントトークを生成する処理の一例である。
Ｓ６１２において、ユーザ端末１０４のユーザエージェント３０９は、ペアレントトークンを受信する。ユーザ端末１０４のペアレントトークン記憶部３１０は、ペアレントトークンを記憶する。
Ｓ６１３において、ユーザ端末１０４のユーザエージェント３０９は、ペアレントトークン取得通知をクライアント装置１０３に送信する。
Ｓ６１４において、クライアント装置１０３の要求処理部３０７は、ペアレントトークン取得通知を受信すると、認可トークンが有効になったと判断し、認可トークン記憶部３０８を介して、認可トークンを記憶する。
【００２４】
このように、認可トークンの生成処理では、クライアント装置１０３の認可トークン取得要求に対して、認可トークンとペアレントトークンとを生成し、認可トークンはクライアント装置１０３、ペアレントトークンはユーザ端末１０４にそれぞれ保管させる。
【００２５】
次に、認可システムが行う認可トークンの検証処理について、図８のフローチャートを用いて説明する。
Ｓ６１５において、クライアント装置１０３の要求処理部３０７は、リソースサーバ装置１０２に対するリソース取得要求に認可トークンを付与してユーザ端末１０４に送信する。
Ｓ６１６において、ユーザ端末１０４のユーザエージェント３０９は、リソース取得要求を受信する。
Ｓ６１７において、ユーザ端末１０４のユーザエージェント３０９は、リソース取得要求に含まれる認可トークンの認可トークンＩＤを認可トークンＩＤリストに含むペアレントトークンを、ペアレントトークン記憶部３１０を介して取得する。そして、ユーザエージェント３０９は、取得したペアレントトークンをリソース取得要求に付与して、リソースサーバ装置１０２に送信する。
Ｓ６１８において、リソースサーバ装置１０２のリソース提供部３０５は、リソース取得要求を受信する。
Ｓ６１９において、リソースサーバ装置１０２のリソース提供部３０５は、リソース取得要求に含まれる、認可トークンとペアレントトークンとを含む認可トークン検証要求を認可サーバ装置１０１に送信する。
【００２６】
Ｓ６２０において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークン検証要求を受信する。
Ｓ６２１において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークン検証要求に含まれる認可トークンとペアレントトークンとに基づき、認可トークンが有効か否かの検証を行う。Ｓ６２１の処理の詳細は、後述する図９に示す。
Ｓ６２２において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークンが有効か否かの検証結果をリソースサーバ装置１０２に送信する。
Ｓ６２３において、リソースサーバ装置１０２のリソース提供部３０５は、認可トークンの検証結果を受信する。
Ｓ６２４において、リソースサーバ装置１０２のリソース提供部３０５は、認可トークンの検証結果が、認可トークンが有効であることを示していた場合、リソース格納部３０６を介してリソースを取得し、クライアント装置１０３にリソースを送信する。
Ｓ６２５において、クライアント装置１０３の要求処理部３０７は、リソースを受信する。
【００２７】
認可トークンの検証処理の詳細について、図９のフローチャートを用いて説明する。
Ｓ６１９において、リソースサーバ装置１０２のリソース提供部３０５は、リソース取得要求に含まれる、認可トークンとペアレントトークンとを含む認可トークン検証要求を認可サーバ装置１０１に送信する。
Ｓ６２０において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークン検証要求を受信する。
Ｓ９０１において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークン検証要求に認可トークン及びペアレントトークンの両方が含まれていたか否かを判定する。認可トークン検証部３０４は、認可トークン及びペアレントトークンの両方が含まれていたと判定した場合、Ｓ９０３に進み、認可トークン及びペアレントトークンの両方が含まれていないと判定した場合、Ｓ９０２に進む。
Ｓ９０２において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークンが無効であると判定する。
Ｓ９０３において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークン、ペアレントトークンが正規のものであるか否かを判定する。認可トークン検証部３０４は、正規のものであるか否かは、認可トークン、ペアレントトークンがＪＷＴ（ＪＳＯＮ Ｗｅｂ Ｔｏｋｅｎ）形式の文字列であるならば、トークンの署名が正当か否かによって判定する。認可トークン検証部３０４は、認可トークン、ペアレントトークンが正規のものでないと判定した場合には、Ｓ９０２に進み、正規のものであると判定した場合には、Ｓ９０４に進む。
【００２８】
Ｓ９０４において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークンの認可トークンＩＤ５０１がペアレントトークンの認可トークンＩＤリスト５０５に登録されているか否かを判定する。認可トークン検証部３０４は、認可トークンの認可トークンＩＤ５０１がペアレントトークンの認可トークンＩＤリスト５０５に登録されていないと判定した場合は、Ｓ９０２に進み、登録されていると判定した場合は、Ｓ９０５に進む。
Ｓ９０５において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークン、ペアレントトークンが有効期限内であるか否かを判定する。認可トークン検証部３０４は、認可トークン、又はペアレントトークンが有効期限内でないと判定した場合は、Ｓ９０２に進み、認可トークン、ペアレントトークンが有効期限内であると判定した場合は、Ｓ９０６に進む。
Ｓ９０６において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークン検証要求で指定された権限スコープが正当であるか否かを判定する。認可トークン検証部３０４は、権限スコープが正当でないと判定した場合は、Ｓ９０２に進み、権限スコープが正当であると判定した場合は、Ｓ９０７に進む。
Ｓ９０７において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークンが有効であると判定する。
Ｓ６２２において、認可サーバ装置１０１の認可トークン検証部３０４は、認可トークンが有効か否かの検証結果をリソースサーバ装置１０２に送信する。
Ｓ６２３において、リソースサーバ装置１０２のリソース提供部３０５は、認可トークンの検証結果を受信する。
【００２９】
このように、認可トークンの検証処理では、クライアント装置１０３が持つ認可トークン、ユーザ端末１０４が持つペアレントトークンの両方が有効であると判定されたとき、認可トークンの検証に成功したと判定する。
【００３０】
次に、認可サーバ装置１０１が行う認可トークンの無効化処理について、図１０を用いて説明する。認可トークンの無効化処理は、クライアント装置１０３からの認可トークン無効化要求を受信した際に実行される。
まず、ユーザがユーザ端末１０４を使ってクライアント装置１０３にサービス終了を要求する操作を行うと、Ｓ１００１において、ユーザ端末１０４のユーザエージェント３０９は、クライアント装置１０３にサービス終了要求を送信する。
Ｓ１００２において、クライアント装置１０３の要求処理部３０７は、サービス終了要求を受信する。
Ｓ１００３において、クライアント装置１０３の要求処理部３０７は、認可サーバ装置１０１に対する認可トークン無効化要求をユーザ端末１０４に送信する。
Ｓ１００４において、ユーザ端末１０４のユーザエージェント３０９は、認可トークン無効化要求を受信する。
Ｓ１００５において、ユーザ端末１０４のユーザエージェント３０９は、認可トークン無効化要求に含まれる認可トークンの認可トークンＩＤを認可トークンＩＤリストに含むペアレントトークンを、ペアレントトークン記憶部３１０を介して取得する。そして、ユーザエージェント３０９は、取得したペアレントトークンを認可トークン無効化要求に付与して、認可サーバ装置１０１に送信する。
【００３１】
Ｓ１００６において、認可サーバ装置１０１のペアレントトークン発行部３０３は、認可トークン無効化要求を受信する。
Ｓ１００７において、認可サーバ装置１０１のペアレントトークン発行部３０３は、認可トークン無効化要求に付与されたペアレントトークンの検証を行う。
ペアレントトークンが有効であると判定した場合、Ｓ１００８において、認可サーバ装置１０１のペアレントトークン発行部３０３は、ペアレントトークンの認可トークンＩＤリストから指定された認可トークンの認可トークンＩＤを削除した新たなペアレントトークンを発行する。そして、ペアレントトークン発行部３０３は、発行した新たなペアレントトークンをユーザ端末１０４に送信する。Ｓ１００８の処理は、ユーザ端末１０４が保持する認可トークンとクライアント装置１０３が保持するペアレントトークンとの対応付けを解消することでクライアント装置１０３に対して委譲された権限を無効化する処理の一例である。
Ｓ１００９において、ユーザ端末１０４のユーザエージェント３０９は、ペアレントトークンを受信する。ユーザエージェント３０９は、ペアレントトークン記憶部３１０を介して古いペアレントトークンをユーザ端末１０４の外部記憶装置等より削除し、新しいペアレントトークンを記憶する。
Ｓ１０１０において、ユーザ端末１０４のユーザエージェント３０９は、ペアレントトークン取得通知をクライアント装置１０３に送信する。
Ｓ１０１１において、クライアント装置１０３の要求処理部３０７は、ペアレントトークン取得通知を受信する。
Ｓ１０１２において、クライアント装置１０３の要求処理部３０７は、サービス終了要求の成功通知をユーザ端末１０４に送信する。
Ｓ１０１３において、ユーザ端末１０４のユーザエージェント３０９は、サービス終了要求の成功通知を受信する。
【００３２】
このように、認可トークンの無効化処理では、ペアレントトークンの認可トークンＩＤリストから認可トークンＩＤを削除することで認可トークンの無効化を行う。
【００３３】
実施形態１に係る認可システムによれば、認可トークンの検証、無効化はクライアント装置１０３が持つ認可トークンとユーザ端末１０４が持つペアレントトークンとの情報を基に行うことができる。そのため、認可サーバ装置１０１で認可トークンの管理をする必要がない。したがって、認可サーバ装置１０１の負荷を軽減しながら、ユーザの意図しない認可トークンの使用を防止することでセキュリティの向上が期待できる。
【００３４】
＜実施形態２＞
実施形態１では、認可トークンの取得処理において、一つのユーザ端末１０４が一つのクライアント装置１０３に対して認可トークンの取得を許可する例を示した。本実施形態では、ユーザ端末１０４が第一のクライアント装置と紐づくペアレントトークンを既に保持している状態で、第二のクライアント装置に発行された認可トークンとペアレントトークンとを紐づける例を示す。
実施形態２に係る認可システムで行われる認可トークンの取得処理について、図１１を用いて説明する。
システム構成、ハードウェア構成、機能構成等は、実施形態１と同じであるため詳細な説明は省略する。
【００３５】
Ｓ６０３において、クライアント装置１０３の要求処理部３０７は、認可サーバ装置１０１に認可トークン取得要求を送信する。認可トークン取得要求は、実際には、ユーザ端末１０４を経由して認可サーバ装置１０１に送信される。
Ｓ６０４において、認可サーバ装置１０１の認可トークン発行部３０２は、クライアント装置１０３から送信された認可トークン取得要求を受信する。
Ｓ６０５において、認可サーバ装置１０１の認可トークン発行部３０２は、認可トークンを発行するために許可を行うユーザが認証済みか否かを判定し、認証に成功すれば認可トークンを発行する。そして、認可トークン発行部３０２は、発行した認可トークンをクライアント装置１０３に送信する。ここで、認証及び認可は、ＯＡｕｔｈ ２．０のプロトコルを用いて実行することもできる。この場合、ユーザＩＤ／ユーザパスワード等の認証情報の授受の方法、認可トークンに含まれる内容は、ＯＡｕｔｈ ２．０等の仕様によって規定されることになる。
Ｓ６０６において、クライアント装置１０３の要求処理部３０７は、認可トークンを受信する。
Ｓ６０７において、クライアント装置１０３の要求処理部３０７は、認可トークン取得通知をユーザ端末１０４に送信する。要求処理部３０７は、認可トークン取得通知には認可トークンを付与する。
Ｓ６０８において、ユーザ端末１０４のユーザエージェント３０９は、認可トークン取得通知を受信する。
Ｓ６０９において、ユーザ端末１０４のユーザエージェント３０９は、認可トークン取得通知に付与されている認可トークン、及び、ペアレントトークン記憶部３１０を介してユーザ端末１０４の外部記憶装置等より取得したペアレントトークンをペアレントトークン取得要求に付与する。そして、ユーザエージェント３０９は、ペアレントトークン取得要求を認可サーバ装置１０１に送信する。
【００３６】
Ｓ６１０において、認可サーバ装置１０１のペアレントトークン発行部３０３は、ペアレントトークン取得要求を受信する。
Ｓ１１０１において、認可サーバ装置１０１のペアレントトークン発行部３０３は、ペアレントトークン取得要求に付与されていた認可トークンの認可トークンＩＤを、ペアレントトークン取得要求に付与されていたペアレントトークンの認可トークンＩＤリストに追加する。
Ｓ６１１において、認可サーバ装置１０１のペアレントトークン発行部３０３は、ペアレントトークンをユーザ端末１０４に送信する。このとき、ペアレントトークン発行部３０３は、ペアレントトークの有効期限を、付与されていた認可トークンの有効期限より長い期間にする。
Ｓ６１２において、ユーザ端末１０４のユーザエージェント３０９は、ペアレントトークンを受信する。
Ｓ６１３において、ユーザ端末１０４のユーザエージェント３０９は、ペアレントトークンをペアレントトークン記憶部３１０を介して記憶し、ペアレントトークン取得通知をクライアント装置１０３に送信する。
Ｓ６１４において、クライアント装置１０３の要求処理部３０７は、ペアレントトークン取得通知を受信すると、認可トークンが有効になったと判断し、認可トークン記憶部３０８を介して、認可トークンを記憶する。
【００３７】
このように、本実施形態に係る認可トークンの生成処理では、第二のクライアント装置の認可トークン取得要求に対してペアレントトークンをユーザ端末１０４に発行する。ペアレントトークンは、第一のクライアント装置、第二のクライアント装置それぞれに発行された認可トークンの有効性情報を含む。そのため、ユーザ端末１０４は、ペアレントトークンを、ペアレントトークン記憶部３１０を介して削除することで第一クライアント装置、第二クライアント装置の認可を一度に取り消すシングルサインアウトを実現することができる。
認可トークンの検証、無効化処理については実施形態１と同様の手順で行われる。
【００３８】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００３９】
以上、本発明の実施形態の一例について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
例えば、上述した認可サーバ装置１０１のハードウェア構成は一例であり、ＣＰＵ、ＲＡＭ、ＲＯＭ、ネットワークＩ／Ｆ、外部記憶装置等は複数有していてもよい。また、複数のＣＰＵがプログラムに基づき、複数のＲＡＭ、ＲＯＭ、外部記憶装置に記憶されたデータ等を用いながら処理を実行するようにしてもよい。また、ＣＰＵに替えてＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を用いることとしてもよい。他の装置も同様である。
また、上述した実施形態はＯＡｕｔｈ２．０のプロトコルに従った構成で記載しているが、これに限定されるものではない。
【００４０】
以上、上述した各実施形態の処理によれば、認可サーバ装置１０１で認可トークンに関する情報を保持せずに認可トークンの明示的な無効ができるようになる。
そのため、認可サーバ装置１０１の負荷を軽減しながら、ユーザの意図しない認可トークンの使用を防止することでセキュリティを向上させることができる。
【符号の説明】
【００４１】
１０１  認可サーバ装置
２０１  ＣＰＵ
【図１】
2020014071.tif 000003
【図２】
2020014071.tif 000004
【図３】
2020014071.tif 000005
【図４】
2020014071.tif 000006
【図５】
2020014071.tif 000007
【図６】
2020014071.tif 000008
【図７】
2020014071.tif 000009
【図８】
2020014071.tif 000010
【図９】
2020014071.tif 000011
【図１０】
2020014071.tif 000012
【図１１】
2020014071.tif 000013