本発明の目的、技術的解決手段、および利点をより明確にすべく、以下さらに、添付図面を参照して、本発明の実施形態を詳細に説明する。本発明を包括的に理解するべく、以下の詳細な説明は、多くの具体的な詳細に言及する。しかしながら、当業者には、これらの具体的な詳細がなくとも本発明が実現され得ることは理解されよう。他の実施形態において、実施形態を不明瞭にすることを避けるべく、周知の方法、プロセス、構成要素、および回路については詳細に説明しない。説明されている実施形態が本発明の実施形態の全てではなく一部であることは明らかである。当業者により、本発明の実施形態に基づいて創造的努力なく得られる全ての他の実施形態は、本発明の保護範囲に属するものとする。
本発明の実施形態において説明されている認可サーバおよびリソースサーバの関連し合う機能は、同一のデバイスにおける異なる複数の機能モジュールにより実現されてよく、または異なる複数のデバイスにより別々に実現されてもよいことに留意されたい。これは本発明において限定されるものではない。
加えて、下記で説明するいくつかの手順は、特定の順序に従って現れる複数のオペレーションを含む。しかしながら、これらのオペレーションは、本明細書に現れる順序に従って行われなくてよく、並行して行われてもよいことを明確に理解されたい。101および102のようなオペレーションの通し番号は、オペレーションを区別するのに用いられているに過ぎず、これらの通し番号は実行の順序を示すものではない。加えて、これらの手順は、より多くのまたはより少ないオペレーションを含んでよく、これらのオペレーションは、ある順序に従って行われてよく、または並行して行われてもよい。本明細書における「第1」および「第2」のような説明は、メッセージ、デバイス、またはモジュール等を区別するのに用いられており、順序を示すものではないことに留意されたい。加えて、「第1」および「第2」は、異なる種類を示すものではない。
図1は、本発明の一実施形態に係る認可更新システムのブロック図である。当該システムは、有線または無線の通信ネットワークを用いて互いに通信し合う複数の通信デバイスを含む。
アクセスデバイス102は、アプリケーションエンティティ(Application Entity, AE)であってよく、または共通サービスエンティティ(Common Services Entity, CSE)であってもよく、レジストラ104を用いてM2Mシステムにアクセスし、M2Mシステム内の別のエンティティにより管理されるリソースにアクセスできる。
レジストラ104は、M2Mシステムにおいてアクセスデバイス102に登録サービスを提供する共通サービスエンティティ(Registrar CSE, R−CSE)であり、アクセスデバイス102に登録を提供すること、および、アクセスデバイス102にエンティティ識別子(Application Entity−Identifier, AE−ID/Common Services Entity−Identifier, CSE−ID)を割り当てることを担う。エンティティ識別子は、アクセスデバイスのアイデンティティ識別子として用いられる。
認可サーバ106は、インフラストラクチャノード(Infrastructure Node, IN)に存在する共通サービスエンティティ(Infrastructure Node−CSE, IN−CSE)であってよく、または、独立して動作し、IN−CSEに接続される認可サーバ(Authorization Server, AS)であってもよく、M2Mシステムにおける認可関係を記憶すること、および、アクセスデバイスと、アクセスデバイスのアイデンティティ検証情報と、検証情報の署名と、アクセス先リソースの識別子との間の対応関係を維持することを担う。
リソースサーバ108は、通常、アクセス先リソースが位置するノードの共通サービスエンティティ(Hosting CSE, H−CSE)であり、ローカルリソースの対応する認可関係を維持し、アクセスデバイス102により送信されるリソースアクセス要求に従ってアクセス制御判断を行い、判断結果に従ってリソースアクセス応答をアクセスデバイスに返す。
本発明は、2つの認可関係に関することに留意されたい。一方は、認可サーバにより維持されるもので、第1認可関係と呼称し、他方は、リソースサーバにより維持されるもので、第2認可関係と呼称する。加えて、本発明はさらに、2つのアクセスデバイス識別子、すなわち、第1識別子および第2識別子に関する。第2識別子は、アクセスデバイスにより用いられていた識別子であり、第2識別子に関連する認可関係は、認可サーバおよびリソースサーバ内で維持され、第2識別子は、以下の本発明の実施形態においてはAE−ID1と表記する。第1識別子は、再登録の後にアクセスデバイスにより取得される識別子であり、第1識別子は、以下の本発明の実施形態においてはAE−ID2と表記する。従来技術によれば、アクセスデバイスが第1識別子を用いてリソースにアクセスする場合、アクセスデバイスのアクセス要求は拒否され、そのアクセスは終了する。本発明は、アクセスデバイスが、元の認可関係を継続して用いてリソースアクセス権限を取得することができるよう、第1認可関係および第2認可関係における第2識別子を第1識別子に更新するための方法について説明する。当該方法によれば、ユーザは、対応する認可関係を再作成することなく、アクセスデバイスを用いて対応するリソースにシームレスにアクセスすることができる。これにより、アクセスデバイスのリソースアクセスが大幅に容易になる。例えば、OAuth2.0に関連するプロトコルによれば、tokenに基づく認可関係の確立には、リソースプロセッサがオンライン認可を行うことが必要であることがわかる。リソースプロセッサがオンラインでない場合、M2Mシステムは、アクセスデバイスに対して再認可を行うことができない。よって、ユーザは、リソースにアクセスすることができない。
本発明の本実施形態において、認可サーバ106は、アクセスデバイス識別子と、アクセス先リソースの識別子と、アクセスデバイスの検証情報と、検証情報の署名との間の対応関係の認可関係を記憶する。具体的には、認可サーバ106は、アクセスデバイス102に対して初期認可を行う場合、アクセスデバイス102から検証情報の署名を取得し、検証情報の署名を、対応するアクセスデバイス識別子、検証情報、およびアクセス先リソースの識別子と共に認可関係に記憶する。認可サーバ106は、アクセスデバイス102により送信された署名検証要求を受信した後に、アクセスデバイス102の元のアイデンティティを確認してよい。あるいは、認可サーバ106は、リソースサーバ108により送信された署名要求を受信した場合に、検証情報の署名をリソースサーバ108に送信してよく、そしてリソースサーバ108がアクセスデバイス102の元のアイデンティティを確認する。
リソースサーバ108は、リソースが位置するノードの共通サービスエンティティである。リソースサーバ108は、M2Mシステムにおいて、中間ノード(Middle Node, MN)、インフラストラクチャノード(Infrastructure Node, IN)、またはアプリケーションサービスノード(Application Service Node, ASN)に存在してよい。本発明においては、認可更新処理のための判定ロジックがリソースサーバ108内の元のアクセス制御判断モジュールに付加され、当該判定ロジックは、アクセスデバイス102により送信されたリソースアクセス要求に従って行われたアクセス制御判断の結果が認可されなかった場合、ローカル認可更新を始めるか、またはリソースアクセス要求を認可サーバ106へとリダイレクトして認可更新を行うよう構成される。加えて、本発明の一実施形態において、リソースサーバ108は、認可サーバ106から検証情報の署名を取得し、アクセスデバイス102から対応する検証情報の署名を取得して、アクセスデバイスの元のアイデンティティの確認を完了する。アクセスデバイス102の元のアイデンティティの確認が完了した後に、認可サーバ106がローカル認可関係を自主的に更新するか、またはリソースサーバ108が認可サーバ106による命令の下でローカル認可関係を更新する。
アクセスデバイス102は、アプリケーションエンティティ(AE)または共通サービスエンティティ(CSE)であってよく、レジストラ104を用いてM2Mシステムにアクセスする。本発明においては、署名モジュールがアクセスデバイス102に付加され、当該署名モジュールは、認可サーバ106またはリソースサーバ108から署名要求を受信した場合、鍵を用いて対応する情報に署名し、認可サーバ106またはリソースサーバ108にその情報の署名を返すよう構成される。アクセスデバイスにより署名に用いられる鍵は、デバイスの配送時に設定されてよく、または別の方式で生成されてもよいことに留意されたい。鍵の具体的な形態は、本発明において限定されるものではない。
レジストラ104は、MN−CSEであってよく、IN−CSEまたはASN−CSEであってもよく、アクセスデバイス102に識別子を割り当てることを担う。
加えて、M2Mシステムにおいて、リソースサーバ108および認可サーバ106は、あるデバイス内の2つの機能モジュールとして用いられてよく、またはM2Mシステムにおいて独立して動作する2つのデバイスとして用いられてもよいことに留意されたい。リソースサーバ108および認可サーバ106が、あるデバイス内の2つの機能モジュールとして用いられる場合、リソースサーバ108と認可サーバ106との間での情報交換は、当該デバイス内での情報交換であると考えられる。リソースサーバ108および認可サーバ106の具体的な表現形態は、本発明において限定されるものではない。例えば、以下の本発明の実施形態において、リソースサーバ108および認可サーバ106は、独立して動作する2つのデバイスとして説明される。
図1の認可アーキテクチャは、アクセスデバイス識別子が変更される(AEがレジストラR−CSE1およびR−CSE2に逐次登録し、異なるAE−IDが割り当てられる)一例に過ぎない。異なるアクセスデバイス識別子割り当て方式によっては、アクセスデバイス識別子は、別の場合に変更され得る(例えば、アクセスデバイスが同一のレジストラに登録するが、アクセスデバイスの元の識別子が別のエンティティに割り当てられている)。加えて、リソースサーバ108およびレジストラ104は、IN−CSEに直接的に接続されてよく、他のCSEの複数のホップを介してIN−CSEに接続されてもよい。M2Mシステムの具体的な構造は、本発明において限定されるものではない。
以下、添付図面を参照して、本出願に関連する認可処理方法およびデバイスの実現形態について詳細に説明する。
図2は、本発明に係る、マシン・ツー・マシン通信における認可処理方法のフローチャートである。当該方法は、以下の段階を備える。
段階202:アクセスデバイスにより送信された第1認可更新要求を受信する。第1認可更新要求は、アクセスデバイスの第1識別子を含む。
任意選択的に、第1認可更新要求の宛先アドレスは、認可サーバの認可更新ポートであってよい。すなわち、認可サーバは、認可更新ポートを用いて、アクセスデバイスにより送信された第1認可更新要求を受信する。任意選択的に、第1認可更新要求は、アクセス先リソースの識別子をさらに含む。
段階204:第1認可更新応答をアクセスデバイスに送信する。第1認可更新応答は、署名要求情報を含み、署名要求情報は、検証情報に署名するようアクセスデバイスに命令する。
任意選択的に、署名要求情報は、署名フラグビットであってよい。署名フラグビットの値が「1」である場合、これはアクセスデバイスが検証情報に署名する必要があることを示す。あるいは、署名フラグビットの値が「2」である場合、これはアクセスデバイスが検証情報とアクセスデバイスの現在の識別子とに署名する必要があることを示す。
段階206:アクセスデバイスにより送信された署名検証要求を受信する。署名検証要求は、第1識別子と、検証情報と、検証情報の署名とを含み、検証情報の署名は、アクセスデバイスが鍵を用いて検証情報に署名することにより生成される。
段階208:検証情報に従って、記憶された第1認可関係を取得する。
段階210:受信された署名検証要求における検証情報の署名と第1認可関係に記憶された検証情報の署名とに従って、署名検証要求における検証情報の署名が有効であると判定する。
具体的には、認可サーバは、第1認可関係に記憶された検証情報の署名を取得し、第1認可関係に記憶された検証情報の署名を、受信された署名検証要求における検証情報の署名と比較し、第1認可関係に記憶された検証情報の署名が、受信された署名検証要求における検証情報の署名と同一である場合、署名検証要求における検証情報の署名が有効であると判定する。
段階212:第1識別子に従って、第1認可関係を更新する。
具体的には、認可サーバは、署名検証要求における検証情報の署名が有効であると判定した後に、アクセスデバイスの識別子が既に第1識別子に更新されていると判定する。よって、認可サーバは、ローカルで記憶された、アクセスデバイスに関連する認可関係を更新する必要がある。
任意選択的に、第1識別子に従って第1認可関係を更新する段階は、具体的には、第1認可関係における第2識別子を第1識別子に変更する段階であって、第2識別子は、アクセスデバイスにより用いられていた識別子である、段階であるか、または、第1認可関係を削除し、新たな認可関係を作成する段階であって、新たな認可関係は、第1識別子と、第1認可関係における検証情報と、第1認可関係における検証情報の署名とを含む、段階である。
具体的には、当該方法は、段階202の前に、リソースサーバが、アクセスデバイスにより送信されたリソースアクセス要求を受信する段階であって、リソースアクセス要求は、第1識別子とアクセス先リソースの識別子とを含む、段階と、リソースサーバが、第1識別子とアクセス先リソースの識別子とに従って、アクセスデバイスがアクセス先リソースの識別子に対応するリソースにアクセスする権限を有さないと判定する段階と、リソースサーバが、アクセス先リソースの識別子に対応するリソースにアクセスするためのアクセスデバイスの要求を拒否し、リダイレクトアドレスを含むリソースアクセス応答をアクセスデバイスに送信する段階であって、リダイレクトアドレスは、認可サーバの認可更新ポートアドレスであり、それによりアクセスデバイスは、認可更新ポートアドレスに従って第1認可更新要求を認可サーバに送信する、段階とをさらに備える。
具体的には、当該方法は、アクセスデバイスにより送信された第1認可更新要求を受信する段階の前に、認可サーバが、アクセス先リソースの識別子に対応するリソースへのアクセスデバイスによるアクセスに対して初期認可を行う段階をさらに備える。
M2MシステムにおいてACP認可アーキテクチャが用いられる場合、検証情報は、第2識別子であってよい。検証情報が第2識別子である場合、認可サーバは、第2識別子と、第2識別子の署名と、アクセス先リソースの識別子とに対応する第1認可関係を記憶し、リソースサーバは、第2識別子とアクセス先リソースの識別子とに対応する第2認可関係を記憶する。具体的には、検証情報が第2識別子である場合、署名検証要求は、第1識別子の署名をさらに含み、第1識別子の署名は、アクセスデバイスが鍵を用いて第1識別子に署名することにより生成される。当該方法は、段階210、すなわち、署名検証要求における検証情報の署名が有効であると判定する段階の後に、第1認可関係に記憶された検証情報の署名を第1識別子の署名に変更する段階をさらに含む。認可サーバが、アクセス先リソースの識別子に対応するリソースへのアクセスデバイスによるアクセスに対して初期認可を行う段階は、具体的には、リソース作成要求をリソースサーバに送信する段階であって、リソース作成要求は、予め設定されたアクセス制御ポリシーとアクセス先リソースの識別子とを含み、予め設定されたアクセス制御ポリシーは、第2識別子を含み、それによりリソースサーバは、予め設定されたアクセス制御ポリシーに従ってアクセス制御ポリシーリソースを設定し、アクセス制御ポリシーリソースをアクセス先リソースの識別子に対応するリソースにバインドし、アクセス制御ポリシーリソースは、第2識別子を含む、段階と、リソースサーバにより送信されたリソース作成応答を受信する段階であって、リソース作成応答は、リソースサーバがアクセス制御ポリシーリソースを作成することに成功し、アクセス制御ポリシーリソースをアクセス先リソースの識別子に対応するリソースにバインドすることに成功したことを示すものであり、アクセス制御ポリシーリソースは、予め設定されたアクセス制御ポリシーを記録するのに用いられる、段階と、署名要求をアクセスデバイスに送信する段階であって、署名要求は、第2識別子に署名するようアクセスデバイスに命令するものである、段階と、アクセスデバイスにより送信された署名応答を受信する段階であって、署名応答は、第2識別子の署名を含む、段階と、第1認可関係を記憶する段階であって、第1認可関係は、第2識別子と、第2識別子の署名と、アクセス先リソースの識別子との間の対応関係を含む、段階とである。管理者が、予め設定されたアクセス制御ポリシーを認可サーバ上に作成することの可能な実現形態は、アクセスデバイス102が、レジストラ104に登録し、登録情報を生成するものであることに留意されたい。登録情報は、レジストラにより割り当てられる識別子、例えば、第2識別子と、アクセスデバイスの特徴を反映する情報、例えば、アクセスデバイスのIPアドレス、MACアドレス、またはデバイスディスクリプション情報のようなコンテンツとを含み、管理者は、認可サーバにログインした後に登録情報を取得し、登録情報に従ってアクセス制御ポリシーを作成する、すなわち、アクセスデバイスがリソースにアクセスすることを可能とするルールを作成する。さらに、当該方法は、段階212の後に、リソースサーバにより記憶された第2認可関係を更新する段階をさらに備える。具体的には、当該方法は、第1識別子に従って第1認可関係を更新する段階の後に、第2認可更新要求をリソースサーバに送信する段階をさらに備える。第2認可更新要求は、第1識別子と、第2識別子と、アクセス先リソースの識別子とを含み、それによりリソースサーバは、第2識別子とアクセス先リソースの識別子とに従って、記憶された第2認可関係を取得し、記憶された第2認可関係における第2識別子を第1識別子に更新する。任意選択的に、認可サーバは、リソースサーバにより送信された第2認可更新応答を受信する。第2認可更新応答は、第2認可関係の更新が成功したことを示す。
ACP認可アーキテクチャに基づいて、検証情報は、認可サーバがアクセスデバイスの第1認可更新要求を受信した後に、認可サーバにより第1認可更新応答を用いてアクセスデバイスに送信されてよく、または検証情報は、アクセスデバイスに記憶されてもよいことに留意されたい。例えば、本発明の一実施形態において、第2識別子は、検証情報として用いられ、アクセスデバイスに記憶される。しかしながら、これは本発明において限定されるものではない。
M2MシステムにおいてOAuth認可アーキテクチャが用いられる場合、検証情報は、認可クレデンシャルであってよい。認可サーバは、第2識別子と、認可クレデンシャルと、認可クレデンシャルの署名と、アクセス先リソースの識別子とに対応する第1認可関係を記憶し、リソースサーバは、第2識別子と、認可クレデンシャルと、アクセス先リソースの識別子とに対応する第2認可関係を記憶する。具体的には、検証情報が認可クレデンシャルである場合、第1認可更新要求は、認可クレデンシャルをさらに含み、当該方法は、段階204、すなわち、第1認可更新応答をアクセスデバイスに送信する段階の前に、認可クレデンシャルに従って、認可クレデンシャルを含む第1認可関係が存在すること、および、第1認可関係においてバインドされているアクセスデバイス識別子が第1識別子ではないことを判定する段階をさらに備える。
アクセス先リソースの識別子に対応するリソースへのアクセスデバイスによるアクセスに対して初期認可を行う段階は、具体的には、アクセスデバイスの認可要求を受信する段階であって、認可要求は、第2識別子と、アクセス先リソースの識別子と、ユーザがアクセスデバイスのリソースアクセスに同意するという認証情報とを含む、段階と、認証情報に従って、ユーザがアクセス先リソースの識別子に対応するリソースにアクセスする権限を有すると判定された場合に、認可クレデンシャルを生成する段階と、アクセス先リソースの識別子に対応するリソースが位置するリソースサーバに認可バインド要求を送信する段階であって、認可バインド要求は、第2識別子と、認可クレデンシャルと、アクセス先リソースの識別子とを含む、段階と、リソースサーバにより送信された認可バインド応答を受信する段階であって、認可バインド応答は、第2識別子と、認可クレデンシャルと、アクセス先リソースの識別子とのバインドが成功したことを示す情報を含む、段階と、認可応答をアクセスデバイスに送信する段階であって、認可応答は、認可クレデンシャルと、アクセス先リソースの識別子と、認可クレデンシャルに署名するよう命令する情報とを含む、段階と、アクセスデバイスにより送信された署名バインド要求を受信する段階であって、署名バインド要求は、第2識別子と、認可クレデンシャルと、認可クレデンシャルの署名と、アクセス先リソースの識別子とを含み、認可クレデンシャルの署名は、アクセスデバイスが鍵を用いて認可クレデンシャルに署名することにより生成される、段階と、第1認可関係を記憶する段階であって、第1認可関係は、第2識別子と、認可クレデンシャルと、認可クレデンシャルの署名と、アクセス先リソースの識別子との間の対応関係を含む、段階とである。さらに、当該方法は、段階212の後に、リソースサーバにより記憶された第2認可関係を更新する段階をさらに備える。具体的には、当該方法は、第1識別子に従って第1認可関係を更新する段階の後に、第2認可更新要求をリソースサーバに送信する段階をさらに備える。第2認可更新要求は、第1識別子と、認可クレデンシャルと、アクセス先リソースの識別子とを含み、それによりリソースサーバは、認可クレデンシャルとアクセス先リソースの識別子とに従って、記憶された第2認可関係を取得し、第2認可関係における第2識別子を第1識別子に更新する。任意選択的に、認可サーバは、リソースサーバにより送信された第2認可更新応答を受信する。第2認可更新応答は、第2認可関係の更新が成功したことを示す。
リソースサーバが、記憶された第2認可関係における第2識別子を第1識別子に更新した後に、アクセスデバイスは、元の認可関係を用いることができるようになり、これによりリソースアクセスを実現する。
本発明の本実施形態は、マシン・ツー・マシン通信における認可処理方法を提供する。M2Mシステムにおけるアクセスデバイスの識別子が、ある理由により変更された場合、M2Mシステムは、検証情報の署名が有効であるか否かを判定することにより、すなわち、アクセスデバイスにより送信された検証情報の署名が、認可サーバにより記憶された第1認可関係における検証情報の署名と同一であるか否かを比較することにより、アクセスデバイスのアイデンティティを識別し、既存の認可関係をさらに更新することができ、それによりアクセスデバイスは、既存の認可関係を継続して用いることができる。よって、シームレスなリソースアクセスが実現され、M2Mシステムのサービス連続性が保証される。
図3は、本発明の一実施形態に係る別の認可処理方法のフローチャートである。当該方法は、以下の段階を備える。
段階302:アクセスデバイスにより送信された第1リソースアクセス要求を受信する。第1リソースアクセス要求は、アクセスデバイスの第1識別子と、アクセス先リソースの識別子と、認可クレデンシャルとを含む。
段階304:認可クレデンシャルに従って、認可クレデンシャルとアクセス先リソースの識別子とを含む第2認可関係が存在すること、および、第2認可関係においてバインドされているアクセスデバイス識別子が第1識別子ではないことを判定する。
段階306:第1リソースアクセス応答をアクセスデバイスに送信する。第1リソースアクセス応答は、署名要求情報を含み、署名要求情報は、認可クレデンシャルに署名するようアクセスデバイスに命令する。
段階308:アクセスデバイスにより送信された第2リソースアクセス要求を受信する。第2リソースアクセス要求は、第1識別子と、認可クレデンシャルと、認可クレデンシャルの署名と、アクセス先リソースの識別子とを含み、認可クレデンシャルの署名は、アクセスデバイスが鍵を用いて認可クレデンシャルに署名することにより生成される。
段階310:署名データ要求を認可サーバに送信する。署名データ要求は、認可クレデンシャルを含む。
段階312:認可サーバにより送信された署名データ応答を受信する。署名データ応答は、認可クレデンシャルの署名を含み、認可クレデンシャルの署名は、第1認可関係に記憶され、認可サーバにより認可クレデンシャルに従って取得される。
段階314:第2リソースアクセス要求における認可クレデンシャルの署名と、認可サーバにより送信された認可クレデンシャルの署名とに従って、第2リソースアクセス要求における認可クレデンシャルの署名が有効であると判定する。
具体的には、リソースサーバは、認可サーバにより送信された認可クレデンシャルの署名を、第2リソースアクセス要求における認可クレデンシャルの署名と比較し、認可サーバにより送信された認可クレデンシャルの署名が、第2リソースアクセス要求における認可クレデンシャルの署名と同一である場合、第2リソースアクセス要求における認可クレデンシャルの署名が有効であると判定する。
段階316:第1識別子に従って、第2認可関係を更新する。
第1識別子に従って第2認可関係を更新する段階は、具体的には、第2認可関係における第2識別子を第1識別子に変更する段階であって、第2識別子は、アクセスデバイスにより用いられていた識別子である、段階か、または、第2認可関係を削除し、新たな第2認可関係を作成する段階であって、新たな第2認可関係は、第1識別子と、第2認可関係における認可クレデンシャルと、アクセス先リソースの識別子とを含む、段階である。
具体的には、段階302の前に、初期認可手順がさらに存在し、これは、認可サーバが、アクセスデバイスにより送信された認可要求を受信する段階であって、認可要求は、第2識別子と、アクセス先リソースの識別子と、ユーザがアクセスデバイスのリソースアクセスに同意するという認証情報とを含む、段階と、認可サーバが、認証情報に従って、ユーザがアクセス先リソースの識別子に対応するリソースにアクセスする権限を有すると判定し、認可クレデンシャルを生成し、アクセス先リソースの識別子に対応するリソースが位置するリソースサーバに認可バインド要求を送信する段階であって、認可バインド要求は、第2識別子と、認可クレデンシャルと、アクセス先リソースの識別子とを含む、段階と、リソースサーバが、第2識別子と、認可クレデンシャルと、アクセス先リソースの識別子との間の対応関係を第2認可関係として記憶し、認可バインド応答を認可サーバに送信する段階であって、認可バインド応答は、第2識別子と、認可クレデンシャルと、アクセス先リソースの識別子とのバインドが成功したことを示す情報を含む、段階と、認可サーバが、認可応答をアクセスデバイスに送信する段階であって、認可応答は、認可クレデンシャルと、アクセス先リソースの識別子と、認可クレデンシャルに署名するよう命令する情報とを含む、段階と、認可サーバが、アクセスデバイスにより送信された署名バインド要求を受信する段階であって、署名バインド要求は、第2識別子と、認可クレデンシャルと、認可クレデンシャルの署名と、アクセス先リソースの識別子とを含み、認可クレデンシャルの署名は、アクセスデバイスが鍵を用いて認可クレデンシャルに署名することにより生成される、段階と、認可サーバが、第2識別子と、認可クレデンシャルと、認可クレデンシャルの署名と、アクセス先リソースの識別子との間の対応関係を第1認可関係として記憶する段階とを含む。
段階302において、アクセスデバイスが第1リソースアクセス要求をリソースサーバに送信した後に、リソースサーバは、アクセスデバイスの第1リソースアクセス要求に対して判断を行う必要がある。第1リソースアクセス要求における情報が、リソースサーバにより記憶された第2認可関係と完全に合致する場合にのみ、リソースサーバは、当該要求を許可し、アクセスデバイスにより要求されるリソースを返すことができる。具体的には、リソースサーバが、第1リソースアクセス要求に従って、認可クレデンシャルとアクセス先リソースの識別子とを含む第2認可関係が存在すること、および、第2認可関係においてバインドされているアクセスデバイス識別子が第1識別子ではないことを判定した場合には、リソースサーバは、アクセスデバイス識別子が変更されたか、または認可クレデンシャルが開示されたと判定する。さらに、段階306から段階314を行うことにより、リソースサーバは、アクセスデバイスおよび認可サーバから取得された認可クレデンシャルの署名に従って、第1識別子と第2識別子との両方がアクセスデバイスの識別子であると判定し、さらに自主的に第1識別子を用いて、記憶された第2認可関係を更新する。
さらに、当該方法は、第1識別子に従って第2認可関係を更新する段階の後に、第2リソースアクセス応答をアクセスデバイスに送信する段階をさらに備える。第2リソースアクセス応答は、アクセス先リソースの識別子に対応するリソースを含む。このように、アクセスデバイスは、元の認可関係を用いてリソースアクセスを達成する。
任意選択的に、当該方法は、第2リソースアクセス要求における認可クレデンシャルの署名が有効であると判定する段階の後に、第3認可更新要求を認可サーバに送信する段階であって、第3認可更新要求は、認可クレデンシャルと第1識別子とを含む、段階と、認可サーバにより送信された第3認可更新応答を受信する段階であって、第3認可更新応答は、認可サーバが認可更新を行うことに成功したことを示す情報を含む、段階とをさらに備える。
本発明の本実施形態は、マシン・ツー・マシン通信における認可処理方法を提供する。M2Mシステムにおけるアクセスデバイスの識別子が、ある理由により変更された場合、M2Mシステムは、検証情報の署名が有効であるか否かを判定することにより、すなわち、アクセスデバイスにより送信された検証情報の署名が、認可サーバにより記憶された第1認可関係における検証情報の署名と同一であるか否かを比較することにより、アクセスデバイスのアイデンティティを識別し、既存の認可関係をさらに更新することができ、それによりアクセスデバイスは、既存の認可関係を継続して用いることができる。よって、シームレスなリソースアクセスが実現され、M2Mシステムのサービス連続性が保証される。
図2および図3における認可処理方法の具体的な実現プロセスは、下記、ACP認可アーキテクチャおよびOAuth認可アーキテクチャに基づいて別々に説明する。
アクセスデバイスのリソースアクセスを認可するのにACP認可アーキテクチャがM2Mシステムにおいて用いられる場合、検証情報は、アクセスデバイスの第2識別子であってよい。具体的には、図4および図5に示す実施形態において、M2MシステムにおいてACP認可アーキテクチャに基づいて行われる認可手順は、初期認可および認可更新の2つのサブ手順を含むものとして提供される。初期認可は、アクセスデバイスの識別子が変更される前に、認可サーバが、アクセスデバイスについての検証情報の署名を取得し、認可関係を生成する手順である。
図4を参照すると、図4は、本発明に係る、ACP認可アーキテクチャに基づいて行われる初期認可のフローチャートである。本実施形態におけるアクセスデバイスは、アプリケーションエンティティAEである。しかしながら、アクセスデバイスの具体的な形態は、本発明の本実施形態において限定されるものではない。初期認可手順は、以下の段階を含む。
段階402および段階404:AEが、登録要求をレジストラ1(R−CSE1)に送信し、レジストラ1が、識別子AE−ID1をAEに割り当てる。
段階406:システム管理者(Admin)が、AEについてのACPを認可サーバ(AS)上に作成する。
具体的には、ACP認可アーキテクチャに基づいて、Adminは通常、AEについてのACPを手動で設定する。M2Mシステムにおいて、ACPは、リソースとして作成され、対応するリソースにバインドされる。バインドの方式は、ACPのリソース識別子(ACP ID)を、対応するリソースのアクセス制御ポリシー識別子accessControlPolicyIDs属性値に付加するものである。背景技術で説明したように、M2MシステムにおけるACPリソースの各ルールは、3タプルの<accessControlOriginators, accessControlContexts, accessControlOperations>である。本発明の本実施形態において、AdminがAEについてのACPを作成することは、具体的には、accessControlOriginatorsパラメータを「/CSE0005/CAE0001」に設定することであってよく、/CSE0005/CAE0001は、AE−ID1である。別のパラメータは、本発明の解決手段に無関係であるので、本発明の本実施形態において限定されるものではない。
段階408:認可サーバが、ACPリソース作成要求をリソースサーバ(H−CSE)に送信する。
ACPリソース作成要求は、AEについてAdminにより作成されたACPの全属性データと、対応するバインドされたリソース識別子とを含む。例えば、認可サーバによりリソースサーバに送信されるACPリソース作成要求は、以下の通りであってよい。
POST http://m2m.things.com/CSE0003 HTTP/1.1
From:http://authzserver.things.com
Content−type: application/onem2m−resource+json
{"ResourceType":"accessControlPolicy",
"privileges.accessControlOriginators":"/CSE0005/CAE0001",
"res_uri":"/CSE0003/resource1"}
「http://m2m.things.com/CSE0003」は、H−CSEのURL(Uniform Resource Locator)であり、ASがACPリソースを作成することを見込む親ノードである。すなわち、ACPリソースはH−CSEの根ノード上に作成される。具体的な実現形態において、ASは、POST要求のURL中に、作成される必要があるACPリソースの親リソースIDを定義してよい。どのリソース上で具体的にACPリソースが作成されるかは、本発明の解決手段に影響を及ぼさないので、本発明において限定されるものではない。「From」は、リソース作成要求の発信者のID、すなわち、本実施形態においては認可サーバのURLアドレス「http://authzserver.things.com」を記述する。HTTPメッセージボディは、作成されたACPリソースの属性の全てを含む。「"ResourceType":"accessControlPolicy"」は、現在作成を要求されているリソースの種類がACPであることを示す。「"privileges.accessControlOriginators":"/CSE0005/CAE0001"」は、作成されたACPリソースを適用可能なアクセスデバイスが「/CSE0005/CAE0001」であることを示す。HTTPメッセージボディは、作成されたACPリソースの別の属性をさらに含むはずである。しかしながら、これは本発明の解決手段に無関係であるので、本実施形態においては説明しない。加えて、「"res_uri":"/CSE0003/resource1"」は、ACPリソースがバインドされる必要があるリソースURIが「/CSE0003/resource1」であることを示す。具体的な実現形態において、バインドされる必要があるリソースURIは、別の方式で記述されてよい。(例えば、リソースURIは、POST要求のURLに含まれ、クエリストリングの形態として記述される)。しかしながら、リソースURIを記述する具体的な方式は、ACPリソースの作成およびバインドのプロセスに影響を及ぼさない。
段階410:リソースサーバが、ACPリソースを作成し、作成されたACPリソースを対応するリソースにバインドする。
具体的には、H−CSEは、ASのACPリソース作成要求を受信した後に、まずリソース作成要求をパースして、ACPリソースの作成位置または親リソースIDを取得し、次いでHTTPメッセージボディをパースして、作成されたACPリソースの各属性値を取得する。例えば、本発明の本実施形態において、ACPリソースの作成位置は、「http://m2m.things.com/CSE0003」である。すなわち、当該リソースは、H−CSEの根ノード上に作成される。加えて、HTTPメッセージボディ中、「"ResourceType":"accessControlPolicy"」は、作成されたリソースの種類がACPであることを示し、「"accessControlOriginators":"/CSE0005/CAE0001"」は、ACPにおけるアクセス制御ルールのaccessControlOriginatorsパラメータ値が「/CSE0005/CAE0001」であることを示す。具体的な実現形態において、ACPリソース作成要求におけるHTTPメッセージボディは、ACPリソースの別の属性値をさらに含んでよい。ACPリソースを作成した場合、H−CSEはまた、作成されたACPリソースの対応する属性値を取得し、値をアサインする必要がある。
具体的には、H−CSEがACPリソースの作成を完了した後に、H−CSEは、ACP IDをACPリソースに割り当て、そのACP IDを、ACPリソースのリソース識別子(すなわち、resourceID属性)、例えば、「ACP0001」として設定する。ACP IDは、ACPリソースをH−CSE内で一意に識別する。次いで、H−CSEは、ACPリソース作成要求におけるバインドされたリソース識別子に従って、対応するリソース、すなわち、「/CSE0003/resource1」を見つけ出し、作成されたACPリソースのACP ID、すなわち、「ACP0001」を当該リソースのaccessControlPolicyIDs属性値リストに付加する。
段階412:リソースサーバが、ACPリソース作成応答を認可サーバに返す。
具体的には、H−CSEが、ACPリソース作成応答をASに返す。当該応答は、HTTP200応答コードを含む。例えば、H−CSEによりASに返されるACPリソース作成応答は、以下の通りである。
HTTP/1.1 200 OK
Content−type: application/onem2m−resource+json
{"resourceID": "/CSE0003/ACP0001"}
HTTP応答のステータスコードは「200」であり、これは、H−CSEが、対応するACPリソースの作成およびバインドを既に完了していることを示す。HTTPメッセージボディ中、「"resourceID": "/CSE0003/ACP0001"」は、作成されたACPにH−CSEにより割り当てられたACP IDが「/CSE0003/ACP0001」であることを示す。ACPリソースをM2Mシステムにおいて一意に識別するべく、H−CSEのCSE IDがACP IDの前に付加される。
段階414:認可サーバが、記憶された認可関係マッピング表においてAE−ID1に対応する検証情報の署名が存在するか否かを判定する。
具体的には、ASが、アクセスデバイス識別子がAE−ID1に等しい認可関係を、記憶された認可関係マッピング表に問い合わせる。対応する認可関係が見つかり、対応する検証情報の署名がその認可関係に記憶されている場合には、初期認可は完了する。あるいは、対応する認可関係が見つからない場合には、対応する検証情報に署名するようAEに要求するべく、段階416が行われる、すなわち、AEへの署名要求を開始する。
具体的には、認可関係マッピング表中の各認可関係は、アクセスデバイス識別子と、アクセス先リソースの識別子と、アクセスデバイスの検証情報と、検証情報の署名とを記憶するのに用いられる。例えば、認可関係マッピング表の可能な構造は、表1に記録するものである。
表1 認可関係マッピング表
表1に示すように、この表の各行は、アクセスデバイスに対応する認可関係を示し、これは、アクセスデバイス識別子(subjectID)と、署名(signature)と、アクセス先リソースURIリスト(res_uris)とを含む。認可関係マッピング表において、アクセスデバイス識別子は、アクセスデバイスの検証情報としても用いられることに留意されたい。「署名」列の値は、アクセスデバイスが鍵を用いて対応するアクセスデバイス識別子に署名することにより生成される署名である。表1の第1行から、res_uris列は2つのアクセス先リソースURIを有することがわかる。実際には、1つのアクセスデバイスの認可ステータスが、認可関係マッピング表中の各認可関係に記録および記憶される。同一のアクセスデバイスが、複数のリソースへのアクセス権限を取得してよいことは明らかである。
具体的な実現形態においては、各アクセスデバイスについて別の形態の検証情報が用いられてよい。例えば、表2に示すように、ランダムに生成されるストリングが検証情報として用いられ、その検証情報への各アクセスデバイスの署名値が記憶される。
表2 認可関係マッピング表(別の例)
表2は、各アクセスデバイスが、ランダムに生成される検証情報(challenge)と検証情報の署名とを記憶する認可関係マッピング表構造を示す。具体的な実現形態において、どの情報が検証情報として用いられるかは、本発明の具体的な解決手段に影響を及ぼさない。本実施形態においては、表1に示す認可関係マッピング表構造がM2Mシステムにおいて用いられる、すなわち、アクセスデバイス識別子が検証情報として用いられると仮定する。具体的な実現形態において、認可関係マッピング表は、AS内の共通データベースを用いて維持されてよく、またはRESTfulリソースAuthzRelMapTableとして記述されてもよい。ACP認可アーキテクチャに基づいて、AuthzRelMapTableリソースは、以下の表3に示す形態で示されてよい。
表3 認可関係マッピング表リソースおよび属性
AuthzRelMapTableは、認可関係マッピング表リソースである。当該リソースは、いくつかの認可記録属性、すなわち、authzRecordリソースを含む。各authzRecordリソースは、1つのアクセスデバイスの認可関係を記録し、authzRecordリソースは、以下の属性を含む。
subjectID:表1におけるアクセスデバイス識別子属性に対応する。
signature:表1における署名属性に対応する。
res_uris:表1におけるアクセス先リソースURIリスト属性に対応する。
表1は、一例として用いられている。具体的には、ASは、H−CSEのリソース作成応答を受信した後に、まず認可関係マッピング表からアクセスデバイス識別子がAE−ID1に等しい認可関係を検索する、すなわち、「subjectID」列の値が「/CSE0005/CAE0001」に等しい認可関係を検索する。条件を満足する認可関係が認可関係マッピング表において見つかり、当該認可関係の署名属性値がヌルでない場合には、ASは直接的に初期認可手順を終了する。あるいは、条件を満足する認可関係が認可関係マッピング表において見つからなかった場合には、ASは、署名要求手順を開始し、段階416を行う。
段階416:認可サーバが、署名要求をAEに送信する。
具体的には、ASにより開始されるAEへの署名要求は、以下の通りであってよい。
POST http://m2m.things.com/CSE0005/CAE0001 HTTP/1.1
Content−type: application/onem2m−resource+json
{"SigReq": "1"}
POST要求におけるURLは、R−CSE上でのAEのURIである。R−CSEは、当該要求を受信した後に、署名要求をAEに転送する。HTTPメッセージボディ中、「"SigReq": "1"」は、AEが検証情報に署名する必要があることを示す署名要求フラグビットである。本実施形態における検証情報は、AE−ID1である。AEの識別子をAE自体が記憶するので、上述の署名要求におけるHTTPメッセージボディは、検証情報パラメータを含む必要はない。具体的な実現形態において、別の形態の検証情報が用いられる場合、上述の署名要求におけるHTTPメッセージボディは、対応する検証情報パラメータを含んでよい。
段階418:AEが、デバイス出荷時の鍵を用いて検証情報に署名する。
具体的には、AEは、ASの署名要求を受信した後に、まずHTTPメッセージボディが署名要求フラグビット「SigReq」を含むか否かを検出する。リソースアクセス応答が「SigReq」パラメータを含み、「SigReq」パラメータの値が「1」である場合、AEは、予め設定された署名アルゴリズムとデバイス出荷時の鍵とを用いて対応する検証情報に署名する。本実施形態において、AE−ID1を計算することにより取得される署名は、「JYUI7BZO92」である。
具体的には、AEは、現在のAE−ID1とM2M SP ID(M2M Service Provider Identifier)とをバインドし、ローカルで記憶する。記憶方法は、アクセスデバイス識別子マッピング表を用いて実現されるものであってよく、または別の記憶方式が用いられる。具体的な実現形態において、どの記憶方法が用いられるかは、本発明の解決手段に影響を及ぼさない。本実施形態においては、表4に示すように、AE側が、アクセスデバイス識別子マッピング表を用いてAE−IDとM2M SP IDとの間の対応関係を記憶すると仮定する。
表4 アクセスデバイス識別子マッピング表
M2Mシステムにおいて、AEは、現在割り当てられている識別子を記憶する。AEにより記憶される、現在割り当てられている識別子は、ここで記憶されるアクセスデバイス識別子マッピング表に関連するものではないことに留意されたい。例えば、アクセスデバイスが、ある理由により新たなレジストラに再登録し、識別子AE−ID11を取得する場合には、アクセスデバイスは、AE−ID11を現在のデバイス識別子として記憶する。しかしながら、アクセスデバイスが認可を再申請するのにAE−ID11を用いない場合には、アクセスデバイス識別子マッピング表におけるアクセスデバイス識別子は更新されない。
段階420:AEが、署名応答をASに返す。
具体的には、AEが、署名応答をASに返す。例えば、AEによりASに返される署名応答は、以下の通りである。
HTTP/1.1 200 OK
Content−type: application/onem2m−resource+json
{"signature": "JYUI7BZO92"}
HTTP応答のステータスコードは「200」であり、これは、AEが既に検証情報に署名していることを示す。HTTPメッセージボディ中、「"signature": "JYUI7BZO92"」は、検証情報の署名が「JYUI7BZO92」であることを示す。
段階422:認可サーバが、AEの署名応答を受信した後に、署名応答をパースして検証情報の署名を取得し、対応する認可関係を認可関係マッピング表に付加する。
具体的には、ASがAEの署名応答を受信した場合、ASはまず、署名応答におけるHTTPメッセージボディをパースして、検証情報の署名、すなわち、「JYUI7BZO92」を取得する。次いで、ASは、認可関係マッピング表から、AEに対応する認可関係を検索する、すなわち、subjectID属性値がAE−ID1、すなわち、「/CSE0005/CAE0001」に等しい認可関係を検索する。当該認可関係が見つけ出された場合には、値「JYUI7BZO92」が当該認可関係の署名属性値にアサインされる。当該認可関係が見つけ出されなかった場合には、新たな認可関係が構築され、その認可関係が認可関係マッピング表に付加される。本発明の本実施形態において、表1に示すように、AEに対応する認可関係は、ASの認可関係マッピング表には存在しない。よって、ASは、新たな認可関係を生成し、認可関係マッピング表中に新たな認可関係を更新する。更新された認可関係マッピング表を表5に示す。この表の第3行のデータが、新たに生成された認可関係である。
表5 認可関係マッピング表
図5を参照すると、図5は、本発明に係る、ACP認可アーキテクチャに基づいて行われる認可更新のフローチャートである。図4の実施形態におけるAEが、アクセス位置の変更のような理由により異なるレジストラ(例えば、R−CSE2)に登録する場合、新たなレジストラR−CSE2が新たな識別子AE−ID2をAEに割り当ててよい。その結果、M2Mシステムにおける既存の認可関係は無効になる。図5の方法は、アクセス識別子が変更された後に認可関係を更新するための方法である。当該方法は、以下の段階を備える。
段階502および段階504:AEが、登録要求をレジストラ2(R−CSE2)に送信し、レジストラ2が、識別子AE−ID2をAEに割り当てる。
段階506:AEが、リソースサーバ(H−CSE)へのリソースアクセス要求を開始する。リソースアクセス要求は、AE−ID2とアクセス先リソースのURIとを含む。
具体的には、AEが、リソースアクセス要求をH−CSEに送信する。例えば、AEにより開始されるH−CSEへの初期リソースアクセス要求は、以下の通りである。
GET http://m2m.things.com/CSE0003/resource1?from=/CSE0005/CAE0003 HTTP/1.1
「http://m2m.things.com/CSE0003/resource1」は、アクセス先リソースのURIであり、「from=/CSE0006/CAE0003」は、AEのアクセスデバイス識別子、すなわち、AE−ID2を示す。
段階508:リソースサーバ(H−CSE)が、アクセス要求に保持される情報に従ってアクセス制御判断を行う。
具体的には、H−CSEがAEのリソースアクセス要求を受信した後に、H−CSEはまず、リソースアクセス要求におけるアクセス先リソースのURI、すなわち、GET要求におけるURLアドレス(/CSE0003/resource1)をパースにより抜き出し、対応するリソースresource1をローカルで検索する。次いで、H−CSEは、リソースアクセス要求をパースしてAE−ID2、すなわち、GET要求におけるURLクエリストリング「/CSE0006/CAE0003」を取得する。最後に、H−CSEは、対応するリソースresource1のaccessControlPolicyIDs属性値から、当該リソースにバインドされたACP IDリストを見つけ出し、背景技術で説明したアクセス制御判断プロセスに従って、AEが当該リソースにアクセスする権限を有するか否かを判定する。初期認可と比較して、AEのアクセスデバイス識別子のみがAE−ID1からAE−ID2に変更され、本実施形態におけるリソースアクセスに関連する他の属性(例えば、オペレーションおよびコンテクスト環境)は初期認可の間の制限と一致していると仮定する。初期認可の間にAdminによりAEについて予め設定されたACPにおいて、privileges.accessControlOriginators属性値は、AE−ID1、すなわち、/CSE0005/CAE0001のみを含む。よって、アクセス判断プロセスにおいて、H−CSEは、AE−ID2、すなわち、/CSE0006/CAE0003を含むACPを見つけ出すことができない。この場合、アクセス制御判断の結果は、現在のリソースアクセスが許可されないというものである。従来技術においては、リソースサーバがアクセスデバイスのアクセス要求を直接的に拒否する。その結果、同一のアクセスデバイスのアクセスデバイス識別子が変更された場合、リソースアクセスは失敗する。
段階510:リソースサーバが、リソースアクセス応答をAEに返す。当該応答は、HTTP302応答コードとリダイレクトURLとを含み、リダイレクトURLは、認可サーバの認可更新ポートを指定する。
具体的には、H−CSEのアクセス制御判断が、現在のリソースアクセスが許可されないというものである場合、H−CSEによりAEに返されるリソースアクセス応答は、以下の通りである。
HTTP/1.1 302 Move temporarily
Location:http://authzserver.things.com/authzupdate#from=/CSE0006/CAE0003&res_uri= /CSE0003/resource1
HTTP応答のステータスコードは「302」であり、これは、AEのリソースアクセス要求が新たなURLにリダイレクトされる必要があることを示す。「Location:http://authzserver.things.com/authzupdate」は、リダイレクトURLを示す。リダイレクトURLは、M2Mシステムにおける認可サーバの認可更新ポートを指定する。例えば、http://authzserver.things.com/authzupdateは、認可サーバの認可更新ポートアドレスである。「#from=/CSE0006/CAE0003&res_uri=/CSE0003/resource1」は、リダイレクトされたリソースアクセス要求に添付される必要があるパラメータ情報であり、AE−ID2(すなわち、/CSE0006/CAE0003)とアクセス先リソースのURI(すなわち、/CSE0003/resource1)とを含み、クエリストリングの形態で示される。
段階512:AEが、リソースサーバのリソースアクセス応答を受信した後に、認可更新要求を認可サーバに送信する。認可更新要求は、AE−ID2とアクセス先リソースのURIとを含む。
具体的には、AEが、H−CSEのリソースアクセス応答を受信し、HTTPステータスコードを検出する。ステータスコードが「302」である場合、AEは、認可更新要求をASに送信する。例えば、AEによりASに送信される認可更新要求は、以下の通りであってよい。
GET /authzupdate?from=/CSE0006/CAE0003&res_uri=CSE0003/resource1 HTTP/1.1
Host: http://authzserver.things.com
GET要求におけるURLアドレス「/authzupdate?from=/CSE0006/CAE0003&res_uri=CSE0003/resource1 HTTP/1.1」は、認可サーバの認可更新ポートアドレスと、添付パラメータ情報とを示す。添付パラメータ情報は、AE−ID2(すなわち、/CSE0006/CAE0003)と、アクセス先リソースの識別子(すなわち、/CSE0003/resource1)とを含む。「Host」は、認可サーバのアドレスを記述する。
段階514:認可サーバが、AEの認可更新要求を受信した後に、認可更新応答をAEに返す。当該応答は、HTTP202応答コードと署名要求フラグビットとを含む。
具体的には、ASがAEの認可更新要求を受信した後に、ASによりAEに返される認可更新応答は、以下の通りである。
HTTP/1.1 202 Accepted
Content−type: application/onem2m−resource+json
{"SigReq": "2"}
HTTP応答のステータスコードは「202」であり、これは、ASが既にAEの認可更新要求を受理していることを示す。しかしながら、後続の処理にはさらなる情報が必要である。HTTPメッセージボディ中、「"SigReq": "2"」は、AEが検証情報と現在のアクセスデバイス識別子とに署名する必要があることを示す署名要求フラグビットである。本実施形態において、検証情報は、初期認可の間のAEのアクセスデバイス識別子AE−ID1、すなわち、/CSE0005/CAE0001であり、現在のアクセスデバイス識別子は、AE−ID2:/CSE0006/CAE0003である。
段階516:AEが、デバイス出荷時の鍵を用いて、検証情報に署名し、現在のアクセスデバイス識別子AE−ID2に署名する。
具体的には、AEがH−CSEの認可更新応答を受信した後に、HTTP応答のステータスコードが「202」であること、および、HTTPメッセージボディが値「2」の「SigReq」パラメータを含むことを検出した場合、AEは、ローカルで記憶されたAE−ID1に署名する。本実施形態において、AE−ID1は、表4に示すように、アクセスデバイス識別子マッピング表の形態でローカルで記憶される。AEは、AEにより現在アクセスされているM2Mシステムの識別子(すなわち、本実施形態では「http://m2m.things.com」であるM2M SP ID)に従って、アクセスデバイス識別子マッピング表から対応するアクセスデバイス識別子AE−ID1: /CSE0005/CAE0001を見つけ出す。本実施形態においては、AE−ID1 /CSE0005/CAE0001が、対応する検証情報である。
具体的には、AEが、ローカルで記憶されたAE−ID1を見つけ出した後に、AEは、AE−ID1およびAE−ID2に署名する。本実施形態においては、AE−ID1に署名することにより「JYUI7BZO92」が取得され、AE−ID2に署名することにより「M6UI7B2OKQ」が取得される。次いで、AE−ID2は、ローカルで記憶されたアクセスデバイス識別子マッピング表中に更新されて、元のAE−ID1と置き換わる。すなわち、表4において「/CSE0005/CAE0001」が「/CSE0006/CAE0003」で置き換えられて、表6に示す更新されたアクセスデバイス識別子マッピング表が取得される。
表6 アクセスデバイス識別子マッピング表
段階518:AEが、署名検証要求を認可サーバに送信する。
AEが署名を完了した後に、AEは、ASへの署名検証要求を開始する。当該要求は、AE−ID1と、AE−ID1の署名と、AE−ID2と、AE−ID2の署名とを含む。
具体的には、AEにより開始されるASへの署名検証要求は、以下の通りである。
PUT http://authzserver.things.com/authzupdate HTTP/1.1
Content−type: application/onem2m−resource+json
{"aeid_ori": "/CSE0005/CAE0001", "sig_ori": "JYUI7BZO92"
"aeid_now": "/CSE0006/CAE0003", "sig_now": "M6UI7B2OKQ"}
HTTP応答のステータスコードは「200」であり、これは、AEが既に検証情報に署名していることを示す。HTTPメッセージボディ中、「"aeid_ori": "/CSE0005/CAE0001"」は、初期認可の間のアクセスデバイス識別子AE−ID1が「/CSE0005/CAE0001」であることを示し、「"sig_ori": "JYUI7BZO92"」は、初期認可の間のアクセスデバイス識別子AE−ID1の署名が「JYUI7BZO92」であることを示し、「"aeid_now": "/CSE0006/CAE0003"」は、AEの現在のアクセスデバイス識別子AE−ID2が「/CSE0006/CAE0003」であることを示し、「"sig_now": "M6UI7B2OKQ"」は、AEの現在のアクセスデバイス識別子AE−ID2の署名が「M6UI7B2OKQ」であることを示す。
段階520:ASが、署名検証要求における署名を検証して、認可関係マッピング表を更新するか否かを判定する。
ASがAEの署名検証要求を受信した後に、ASは、アクセスデバイス識別子がAE−ID1である認可関係を認可関係マッピング表から検索し、署名検証要求におけるAE−ID1の署名が当該認可関係における署名と一致するか否かを比較し、さらにAEに対する認可更新を行うか、または認可更新要求を拒否する。
具体的には、ASがAEの署名検証要求を受信した後に、ASはまず、署名検証要求をパースして、AE−ID1と、AE−ID1の署名と、AE−ID2と、AE−ID2の署名とを取得する。次いで、ASは、subjectID属性値がAE−ID1(すなわち、「/CSE0005/CAE0001」)である認可関係を認可関係マッピング表から検索し、当該認可関係における署名属性値がAE−ID1の署名(すなわち、「JYUI7BZO92」)と同一であるか否かを検証する。対応する認可関係における署名属性値がAE−ID1の署名とは異なる場合には、認可サーバは、AEの署名検証要求を拒否し、署名検証応答、例えば、HTTP/1.1 403 Forbiddenを返し、認可更新手順は終了する。対応する認可関係における署名属性値がAE−ID1の署名と同一である場合には、AEの現在の認可更新が許可され、認可関係におけるsubjectID属性値はAE−ID2(すなわち、「/CSE0006/CAE0003」)に更新され、署名属性値はAE−ID2の署名(すなわち、「M6UI7B2OKQ」)に更新される。本発明の本実施形態において、署名検証が成功することは明らかである。ASは、表7に示すように、認可関係マッピング表を更新する。
表7 認可関係マッピング表
段階522:認可サーバが、認可更新要求をリソースサーバに送信する。
ASがAEの認可更新を許可した後に、ASは、H−CSEへの認可更新要求を開始する。当該要求は、アクセス先リソースのURIと、AE−ID1と、AE−ID2とを含む。
具体的には、認可更新要求は、以下の通りであってよい。
PUT http://m2m.things.com/CSE0003/resource1 HTTP/1.1
From:http://authzserver.things.com
Content−type: application/onem2m−resource+json
{"aeid_ori": "/CSE0005/CAE0001",
"aeid_now": "/CSE0006/CAE0003"}
「/CSE0003/resource1」は、アクセス先リソースのURIである。HTTPメッセージボディ中、「"aeid_ori": "/CSE0005/CAE0001"」は、元のアクセスデバイス識別子AE−ID1が「/CSE0005/CAE0001」であることを示し、「"aeid_now": "/CSE0006/CAE0003"」は、現在のアクセスデバイス識別子AE−ID2が「/CSE0006/CAE0003」であることを示す。
段階524:リソースサーバが、認可関係を更新する。
H−CSEがASの認可更新要求を受信した後に、H−CSEは、アクセス先リソースのURIに従って、対応するリソースを見つけ出し、そのリソースに関連付けられた認可関係を更新する。
具体的には、H−CSEは、ASの認可更新要求を受信した後に、まず認可更新要求をパースしてアクセス先リソースのURI、すなわち、「/CSE0003/resource1」を取得し、対応するリソースをローカルで見つけ出し、次いで認可更新要求におけるHTTPメッセージボディをパースしてAE−ID1(すなわち、「/CSE0005/CAE0001」)およびAE−ID2(すなわち、「/CSE0006/CAE0003」)を取得し、対応するリソースresource1のaccessControlPolicyIDs属性から、そのリソースに関連付けられた全てのACP IDのリストを見つけ出し、これらのACPからprivileges.accessControlOriginators属性値が「/CSE0005/CAE0001」を含むACPリソースを検索し、当該ACPリソースのprivileges.accessControlOriginators属性値を「/CSE0006/CAE0003」に更新する。
段階526:リソースサーバが、認可更新応答を認可サーバに送信する。
H−CSEが認可更新を完了した後に、H−CSEは、認可更新応答をASに返す。具体的には、H−CSEが認可更新を完了した後に、H−CSEによりASに返される認可更新応答は、以下の通りである。
HTTP/1.1 200 OK
HTTP応答のステータスコードは「200」であり、これは、H−CSEが、対応するACPリソースの更新を既に完了していることを示す。
段階528:認可サーバが、署名検証応答をAEに送信する。
ASがH−CSEの認可更新応答を受信した後に、ASは、署名検証応答をAEに返す。
具体的には、ASがH−CSEの認可更新応答を受信した後に、ASによりAEに返される署名検証応答は、以下の通りである。
HTTP/1.1 200 OK
HTTP応答のステータスコードは「200」であり、これは、ASが、AEにより要求された認可更新を既に完了していることを示す。
AEが認可サーバにより送信された署名検証応答を受信した後に、これは、認可関係の更新がM2Mシステムにおいて既に完了していることを示す。この場合、AEは、アクセスデバイス識別子AE−ID2を用いてアクセス先リソース/CSE0003/resource1にアクセスしてよい。
本実施形態において、M2MシステムにおけるAEのようなM2Mデバイスが、識別子が変更された後にアクセス先リソースにアクセスした場合、リソースサーバが認可関係更新手順をトリガする。M2Mシステムは、アクセスデバイスの検証情報の署名を検証することによりアクセスデバイスのアイデンティティを判定し、既存の認可関係を更新する。よって、M2Mデバイスはシームレスなリソースアクセスを実現することができ、M2Mシステムのサービス連続性が保証される。
アクセスデバイスのリソースアクセスを認可するのにOAuth認可アーキテクチャがM2Mシステムにおいて用いられる場合、検証情報は、認可サーバにより生成されるアクセストークンであってよい。具体的には、図6A、図6B、および図7に示す実施形態において、OAuth認可アーキテクチャに基づいて行われる認可手順は、初期認可および認可更新の2つの手順を含むものとしてM2Mシステムにおいて提供される。初期認可は、アクセスデバイスの識別子が変更される前に、認可サーバが、アクセスデバイスについてのアイデンティティ検証情報を取得し、認可関係を生成する手順である。
図6Aおよび図6Bを参照すると、図6Aおよび図6Bは、本発明に係る、OAuth認可アーキテクチャに基づいて行われる初期認可のフローチャートである。本実施形態におけるアクセスデバイスは、アプリケーションエンティティAEである。しかしながら、アクセスデバイスの具体的な形態は、本発明の本実施形態において限定されるものではない。初期認可手順は、以下の段階を含む。
段階602および段階604:AEが、登録要求をレジストラ1(R−CSE1)に送信し、レジストラ1が、アイデンティティ識別子AE−ID1をAEに割り当てる。
段階606:AEが、リソースサーバ(H−CSE)への初期リソースアクセス要求を開始する。リソースアクセス要求は、AE−ID1とアクセス先リソースのURIとを含む。
具体的には、AEが、初期リソースアクセス要求をH−CSEに送信する。例えば、AEにより開始されるH−CSEへのリソースアクセス要求は、以下の通りである。
GET http://m2m.things.com/CSE0003/resource1?from=/CSE0005/CAE0001 HTTP/1.1
「CSE0003/resource1」は、アクセス先リソースのURIであり、「from=/CSE0005/CAE0001」は、AEのアクセスデバイス識別子、すなわち、AE−ID1を示す。AEは、初めてアクセス先リソースにアクセスし、AEは、当該リソースにバインドされるアクセストークンをローカルで記憶していない。よって、初期リソースアクセス要求は、アクセストークンパラメータを含まない。
段階608:リソースサーバ(H−CSE)が、AEにより送信されたリソースアクセス要求を受信し、アクセス制御判断を行う。
具体的には、H−CSEは、リソースアクセス要求を受信した場合、まず、リソースアクセス要求におけるアクセス先リソースのURIに従って対応するリソースをローカルで検索する。当該リソースがローカルで見つからない場合には、H−CSEは、AEにリソースアクセス拒否応答、例えば、HTTP/1.1 404 Not Foundを返す。アクセス先リソースがローカルで見つかった場合には、H−CSEは、リソースアクセス要求におけるアクセスデバイス識別子およびアクセストークンに従って、対応する認可関係をリソース属性から検索する。AEにより送信されたリソースアクセス要求が初期リソースアクセス要求である場合、段階606において説明したように、当該要求はアクセストークンパラメータを含まず、H−CSEは、AEが初めてリソースにアクセスしていると判定し、H−CSEは認可手順を開始する。
段階610:リソースサーバが、リソースアクセス応答をAEに返す。
当該応答は、リダイレクト応答コードとリダイレクトURLとを含む。リダイレクトURLは、M2Mシステムにおける認可サーバの動的認可アドレスを指定する。
具体的には、H−CSEは、リソースアクセスを要求するAEにリソースアクセス応答を返す。例えば、H−CSEによりAEに返されるリソースアクセス応答は、以下の通りであってよい。
HTTP/1.1 302 Move temporarily
Location:http://authzserver.things.com/dynamicauthz#from=/CSE0005/CAE0001&res_uri= /CSE0003/resource1
HTTP応答のステータスコードは「302」であり、これは、AEのリソースアクセス要求が新たなURLにリダイレクトされる必要があることを示す。「Location」は、リダイレクトURLを示す。リダイレクトURLは、M2Mシステムにおける認可サーバの動的認可アドレスを指定する。例えば、http://authzserver.things.com/dynamicauthzは、認可サーバの動的認可アドレスである。「#from=/CSE0005/CAE0001&res_uri=/CSE0003/resource1」は、リダイレクトされたリソースアクセス要求に添付される必要があるパラメータ情報であり、クエリストリングの形態で示される。本例において、添付パラメータ情報は、アクセスデバイス識別子が「/CSE0005/CAE0001」であること、および、アクセス先リソースのURIが「/CSE0003/resource1」であることである。
段階612:AEが、認可要求をリソースサーバに送信する。認可要求は、AE−ID1とアクセス先リソースのURIとを含む。
AEは、H−CSEのリソースアクセス応答を受信した後に、認可要求をASに送信する。段階610におけるリソースアクセス応答におけるLocationパラメータにおいて提供されるリダイレクトURLは、認可要求のアドレス中に用いられる。
具体的には、AEが、H−CSEのリソースアクセス応答を受信し、HTTPステータスコードを検出する。ステータスコードが「302」である場合、AEは、認可要求をASに送信する。例えば、AEによりASに送信される認可要求は、以下の通りである。
GET http://authzserver.things.com /dynamicauthz?from=/CSE0005/CAE0001&res_uri=CSE0003/resource1 HTTP/1.1
「/dynamicauthz?from=/CSE0005/CAE0001&res_uri=CSE0003/resource1」は、認可サーバの動的認可アドレスと、添付パラメータ情報とを示す。添付パラメータ情報は、AE−ID1とアクセス先リソースのURIとを含む。「Host」は、本実施形態では「http://authzserver.thnings.com」である、認可サーバのアドレスを記述する。AEは、認可要求をASに送信する場合、Hostパラメータを用いるのではなく、GET要求を直接用いて、リソースアクセス応答におけるLocationパラメータにおいて提供されるリダイレクトURLにアクセスしてよい。例えば、認可要求は、以下の通りであってよい。
GET http://authzserver.things.com/dynamicauthz?from=/CSE0005/CAE0001
&res_uri=/CSE0003/resource1 HTTP/1.1
第1行の末尾の改行は、説明を明確にすることを意図したものに過ぎない。具体的な実現形態においては、上述の2つのメッセージ行の間には改行が存在しない。
段階614:認可サーバが、認可応答をAEに返す。認可応答は、ユーザ認証を要求するためのフラグビットを含む。
具体的には、ASは、AEの認可要求を受信した後に、まず認可要求がユーザ認証に関連するパラメータを含むか否かを検出する。認可要求がユーザ認証情報を含まない場合、ASによりAEに返される認可応答は、以下の通りである。
HTTP/1.1 202 Accepted
Content−type: application/onem2m−resource+json
{"NeedUserAuthN": "1"}
HTTP応答のステータスコードは「202」であり、これは、認可要求が既に受信されていることを示す。しかしながら、後続の処理にはさらなる情報が必要である。HTTPメッセージボディ中、「"NeedUserAuthN": "1"」パラメータは、ユーザ認証を要求するためのフラグビットを示す。当該パラメータは、AEがユーザ認証情報を次回の認可要求に付加する必要があることを示す。
段階616:AEが、認可サーバにより送信された認可応答を受信し、AEが、当該応答がユーザ認証を要求するためのフラグビットを含むことを検出した場合、AEにユーザ認証情報を入力するようユーザに命令する。
具体的には、AEは、ASにより送信された認可応答を受信し、HTTPステータスコードを検出する。ステータスコードが「202」である場合、AEは、HTTPメッセージボディの検出を継続する。AEは、メッセージボディが「NeedUserAuthN」パラメータを含むこと、および、当該パラメータの値が「1」であることを検出した場合、AEにユーザ認証情報を入力するようユーザに命令する。ここでユーザは、AEが存在するデバイスのユーザインタラクション能力に従って、適切な入力方法を選択してよい。例えば、当該デバイスが(キーボードまたはタッチスクリーンのような)ユーザインタラクションインターフェースを有する場合、ユーザは、ユーザのアカウントおよびパスワードを当該インタラクションインターフェースを用いて入力してよい。当該デバイスがユーザインタラクションオペレーションをサポートしていない場合、ユーザは、別のインタラクションデバイスを用いてユーザ情報の入力を完了してよい。加えて、ユーザは、ユーザのアイデンティティを証明することができるアイデンティティカードのような物体を用いてアイデンティティ情報の入力を完了してよい。具体的には、ユーザ認証情報を入力するための方式は、本発明の議論の範囲外であり、本発明の解決手段に影響を及ぼさない。簡単のために、本発明の解決手段において、当該デバイスはユーザインタラクションインターフェースを有し、ユーザは当該インタラクションインターフェースを用いてユーザのアカウントuser1およびパスワードpassword1をAEに入力すると仮定する。
段階618:ユーザが、ユーザ認証情報を入力する。
段階620:AEが、認可要求をリソースサーバに送信する。認可要求は、AE−ID1と、アクセス先リソースのURIと、ユーザ認証情報とを含む。
具体的には、ユーザがユーザのユーザ認証情報をAE側に入力した後に、AEによりASに送信される認可要求は、以下の通りである。
GET /dynamicauthz?from=/CSE0005/CAE0001&res_uri=/CSE0003/resource1 HTTP/1.1
Host: http://authzserver.things.com
Content−type: application/onem2m−resource+json
{"user": "user1",
"password": "password1"}
段階612における認可要求と比較して、この認可要求にはユーザ認証情報に関連するパラメータが付加される。「"user": "user1"」は、ユーザのアカウント名を示す。「"password": "password1"」は、ユーザのアカウント名に対応するパスワードを示す。本実施形態において、ユーザ認証情報は、HTTPメッセージボディに含まれ、JSONフォーマットを用いて符号化される。実際の実現形態において、ユーザ認証情報は、クエリストリングの形態でGET要求のURLに含まれてよい。これは本発明において限定されるものではない。
段階622:認可サーバが、ユーザ認証情報に従ってユーザアイデンティティおよび権限を判定し、アクセストークン(token)を生成する。
ASがAEの認可要求を受信し、ユーザ認証情報を検出した後に、ASは、認可要求からユーザ認証情報を取得し、ユーザ情報データベースにおけるユーザ認証情報を検証し、ユーザがリソースにアクセスする権限を有するか否かを判定する。ユーザアイデンティティおよび権限が確認された後に、ASは、現在の認可についてのtokenを生成する。
具体的には、ASは、AEの認可要求を受信した後に、まず認可要求がユーザ認証に関連するパラメータを含むか否かを検出する。認可要求のメッセージボディが「user」および「password」のパラメータを含む場合、これは、AEがユーザ認証を必要としていることを示す。次いで、ASは、認可要求のメッセージボディから「user」のパラメータ値「user1」および「password」のパラメータ値「password1」を取得し、アカウント名が「user1」であるユーザをユーザ情報データベースから検索し、当該ユーザのパスワードが「password1」に等しいか否かを検証する。ユーザ情報データベースは、M2Mシステムにおける全てのユーザ認証情報およびアクセス権限が記憶されたデータベースである。ユーザ情報データベースに記憶されたユーザ認証情報は、ASにより用いられる認証方法に関連する。本実施形態において、ASは、従来の方式でアカウント名およびパスワードを用いてユーザ認証を行う。よって、ユーザ情報データベースに記憶されたユーザ認証情報は、ユーザのアカウント名およびパスワードを少なくとも含む。加えて、ユーザ情報データベースに記憶されたユーザ認証情報は、ユーザがリソースにアクセスするための権限をさらに含んでよい。
アカウント名が「user1」でありパスワードが「password1」に等しいユーザ記録をASがユーザ情報データベースから見つけ出した場合、ASは、アクセス先リソースのURI、すなわち、「/CSE0003/resource1」がユーザのアクセス権限に該当するものであるか否かをさらに判定する。権限の具体的な表現形態は、M2Mシステムにおける権限管理方式に関連する。本実施形態において、ユーザ権限情報は、ユーザ情報データベースにおいてアクセス可能リソースリストとして表されると仮定する。アクセス可能リソースリストは、ユーザがアクセスする権限を有する全てのリソースのURIを含む。ユーザによりユーザ情報データベースに記録されたアクセス可能リソースリストがアクセス先リソースのURIを含む場合、ASは、現在の認可要求を認可し、現在の認可要求についての対応するアクセストークン(token)を生成する。tokenの生成方式は、ASにより自律的に決定される。どのtoken生成方法が用いられるかは、本発明の解決手段に影響を及ぼさない。本実施形態において、tokenは、ASによりランダムに生成される長さ一定のストリング、例えば、「2YotnFZFEjr1zCsicMWpAA」を用いて示されると仮定する。
段階624:認可サーバが、認可バインド要求をリソースサーバに送信する。認可バインド要求は、AE−ID1と、tokenと、アクセス先リソースのURIとを含む。
ASがAEの認可要求についてのtokenを生成した後に、ASは、認可バインド要求をH−CSEに送信して、認可情報および対応するリソースをバインドおよび記憶するようH−CSEに命令する。認可バインド要求は、AE−ID1と、tokenと、アクセス先リソースのURIとを含む。
具体的には、ASがAEの認可要求についてのtokenを生成した後に、ASによりH−CSEに送信される認可バインド要求は、以下の通りであってよい。
PUT http://m2m.things.com/CSE0003/resource1 HTTP/1.1
From:/CSE0005/CAE0001
Content−type: application/onem2m−resource+json
{"token": "2YotnFZFEjr1zCsicMWpAA"}
PUT要求におけるURLは、更新される必要があるアクセス先リソースのURI、すなわち、「/CSE0003/resource1」を示す。「From」は、アクセスデバイス識別子、すなわち、「/CSE0005/CAE0001」を示す。HTTPメッセージボディ中、「"token": "2YotnFZFEjr1zCsicMWpAA"」は、アクセスデバイスとアクセス先リソースのURIとに対応するアクセストークンの具体的な値が「2YotnFZFEjr1zCsicMWpAA」であることを示す。
段階626:リソースサーバが、認可サーバにより送信された認可バインド要求に従って、認可関係をバインドする。
H−CSEは、ASの認可バインド要求におけるアクセス先リソースのURIに従って、H−CSEにより記憶されたアクセス先リソースを見つけ出す。次いで、ASは、認可バインド要求からアクセスデバイス識別子およびアクセストークンを取得し、アクセス先リソースの対応するリソース属性にアクセスデバイス識別子およびアクセストークンを記憶する。
具体的には、H−CSEがASの認可バインド要求を受信した後に、H−CSEは、認可バインド要求からアクセス先リソースのURIを取得、例えば、PUT要求におけるURLからアクセス先リソースのURI、すなわち、「/CSE0003/resource1」を取得し、H−CSEによりローカルで記憶されたリソースからアクセス先リソースを見つけ出す。次に、H−CSEは、認可バインド要求からアクセスデバイスのAE−ID1および対応するtokenを取得、例えば、PUT要求におけるHTTPヘッダフィールドの「From」パラメータからAE−ID1、すなわち、「/CSE0005/CAE0001」を取得し、HTTPメッセージボディにおける「token」パラメータからアクセストークン、すなわち、「2YotnFZFEjr1zCsicMWpAA」を取得する。次いで、H−CSEは、AE−IDおよびtokenをアクセス先リソースの対応するリソース属性に記憶する。
既存のoneM2M規格においては、アクセス制御ポリシー(ACP)に対応する属性accessControlPolicyIDsのみがリソースオブジェクトについて定義され、対応するリソース属性は、tokenに基づく認可アーキテクチャについて定義されない。表8は、可能な認可関係バインド方法を提供する。リソースにバインドされる認可関係を示すのに用いられる認可関係属性authzRelが、リソースの一般属性に付加される。
表8 リソースの新たに付加された認可関係属性の例
表8に示すように、各リソース属性は、リソースにバインドされるいくつかの認可関係を示すためのいくつかのauthzRel属性を含んでよく、各authzRelリソースは、subjectID(アクセスデバイス識別子)およびauthzProof(アクセストークン)の2つの属性を含む2タプルのリソースとして示される。
H−CSEは、認可バインド要求からAE−ID1およびtokenパラメータを取得した後に、<authzRel>リソースインスタンスauthzRel1を構築する。authzRel1のsubjectID属性値は「/CSE0005/CAE0001」に等しく、authzProof属性値は「2YotnFZFEjr1zCsicMWpAA」に等しい。H−CSEは、次いで、/CSE0003/resource1に対応するリソースの属性にauthzRel1リソースを付加し、それにより認可関係のバインドを完了する。
段階628:リソースサーバが、認可関係のバインドを完了した後に、認可バインド応答をASに返す。
具体的には、H−CSEが認可関係のバインドを完了した後に、H−CSEによりASに返される認可バインド応答は、以下の通りであってよい。
HTTP/1.1 200 OK
HTTP応答のステータスコードは「200」であり、これは、現在の認可関係がバインドされることに成功したことを示す。
段階630:認可サーバがリソースサーバにより送信された認可バインド応答を受信した後に、認可サーバが、認可応答をAEに返す。認可応答は、tokenと、アクセス先リソースのURIと、署名要求フラグビットとを含む。
具体的には、ASがH−CSEの認可バインド応答を受信した後に、ASによりAEに返される認可応答は、以下の通りであってよい。
HTTP/1.1 202 Accepted
Content−type: application/onem2m−resource+json
{"token": "2YotnFZFEjr1zCsicMWpAA",
"res_uri": "/CSE0003/resource1",
"SigReq": "1"}
HTTP応答のステータスコードは「202」であり、これは、現在の認可要求が既に認可されていることを示す。しかしながら、後続の処理にはさらなる情報が必要である。HTTPメッセージボディ中、「"token": "2YotnFZFEjr1zCsicMWpAA"」は、現在の認可で生成されるアクセストークンを示し、AEは、対応するリソースへの次回のアクセスに当該tokenを用いてよい。「"res_uri": "/CSE0003/resource1"」は、現在の認可応答が「/CSE0003/resource1」を対象とすることを示す。tokenは、リソースアクセスに用いられる。res_uriパラメータは主に、AEにより開始される複数の認可要求をASが同時に処理する場合に用いられる。res_uriパラメータは、AEが認可応答メッセージを区別できることを確実にするべく用いられる。「"SigReq": "1"」は、現在の認可に関連付けられた検証情報の署名をAS側に記憶するには、AEがtoken署名データをさらに提供する必要があることを示す、署名要求フラグビットである。
段階632:AEが、アクセストークンを記憶し、デバイス出荷時の鍵を用いてアクセストークンに署名する。
AEがASの認可応答を受信した後に、AEはまず、認可応答からtokenとアクセス先リソースのURIとを取得し、tokenとアクセス先リソースのURIとをバインドしてローカルで記憶する。次いで、認可応答が署名要求フラグビットを含むことをAEが検出した場合には、AEは、デバイス出荷時の鍵を用いて、受信されたtokenに署名する。
具体的には、AEがASの認可応答を受信した後に、AEはまず、認可応答からtokenとアクセス先リソースのURIとを取得し、すなわち、HTTP応答メッセージボディにおける「token」パラメータからアクセストークン「2YotnFZFEjr1zCsicMWpAA」を取得し、「res_uri」パラメータからアクセス先リソースのURI、すなわち、「/CSE0003/resource1」を取得し、アクセストークンとアクセス先リソースのURIとをバインドしてローカルで記憶する。記憶方法は、アクセストークンマッピング表を用いて実現されるものであってよく、または別の記憶方式が用いられる。具体的な実現形態において、どの記憶方法が用いられるかは、本発明の解決手段に影響を及ぼさない。本実施形態において、AE側は、アクセストークンマッピング表を用いてアクセス先リソースのURIとtokenとの間の対応関係を記憶すると仮定する。以下の表9に示すように、表9の各行は、AEにより既に取得されている1つの認可を示す。
表9 アクセストークンマッピング表
次いで、AEは、認可応答が署名要求フラグビット「SigReq」を含むか否かを検出する。認可応答が「SigReq」パラメータを含み、「SigReq」パラメータの値が「1」である場合、AEは、予め設定された署名アルゴリズムとデバイス出荷時の鍵とを用いてtokenに署名する。署名アルゴリズムは、MACまたはHMACのような一般的な署名アルゴリズムであってよい。具体的な実現形態において、どの署名アルゴリズムが用いられるかは、本発明の解決手段に影響を及ぼさない。本実施形態において、AEはMAC署名アルゴリズムを用い、上述のtokenを計算することにより取得される署名は「8456B1CD」であると仮定する。
段階634:AEがtokenの署名を完了した後に、AEが、認可サーバへの署名バインド要求を開始する。当該要求は、AE−ID1と、tokenと、token署名と、アクセス先リソースのURIとを含む。
具体的には、AEがtokenの署名を完了した後に、AEにより開始されるASへの署名バインド要求は、以下の通りであってよい。
PUT http://authzserver.things.com/dynamicauthz HTTP/1.1
From:/CSE0005/CAE0001
Content−type: application/onem2m−resource+json
{"token": "2YotnFZFEjr1zCsicMWpAA",
"token_sig": "8456B1CD",
"res_uri": "/CSE0003/resource1"}
PUT要求におけるURLアドレス、すなわち、「http://authzserver.things.com/dynamicauthz」は、ASの動的認可アドレスである。「From」は、署名バインド要求を開始するアクセスデバイスの識別子を示す。HTTPメッセージボディ中、「token」および「token_sig」のパラメータは、それぞれ、署名バインドを行う必要があるtokenと、token署名とを示す。
段階636:認可サーバが、AEの署名バインド要求を受信した後に、対応する認可関係を生成し、当該認可関係を認可関係マッピング表に記憶する。
具体的には、ASは、AEの署名バインド要求を受信した後に、まず現在の認可についての認可関係を生成する。認可関係は、アクセスデバイス識別子と、tokenと、token署名と、アクセス先リソースのURIとを少なくとも含む。次いで、ASは、生成された認可関係を認可関係マッピング表に付加する。認可関係マッピング表の構造は、表10に示すものであってよい。
表10 認可関係マッピング表
表10に示すように、この表の各行は、認可関係を示す。ASがAEの署名バインド要求を受信した後に、ASは、AEの署名バインド要求から対応するパラメータ値を取得し、その値を対応する認可関係に付加する。本実施形態において、ASは、表10における二番目の記録に記載されているように、対応する認可関係を生成し、その認可関係を認可関係マッピング表に付加する。
具体的な実現形態において、上述の認可関係マッピング表は、AS内の共通データベースを用いて維持されてよく、またはRESTfulリソースAuthzRelMapTableとして記述されてもよい。tokenに基づく認可アーキテクチャにおいて、AuthzRelMapTableリソースは、以下の図に示す形態で示されてよい。
表11 認可関係マッピング表リソースおよび属性の例
AuthzRelMapTableは、認可関係マッピング表リソースである。当該リソースは、いくつかの認可関係属性、すなわち、authzRecordリソースを含む。authzRecordは、認可関係リソースである。当該リソースは、以下の属性を含む。
subjectID:表10におけるアクセスデバイス識別子に対応する。
token:表10におけるtoken属性に対応する。
token_sig:表10におけるtoken署名属性に対応する。
res_uri:表10におけるアクセス先リソースのURI属性に対応する。
認可関係マッピング表の具体的な表現形態は、本発明において限定されるものではないことに留意されたい。
段階638:認可サーバが、署名バインド応答をAEに返す。
具体的には、ASが認可関係の記憶を完了した後に、ASによりAEに返される署名バインド応答は、以下の通りであってよい。
HTTP/1.1 200 OK
HTTP応答のステータスコードは「200」であり、これは、現在の署名バインド要求が既に完了していることを示し、AEは、tokenを用いて対応するリソースにアクセスしてよい。
本発明の本実施形態において、受信されたリソースアクセス要求がアクセストークンを含まないとリソースサーバが判定した場合、リソースサーバによりアクセスデバイスに返されるリソースアクセス応答は、認可サーバのURIを保持し、それによりアクセスデバイスは、認証認可を認可サーバに申請する。認可サーバは、ユーザ認証情報が有効であることを検証し、アクセストークンを生成する。認可サーバは、アクセスデバイス識別子と、アクセス先リソースのURIと、生成されたアクセストークンとをリソースサーバに送信し、それによりリソースサーバは、対応する認可関係を生成する。認可サーバは、生成されたアクセストークンとアクセス先リソースのURIとをAEに送信し、アクセストークンに署名するようAEに要求する。AEは、アクセス先リソースのURIとアクセストークンとの間の対応関係を記憶する。認可サーバは、アクセスデバイス識別子と、アクセス先リソースのURIと、アクセストークンと、アクセストークンの署名との間の対応関係を認可関係マッピング表に記憶する。
その後アクセス先リソースがアクセスされる必要がある場合、対応するアクセストークンがリソースアクセス要求に保持される必要がある。その後AEがアクセス先リソースにアクセスするときに、アクセスデバイス識別子が変更されている場合には、リソースサーバは、アクセス先リソースのURIおよびアクセストークンはリソースアクセス要求におけるものと一致するがアクセスデバイス識別子は一致しない、ローカルで存在する認可関係に従って、アクセスデバイス識別子が変更された可能性があると判定し、認可更新手順をトリガしてよい。
図7を参照すると、図7は、本発明に係る、OAuth認可アーキテクチャに基づいて行われる認可更新のフローチャートである。図6Aおよび図6Bの実施形態におけるAEが、アクセス位置の変更のような理由により異なるレジストラ(例えば、R−CSE2)に登録する場合、新たなレジストラR−CSE2が新たな識別子AE−ID2をAEに割り当ててよい。その結果、M2Mシステムにおける既存の認可関係は無効になる。図7の方法は、アクセス識別子が変更された後に認可関係を更新するための方法である。当該方法は、以下の段階を備える。
段階702および段階704:AEが、レジストラ2(R−CSE2)への登録要求を開始し、レジストラ2が、識別子AE−ID2をAEに割り当てる。
段階706:AEが、アクセス先リソースのURIに従って、当該リソースに対応するtokenをローカルで見つけ出し、リソースアクセス要求をリソースサーバ(H−CSE)に送信する。リソースアクセス要求は、AE−ID2と、アクセス先リソースのURIと、アクセス先リソースのURIに対応するtokenとを含む。
具体的には、図6Aおよび図6Bにおける方法の段階632で説明したように、初期認可が行われた後に、AEは、アクセス先リソースのURIとアクセストークンとの間の対応関係を記憶する。AEはまず、アクセス先リソースのURIに従って、ローカルで記憶された認可情報から対応するtokenを見つけ出し、次いでAEは、リソースアクセス要求をH−CSEに送信する。
段階708:リソースサーバが、AEにより送信されたリソースアクセス要求を受信し、アクセス制御判断を行う。
具体的には、段階626で説明したように、リソースサーバは、アクセス先リソースのURIと、AE−ID1と、対応するアクセストークンとの間の認可関係を記憶する。H−CSEは、リソースアクセス要求をパースして、アクセス先リソースのURIと、AE−ID2と、tokenとを取得する。アクセス先リソースがローカルで存在するとH−CSEが判定したときに、H−CSEが、authzProof属性値がtokenと同一であるもののsubjectID属性値がAE−ID2とは異なる認可記録を、アクセス先リソースの認可関係属性(authzRel)から見つけ出した場合には、リソースサーバは、認可更新手順を始める。
段階710:リソースサーバが、リソースアクセス応答をAEに返す。当該応答は、リダイレクト応答コードとリダイレクトURLとを含み、リダイレクトURLは、M2Mシステムにおける認可サーバの認可更新ポートを指定する。
具体的には、H−CSEは、AEにリソースアクセス応答を返す。例えば、H−CSEによりAEに返されるリソースアクセス応答は、以下の通りであってよい。
HTTP/1.1 302 Move temporarily
Location:http://authzserver.things.com/authzupdate#from=/CSE0006/CAE0003&res_uri= /CSE0003/resource1&token=2YotnFZFEjr1zCsicMWpAA
HTTP応答のステータスコードは「302」であり、これは、AEのリソースアクセス要求が新たなURLにリダイレクトされる必要があることを示す。「Location」は、リダイレクトURLを示す。リダイレクトURLは、M2Mシステムにおける認可サーバの認可更新ポートを指定する。例えば、http://authzserver.things.com/authzupdateは、認可サーバの動的認可アドレスである。「#from=/CSE0006/CAE0003&res_uri=/CSE0003/resource1&token=2YotnFZFEjr1zCsicMWpAA」は、リダイレクトされたリソースアクセス要求に添付される必要があるパラメータ情報であり、クエリストリングの形態で示される。上述の添付パラメータ情報の具体的な内容については、段階510における説明を参照のこと。本発明の本実施形態では詳細を説明しない。
段階712:AEが、リソースサーバのリソースアクセス応答を受信し、認可更新要求を認可サーバ(AS)に送信する。当該応答におけるLocationパラメータにおいて提供されるURLは、認可更新要求のアドレス中に用いられる。
具体的には、AEが、H−CSEのリソースアクセス応答を受信し、HTTPステータスコードを検出する。ステータスコードが「302」である場合、AEは、認可更新要求をASに送信する。例えば、AEによりASに送信される認可更新要求は、以下の通りである。
GET /authzupdate?from=/CSE0006/CAE0001&res_uri=CSE0003/resource1
&token=2YotnFZFEjr1zCsicMWpAA HTTP/1.1
Host: http://authzserver.things.com
リダイレクト応答におけるLocationパラメータは、以下の2つの部分に分けられる。つまり、GET要求におけるURLアドレス「/authzupdate?from=/CSE0006/CAE0001&res_uri=CSE0003/resource1&token=2YotnFZFEjr1zCsicMWpAA」は、認可サーバのローカル認可更新ポートアドレスと添付パラメータ情報とを示し、「Host」は、本実施形態では「http://authzserver.thnings.com」である、認可サーバのアドレスを記述する。AEは、認可更新要求をASに送信する場合、Hostパラメータを用いるのではなく、GET要求を直接用いて、リダイレクト応答におけるLocationパラメータにおいて提供されるリダイレクトURLにアクセスしてよい。例えば、認可更新要求は、以下の通りであってよい。
GET http://authzserver.things.com/authzupdate?from=/CSE0006/CAE0001
&res_uri=/CSE0003/resource1&token=2YotnFZFEjr1zCsicMWpAA HTTP/1.1
段階714:認可サーバが、AEの認可更新要求を受信した後に、認可更新要求におけるtokenに対応する、ローカルで存在する認可関係を判定する。
具体的には、ASがAEの認可更新要求を受信した後に、ASはまず、認可更新要求のクエリストリングをパースして、tokenとアクセス先リソースのURIとを取得する。例えば、tokenは「2YotnFZFEjr1zCsicMWpAA」であり、アクセス先リソースのURIは「/CSE0003/resource1」である。次いで、ASは、「Token」列の値が「2YotnFZFEjr1zCsicMWpAA」であり、「アクセス先リソースのURI」列の値が「/CSE0003/resource1」である認可関係を、ローカルで記憶された認可関係マッピング表から検索する。認可関係マッピング表が、段階636における表11で説明したRESTfulリソースAuthzRelMapTableを用いて実現される場合、token値が「2YotnFZFEjr1zCsicMWpAA」に等しくres_uriが「/CSE0003/resource1」に等しいauthzRecord認可関係が、AuthzRelMapTable属性から検索される。上述の条件を満足する認可記録がない場合には、ASは、AEの認可更新要求を拒否し、認可更新失敗応答:HTTP/1.1 404 Not FoundをAEに返す。HTTP応答のステータスコードは「404」であり、これは、ASが、対応する認可記録を見つけ出さなかったことを示す。条件を満足する認可関係があった場合には、ASは、認可更新応答をAEに返して、tokenに署名するようAEに要求する。
段階716:認可サーバが、認可更新応答をAEに返す。当該応答は、HTTP202応答コードと、tokenと、署名要求フラグビットとを含む。
具体的には、ASが認可更新手順を始めた後に、ASによりAEに返される認可更新応答は、以下の通りである。
HTTP/1.1 202 Accepted
Content−type: application/onem2m−resource+json
{"token": "2YotnFZFEjr1zCsicMWpAA",
"SigReq": "1"}
HTTP応答のステータスコードは「202」であり、これは、ASが既にAEの認可更新要求を受理していることを示す。しかしながら、後続の処理にはさらなる情報が必要である。HTTPメッセージボディ中、「"token": "2YotnFZFEjr1zCsicMWpAA"」は、tokenに対応する認可関係に署名が要求されていることを示す。AEは、当該認可関係に対応する検証情報に署名する必要がある。本実施形態において、検証情報はtokenである。具体的な実現形態においては、他の情報(例えば、元のAE−ID)が検証情報として用いられてよい。これは、ASの認可更新ポートの具体的な実現形態に依存する。HTTPメッセージボディ中、「"SigReq": "1"」は署名要求フラグビットであり、これは、ASがAEのアイデンティティを確認できるよう、AEがtoken署名データをさらに提供する必要があることを示す。
具体的な実現形態において、検証情報tokenは、認可更新応答に必須のものではないことに留意されたい。
段階718:AEが、受信されたリソースアクセス応答が署名要求フラグビットを含むことを検出した場合、デバイス出荷時の鍵を用いて、受信されたtokenに署名する。
具体的には、AEがH−CSEのリソースアクセス応答を受信した後に、HTTP応答のステータスコードが「202」であること、および、HTTPメッセージボディが値「1」の「SigReq」パラメータを含むことをAEが検出した場合、AEは、tokenに署名する。
段階720:AEがtokenの署名を完了した後に、AEが、認可サーバへの署名検証要求を開始する。当該要求は、AE−ID2と、tokenと、token署名とを含む。
具体的には、AEがtokenの署名を完了した後に、AEにより開始されるASへの署名検証要求は、以下の通りである。
PUT http://authzserver.things.com/authzupdate HTTP/1.1
From:/CSE0006/CAE0001
Content−type: application/onem2m−resource+json
{"token": "2YotnFZFEjr1zCsicMWpAA",
"token_sig": "8456B1CD",
"res_uri": "/CSE0003/resource1"}
各パラメータの解説については、段階634における説明を参照のこと。本発明の本実施形態では詳細を説明しない。
段階722:認可サーバが、AEの署名検証要求からtokenおよびtoken署名を取得し、次いで、tokenに対応する認可関係を認可関係マッピング表から検索し、署名検証要求におけるtoken署名が当該認可関係におけるtoken署名と一致するか否かを検証する。
具体的には、ASがAEの署名検証要求を受信した場合、ASはまず、AEの署名検証要求をパースして、token値「2YotnFZFEjr1zCsicMWpAA」およびtoken署名値「8456B1CD」を取得する。次いで、ASは、「Token」列における値が「2YotnFZFEjr1zCsicMWpAA」に等しい認可関係を、ローカルで記憶された認可関係マッピング表から検索し、当該認可関係の「Token署名」列が「8456B1CD」に等しいか否かを比較する。対応する認可記録における「Token署名」列が「8456B1CD」に等しくない場合には、ASは、署名検証失敗応答をAEに返す。当該応答は、HTTP403応答コード、例えば、HTTP/1.1 403 Forbiddenを含む。「Token署名」列が「8456B1CD」に等しい場合には、ASは、認可関係を更新する、すなわち、tokenに対応する認可関係におけるアクセスデバイス識別子AE−ID1を、現在のアクセスデバイス識別子AE−ID2に変更する。
段階724:認可サーバが、第2認可更新要求をリソースサーバに送信する。当該要求は、アクセス先リソースのURIと、tokenと、AE−ID2とを含む。
具体的には、ASが認可記録を更新する場合、ASにより開始されるH−CSEへの認可更新要求は、以下の通りであってよい。
PUT http://m2m.things.com/CSE0003/resource1 HTTP/1.1
From:/CSE0006/CAE0003
Content−type: application/onem2m−resource+json
{"token": "2YotnFZFEjr1zCsicMWpAA"}
PUT要求におけるURLは、更新される必要があるアクセス先リソースのURI、すなわち、「/CSE0003/resource1」を示す。「From」は、新たなアクセスデバイス識別子AE−ID2、すなわち、「/CSE0006/CAE0003」を示す。HTTPメッセージボディ中、「"token": "2YotnFZFEjr1zCsicMWpAA"」は、アクセスデバイスとアクセス先リソースのURIとに対応するアクセストークンの具体的な値が「2YotnFZFEjr1zCsicMWpAA」であることを示す。
段階726:リソースサーバが、認可サーバの第2認可更新要求を受信した後に、アクセス先リソースのURIに従って、ローカルで記憶されたアクセス先リソースresource1を見つけ出し、アクセストークンがtokenである認可記録をresource1の認可関係属性から検索し、認可記録におけるアクセスデバイス識別子をAE−ID2に更新する。
具体的には、H−CSEがASの認可更新要求を受信した後に、H−CSEはまず、認可更新要求のURLから、アクセス先リソースのURI、すなわち、「/CSE0003/resource1」を取得し、リソースresource1をローカルで見つけ出す。次いで、H−CSEは、認可更新要求における「From」ヘッダフィールドとHTTPメッセージボディとを別々にパースして、tokenおよびAE−ID2の値、すなわち、tokenが「2YotnFZFEjr1zCsicMWpAA」でありAE−ID2が「/CSE0006/CAE0001」である値を取得し、アクセストークンがtokenである認可記録をresource1の認可関係属性から検索し、認可記録におけるアクセスデバイス識別子をAE−ID2に更新する。具体的には、H−CSEは、authzProof属性値が「2YotnFZFEjr1zCsicMWpAA」に等しい認可記録を、resource1のauthzRel属性から検索し、次いで、認可記録における対応するsubjectID属性値を「/CSE0006/CAE0003」に変更する。
段階728:リソースサーバが、ローカル認可更新を完了した後に、第2認可更新応答を認可サーバに返す。当該応答は、HTTP200ステータスコードを含む。
具体的には、H−CSEがローカル認可更新を完了した後に、H−CSEによりASに返される認可更新応答は、以下の通りである。
HTTP/1.1 200 OK
HTTP応答のステータスコードは「200」であり、これは、H−CSEが、当該リソースに対応する認可更新を既に完了していることを示す。
段階730:認可サーバが、署名検証応答をAEに返す。当該応答は、HTTP200応答コードを含む。
具体的には、ASがH−CSEの認可更新応答を受信した後に、ASによりAEに返される署名検証応答は、以下の通りである。
HTTP/1.1 200 OK
HTTP応答のステータスコードは「200」であり、これは、ASが署名検証を既に完了していること、および、M2Mシステムが認可更新を既に完了していることを示す。
段階732:M2Mシステムが認可更新を既に完了しているとAEが判定した後に、AEが、既存のリソースアクセス手順に従って、H−CSEへのリソースアクセス要求を開始し、対応するリソースを取得してよい。
本発明の本実施形態においては、M2MシステムにおけるAEのようなM2Mデバイスが、識別子が変更された後にアクセス先リソースにアクセスした場合、リソースサーバが認可関係更新手順をトリガする。M2Mシステムは、アクセスデバイスの検証情報の署名(token署名)を検証することによりアクセスデバイスのアイデンティティを判定し、既存の認可関係を更新する。よって、M2Mデバイスはシームレスなリソースアクセスを実現することができ、M2Mシステムのサービス連続性が保証される。
図6Aおよび図6Bにおける認可処理方法から、アクセスデバイスのリソースアクセスを認可するのにOAuth認可アーキテクチャがM2Mシステムにおいて用いられる場合、認可サーバは、アクセスデバイス識別子と、tokenと、token署名と、アクセス先リソースのURIとに対応する認可関係を記憶し、リソースサーバは、アクセスデバイス識別子と、tokenと、アクセス先リソースのURIとに対応する認可関係を記憶することがわかる。アクセスデバイス識別子が変更された後に、アクセス先リソースへのアクセスがリソースサーバから要求される場合、リソースサーバは、当該アクセスを拒否し、認可更新のためにアクセスデバイスのリソースアクセス要求を認可サーバへとリダイレクトする。認可サーバは、検証情報の署名、すなわち、token署名に従ってアクセスデバイスのアイデンティティを判定し、さらにM2Mシステムにおける認可関係を更新する。実際には、リソースサーバが、アクセスデバイスのアイデンティティを検証し、さらにM2Mシステムにおける認可関係を更新してよい。
図8を参照すると、図8は、本発明に係る、OAuth認可アーキテクチャに基づいて行われる別の認可更新のフローチャートである。
段階802から段階808は、図7の実施形態における段階702から段階708と同一である。関連する説明については、図7の実施形態における関連する段階を参照のこと。ここでは詳細を再度説明しない。
段階810:リソースサーバが、署名データ要求を認可サーバ(AS)に送信する。当該要求は、tokenを含む。
具体的には、H−CSEが認可更新手順を開始する場合、H−CSEにより認可サーバに送信される署名データ要求は、以下の通りである。
GET http://authzserver.things.com/sigquery?token=2YotnFZFEjr1zCsicMWpAA HTTP/1.1
「http://authzserver.things.com/sigquery」は、認可サーバの署名データ要求ポートアドレスである。「?token=2YotnFZFEjr1zCsicMWpAA」は、署名が要求される対象の対応するアクセストークンであり、クエリストリングの形態で示される。
段階812:認可サーバが、署名データ要求におけるtokenに対応する、認可関係における署名を、ローカル認可関係マッピング表から取得する。
具体的には、ASは、H−CSEの署名データ要求を受信した後に、まず署名データ要求におけるクエリストリングをパースして、token値、例えば、「2YotnFZFEjr1zCsicMWpAA」を取得する。次いで、ASは、ローカルで記憶された認可関係マッピング表から検索を行って、tokenが、署名データ要求におけるものと同一である認可関係を「Token」列から検索し、対応する認可関係における「Token署名」値を取得する。例えば、段階636で説明した認可関係マッピング表(表10)において、値が「2YotnFZFEjr1zCsicMWpAA」に等しい認可関係が「Token」列から検索され、次いで、当該認可関係における「Token署名」、すなわち、「8456B1CD」が抽出される。
段階814:認可サーバが、署名データ応答をリソースサーバに返す。署名データ応答は、token署名を含む。
具体的には、ASによりH−CSEに返される署名データ応答は、以下の通りである。
HTTP/1.1 200 OK
Content−type: application/onem2m−resource+json
{"token_sig": "8456B1CD"}
HTTP応答のステータスコードは「200」であり、これは、現在の署名データ要求が既に認可されていることを示す。HTTPメッセージボディ中、「"token_sig": "8456B1CD"」は、要求されるtoken署名値が「8456B1CD」であることを示す。
段階816:リソースサーバが、リソースアクセス応答をAEに返す。当該応答は、署名要求フラグビットを含む。
具体的には、H−CSEがASの署名データ応答を受信した後に、H−CSEによりAEに返されるリソースアクセス応答は、以下の通りであってよい。
HTTP/1.1 202 Accepted
Content−type: application/onem2m−resource+json
{"token": "2YotnFZFEjr1zCsicMWpAA",
"SigReq": "1"}
HTTP応答のステータスコードは「202」であり、これは、現在のリソースアクセス要求が既に処理されていることを示す。しかしながら、後続の処理にはさらなる情報が必要である。HTTPメッセージボディ中、「"token": "2YotnFZFEjr1zCsicMWpAA"」は、AEにより提供される必要がある署名データが、tokenに対応することを示す。当該パラメータは、主に、AEにより開始される複数のリソースアクセス要求をH−CSEが同時に処理する場合に用いられ、当該パラメータは、AEが異なるリソースアクセス応答メッセージを区別することを確実にするべく用いられる。「"SigReq": "1"」は、H−CSEがAEのアイデンティティを確認できるよう、AEがtoken署名データをさらに提供する必要があることを示す、署名要求フラグビットである。
段階818:AEが、受信されたリソースアクセス応答が署名要求フラグビットを含むことを検出した場合、デバイス出荷時の鍵を用いて、受信されたtokenに署名する。
この段階は、段階718と同一である。段階718における関連する説明を参照のこと。ここでは詳細を再度説明しない。
段階820:AEがtokenの署名を完了した後に、AEが、H−CSEへのリソースアクセス要求を再開する。当該要求は、AE−ID2と、初期認可の間に取得されたtokenと、token署名と、リソースURIとを含む。
具体的には、AEがtokenの署名を完了した後に、AEにより開始されるH−CSEへのリソースアクセス要求は、以下の通りであってよい。
GET http://m2m.things.com/CSE0003/resource1?from=/CSE0006/CAE0001
&token=2YotnFZFEjr1zCsicMWpAA&token_sig=8456B1CD HTTP/1.1
段階806で説明したリソースアクセス要求と比較して、この段階では、リソースアクセス要求に保持される情報に、アクセストークン署名パラメータ、すなわち、「token_sig=8456B1CD」が付加される。「token_sig=8456B1CD」は、現在のリソースアクセス要求が、アクセストークンのみを保持するのではなく、アクセストークンに対応する署名データも保持することを示す。
段階822:H−CSEが、AEのリソースアクセス要求を受信した後に、リソースアクセス要求からtoken署名を取得し、token署名が、段階814で認可サーバから取得されたtoken署名と同一であるか否かを判定する。
具体的には、H−CSEがAEのリソースアクセス要求を受信した後に、H−CSEはまず、リソースアクセス要求におけるHTTPメッセージボディをパースしてtoken署名を取得する、すなわち、「token_sig」パラメータに対応する値「8456B1CD」を取得する。次いで、H−CSEは、リソースアクセス要求におけるtoken署名を、段階814における署名データ応答におけるtoken署名と比較する。例えば、本実施形態では、上述のtoken署名の両方の値が「8456B1CD」である。これらtoken署名が同一である場合、H−CSEは、リソースアクセス要求のアクセスデバイス、すなわち、AEと、初期認可におけるAEとが同一のアクセスデバイスであることを確認する。これらtoken署名が異なる場合には、リソースサーバは、アクセスデバイスのアクセスを拒否し、手順は終了する。
段階824:署名が有効であることをリソースサーバが確認した後に、H−CSEが、ASへの認可更新要求を開始する。当該要求は、tokenとAE−ID2とを含む。
具体的には、H−CSEがAEと初期認可におけるアクセスデバイスとの間の対応関係を確認した後に、H−CSEにより開始されるASへの認可更新要求は、以下の通りであってよい。
PUT http://authzserver.things.com/authzupdate HTTP/1.1
From:/CSE0006/CAE0001
Content−type: application/onem2m−resource+json
{"token": "2YotnFZFEjr1zCsicMWpAA"}
PUT要求におけるURLアドレス、すなわち、「http://authzserver.things.com/authzupdate」は、ASの認可更新ポートアドレスである。「From」は、認可更新を必要とするアクセスデバイスの新たな識別子AE−ID2、すなわち、「/CSE0006/CAE0003」を示す。HTTPメッセージボディ中、「token」は、更新される必要がある認可関係における、対応するtokenの値を示す。すなわち、更新される必要がある認可関係におけるtoken値は、「2YotnFZFEjr1zCsicMWpAA」である。このパラメータは、ASが、更新される必要がある認可関係を見つけ出すことを確実にするべく用いられる。
段階826:認可サーバが、ローカルで記憶された認可関係マッピング表を更新する。
具体的には、ASは、H−CSEの認可更新要求を受信した後に、まず認可更新要求をパースして、アクセスデバイスの新たな識別子「/CSE0006/CAE0003」と、現在のリソースアクセス要求に対応する認可関係におけるtoken値「2YotnFZFEjr1zCsicMWpAA」とを取得する。次いで、ASは、「Token」列の値が「2YotnFZFEjr1zCsicMWpAA」である認可関係を、ローカルで記憶された認可関係マッピング表から検索する。認可関係マッピング表は、段階636において表10で説明したものである。ASは、対応する認可関係を見つけ出した後に、当該認可関係における「アクセスデバイス識別子」列の元の値「/CSE0005/CAE0001」を、認可更新要求における新たな識別子「/CSE0006/CAE0003」で置き換える。認可関係マッピング表が、段階636で説明したRESTfulリソースAuthzRelMapTableを用いて実現される場合、認可更新は、token値が「2YotnFZFEjr1zCsicMWpAA」に等しいauthzRecord認可関係がAuthzRelMapTable属性から検索されること、および、認可関係におけるsubjectIDが「/CSE0006/CAE0003」に更新されることである。
段階828:認可サーバが、認可関係マッピング表の更新が完了した後に、認可更新応答をリソースサーバに返す。
具体的には、ASが認可関係マッピング表の更新を完了した後に、ASによりH−CSEに返される認可更新応答は、以下の通りである。
HTTP/1.1 200 OK
HTTP応答のステータスコードは「200」であり、これは、ASが認可関係マッピング表の更新に既に成功していることを示す。
段階830:リソースサーバが、認可サーバの認可更新応答を受信した後に、アクセス先リソースに関連付けられた認可関係を更新する。
具体的には、H−CSEは、ASの認可更新応答を受信した後に、authzProofがtoken(「2YotnFZFEjr1zCsicMWpAA」)に等しい認可関係を、アクセス先リソースのauthzRel属性から検索し、認可関係におけるsubjectID値を「/CSE0006/CAE0003」に更新する。
段階832:リソースサーバが、アクセス先リソースに関連付けられた認可関係の更新を完了した後に、共通のリソースアクセス手順に従って、リソースアクセス応答をAEに返す。
具体的には、H−CSEが、アクセス先リソースに関連付けられた認可関係の更新を完了した後に、H−CSEによりAEに返されるリソースアクセス応答は、以下の通りであってよい。
HTTP/1.1 200 OK
Content−type: application/onem2m−resource+json
{"content": "xxxxxxxxxxxxx"}
当該応答のステータスコードは「200」であり、これは、H−CSEがAEの現在のリソースアクセス要求を既に認可していることを示す。HTTPメッセージボディは、AEにより要求されるリソースコンテンツを含む。本実施形態において、「"content": "xxxxxxxxxxxxx"」は、リソースコンテンツがHTTPメッセージボディに含まれ、AEに返されることを示しているに過ぎない。返すときの具体的なフォーマットおよび内容は、アクセス先リソースの種類に従って決まる。これは本発明において限定されるものではない。
本発明の本実施形態においては、M2MシステムにおけるAEのようなM2Mデバイスが、識別子が変更された後にアクセス先リソースにアクセスした場合、リソースサーバが認可関係更新手順をトリガする。M2Mシステムは、アクセスデバイスの検証情報の署名(token署名)を検証することによりアクセスデバイスのアイデンティティを判定し、既存の認可関係を更新する。よって、M2Mデバイスはシームレスなリソースアクセスを実現することができ、M2Mシステムのサービス連続性が保証される。
本発明の実施形態において、図2に示す実施形態と同一の発明的構想に属する認可サーバについてさらに説明する。図9に示すように、図9は、本発明の一実施形態に係る認可サーバの概略構造図である。認可サーバは、受信モジュール901と、送信モジュール902と、取得モジュール903と、判定モジュール904と、更新モジュール905とを備えてよい。
受信モジュール901は、アクセスデバイスにより送信された第1認可更新要求を受信するよう構成される。第1認可更新要求は、アクセスデバイスの第1識別子を含む。
送信モジュール902は、第1認可更新応答をアクセスデバイスに送信するよう構成される。第1認可更新応答は、署名要求情報を含み、署名要求情報は、検証情報に署名するようアクセスデバイスに命令する。
受信モジュール901は、アクセスデバイスにより送信された署名検証要求を受信するようさらに構成される。署名検証要求は、第1識別子と、検証情報と、検証情報の署名とを含み、検証情報の署名は、アクセスデバイスが鍵を用いて検証情報に署名することにより生成される。
取得モジュール903は、受信モジュールにより受信された署名検証要求における検証情報に従って、記憶された第1認可関係を取得するよう構成される。
判定モジュール904は、受信された署名検証要求における検証情報の署名と第1認可関係に記憶された検証情報の署名とに従って、署名検証要求における検証情報の署名が有効であると判定するよう構成される。
更新モジュール905は、第1識別子に従って、第1認可関係を更新するよう構成される。
更新モジュールは、具体的には、第1認可関係における第2識別子を第1識別子に変更するよう構成される。第2識別子は、アクセスデバイスにより用いられていた識別子である。
具体的には、認可サーバは、アクセス先リソースの識別子に対応するリソースへのアクセスデバイスによるアクセスに対して初期認可を行うよう構成された初期認可モジュールをさらに含む。
任意選択的に、検証情報が、アクセスデバイスにより記憶された第2識別子である場合、署名検証要求は、第1識別子の署名をさらに含む。第1識別子の署名は、アクセスデバイスが鍵を用いて第1識別子に署名することにより生成される。更新モジュール905は、第1認可関係に記憶された検証情報の署名を第1識別子の署名に変更するようさらに構成される。 初期認可モジュールは、具体的には、リソース作成要求をリソースサーバに送信することであって、リソース作成要求は、予め設定されたアクセス制御ポリシーとアクセス先リソースの識別子とを含み、予め設定されたアクセス制御ポリシーは、第2識別子を含む、ことと、リソースサーバにより送信されたリソース作成応答を受信することであって、リソース作成応答は、リソースサーバがアクセス制御ポリシーリソースを作成することに成功し、アクセス制御ポリシーリソースをアクセス先リソースの識別子に対応するリソースにバインドすることに成功したことを示すものであり、アクセス制御ポリシーリソースは、予め設定されたアクセス制御ポリシーを記録するのに用いられる、ことと、署名要求をアクセスデバイスに送信することであって、署名要求は、第2識別子に署名するようアクセスデバイスに命令するものである、ことと、アクセスデバイスにより送信された署名応答を受信することであって、署名応答は、第2識別子の署名を含む、ことと、第1認可関係を記憶することであって、第1認可関係は、第2識別子と、第2識別子の署名と、アクセス先リソースの識別子との間の対応関係を含む、こととを行うよう構成される。任意選択的に、送信モジュール902は、第1認可関係が第1識別子に従って更新された後に、第2認可更新要求をリソースサーバに送信することであって、第2認可更新要求は、第1識別子と、第2識別子と、アクセス先リソースの識別子とを含み、それによりリソースサーバは、第2識別子とアクセス先リソースの識別子とに従って、ローカルで記憶された第2認可関係を取得する、ことと、第2認可関係における第2識別子を第1識別子に更新することとを行うようさらに構成される。
任意選択的に、検証情報が認可クレデンシャルである場合、第1認可更新要求は、認可クレデンシャルをさらに含み、判定モジュール904は、第1認可更新応答がアクセスデバイスに送信される前に、認可クレデンシャルに従って、認可クレデンシャルを含む第1認可関係が存在すること、および、第1認可関係においてバインドされているアクセスデバイス識別子が第1識別子ではないことを判定するようさらに構成される。初期認可モジュールは、具体的には、アクセスデバイスの認可要求を受信することであって、認可要求は、第2識別子と、アクセス先リソースの識別子と、ユーザがアクセスデバイスのリソースアクセスに同意するという認証情報とを含む、ことと、認証情報に従って、ユーザがアクセス先リソースの識別子に対応するリソースにアクセスする権限を有すると判定された場合、認可クレデンシャルを生成することと、アクセス先リソースの識別子に対応するリソースが位置するリソースサーバに認可バインド要求を送信することであって、認可バインド要求は、第2識別子と、認可クレデンシャルと、アクセス先リソースの識別子とを含む、ことと、リソースサーバにより送信された認可バインド応答を受信することであって、認可バインド応答は、第2識別子と、認可クレデンシャルと、アクセス先リソースの識別子とのバインドが成功したことを示す情報を含む、ことと、認可応答をアクセスデバイスに送信することであって、認可応答は、認可クレデンシャルと、アクセス先リソースの識別子と、認可クレデンシャルに署名するよう命令する情報とを含む、ことと、アクセスデバイスにより送信された署名バインド要求を受信することであって、署名バインド要求は、第2識別子と、認可クレデンシャルと、認可クレデンシャルの署名と、アクセス先リソースの識別子とを含み、認可クレデンシャルの署名は、アクセスデバイスが鍵を用いて認可クレデンシャルに署名することにより生成される、ことと、第1認可関係を記憶することであって、第1認可関係は、第2識別子と、認可クレデンシャルと、認可クレデンシャルの署名と、アクセス先リソースの識別子との間の対応関係を含む、こととを行うよう構成される。任意選択的に、送信モジュール902は、第1認可関係が第1識別子に従って更新された後に、第2認可更新要求をリソースサーバに送信することであって、第2認可更新要求は、第1識別子と、認可クレデンシャルと、アクセス先リソースの識別子とを含み、それによりリソースサーバは、認可クレデンシャルとアクセス先リソースの識別子とに従って、第2認可関係を取得する、ことと、第2認可関係における第2識別子を第1識別子に更新することとを行うようさらに構成される。
図10は、本発明の別の実施形態に係る認可サーバの構造を説明する。認可サーバは、図2、図4、図5、図6Aおよび図6B、ならびに図7における上述の実施形態における認可サーバにより実現される認可処理方法を行うよう構成され、少なくとも1つのプロセッサ1001(例えば、CPU)と、少なくとも1つのネットワークインターフェース1002または別の通信インターフェースと、メモリ1003と、これらの装置の間の接続および通信を実現するよう構成された少なくとも1つの通信バス1004とを備える。プロセッサ1001は、メモリ1003に記憶されたコンピュータプログラムのような、実行可能プログラムを実行するよう構成されている。メモリ1003は、高速ランダムアクセスメモリ(RAM: Random Access Memory)を含んでよく、または、不揮発性メモリ(non−volatile memory)、例えば、少なくとも1つの磁気ディスクストレージをさらに含んでもよい。少なくとも1つのネットワークインターフェース1002(これは有線または無線であってよい)は、インターネット、ワイドエリアネットワーク、ローカルエリアネットワーク、またはメトロポリタンエリアネットワーク等を用いて、認可サーバと少なくとも1つの他のネットワーク要素との間の通信接続を実現してよい。
いくつかの実現形態において、メモリ1003は、プログラム10031を記憶する。プログラム10031は、プロセッサ1001により実行されてよい。当該プログラムは、アクセスデバイスにより送信された第1認可更新要求を受信することであって、第1認可更新要求は、アクセスデバイスの第1識別子を含む、ことと、第1認可更新応答をアクセスデバイスに送信することであって、第1認可更新応答は、署名要求情報を含み、署名要求情報は、検証情報に署名するようアクセスデバイスに命令する、ことと、アクセスデバイスにより送信された署名検証要求を受信することであって、署名検証要求は、第1識別子と、検証情報と、検証情報の署名とを含み、検証情報の署名は、アクセスデバイスが鍵を用いて検証情報に署名することにより生成される、ことと、検証情報に従って、記憶された第1認可関係を取得することと、受信された署名検証要求における検証情報の署名と第1認可関係に記憶された検証情報の署名とに従って、署名検証要求における検証情報の署名が有効であると判定することと、第1識別子に従って第1認可関係を更新することとを備える。
本発明の実施形態において、図3に示す実施形態と同一の発明的構想に属するリソースサーバについてさらに説明する。図11に示すように、図11は、本発明の一実施形態に係るリソースサーバの概略構造図である。リソースサーバは、受信モジュール1101と、判定モジュール1102と、送信モジュール1103と、更新モジュール1104とを備えてよい。
受信モジュール1101は、アクセスデバイスにより送信された第1リソースアクセス要求を受信するよう構成される。第1リソースアクセス要求は、アクセスデバイスの第1識別子と、アクセス先リソースの識別子と、認可クレデンシャルとを含む。
判定モジュール1102は、認可クレデンシャルに従って、認可クレデンシャルとアクセス先リソースの識別子とを含む第2認可関係が存在すること、および、第2認可関係においてバインドされているアクセスデバイス識別子が第1識別子ではないことを判定するよう構成される。
送信モジュール1103は、第1リソースアクセス応答をアクセスデバイスに送信するよう構成される。第1リソースアクセス応答は、署名要求情報を含み、署名要求情報は、認可クレデンシャルに署名するようアクセスデバイスに命令する。
受信モジュール1101は、アクセスデバイスにより送信された第2リソースアクセス要求を受信するようさらに構成される。第2リソースアクセス要求は、第1識別子と、認可クレデンシャルと、認可クレデンシャルの署名と、アクセス先リソースの識別子とを含み、認可クレデンシャルの署名は、アクセスデバイスが鍵を用いて認可クレデンシャルに署名することにより生成される。
送信モジュール1103は、署名データ要求を認可サーバに送信するようさらに構成される。署名データ要求は、認可クレデンシャルを含む。
受信モジュール1101は、認可サーバにより送信された署名データ応答を受信するようさらに構成される。署名データ応答は、認可クレデンシャルの署名を含み、認可クレデンシャルの署名は、第1認可関係に記憶され、認可サーバにより認可クレデンシャルに従って取得される。
判定モジュール1102は、第2リソースアクセス要求における認可クレデンシャルの署名と、認可サーバにより送信された認可クレデンシャルの署名とに従って、第2リソースアクセス要求における認可クレデンシャルの署名が有効であると判定するようさらに構成される。
更新モジュール1104は、第1識別子に従って第2認可関係を更新するよう構成される。
任意選択的に、更新モジュールが、第1識別子に従って第2認可関係を更新するよう構成されることは、具体的には、第2認可関係における第2識別子を第1識別子に変更することである。第2識別子は、アクセスデバイスにより用いられていた識別子である。
送信モジュール1103は、第2認可関係が第1識別子に従って更新された後に、第2リソースアクセス応答をアクセスデバイスに送信するようさらに構成される。第2リソースアクセス応答は、アクセス先リソースの識別子に対応するリソースを含む。
具体的には、受信モジュール1101は、アクセス先リソースの識別子に対応するリソースへのアクセスデバイスによるアクセスに対して初期認可を認可サーバが行った後に送信された認可バインド要求を受信するようさらに構成される。認可バインド要求は、第2識別子と、認可クレデンシャルと、アクセス先リソースの識別子とを含む。リソースサーバは、第2識別子と、認可クレデンシャルと、アクセス先リソースの識別子との間の対応関係を第2認可関係として記憶するよう構成された記憶モジュールをさらに備える。
図12は、本発明の別の実施形態に係るリソースサーバの構造を説明する。リソースサーバは、図3、図6Aおよび図6B、ならびに図8における上述の実施形態におけるリソースサーバにより実現される認可処理方法を行うよう構成され、少なくとも1つのプロセッサ1201(例えば、CPU)と、少なくとも1つのネットワークインターフェース1202または別の通信インターフェースと、メモリ1203と、これらの装置の間の接続および通信を実現するよう構成された少なくとも1つの通信バス1204とを備える。プロセッサ1201は、メモリ1203に記憶されたコンピュータプログラムのような、実行可能プログラムを実行するよう構成されている。メモリ1203は、高速ランダムアクセスメモリ(RAM: Random Access Memory)を含んでよく、または、不揮発性メモリ(non−volatile memory)、例えば、少なくとも1つの磁気ディスクストレージをさらに含んでもよい。少なくとも1つのネットワークインターフェース1202(これは有線または無線であってよい)は、インターネット、ワイドエリアネットワーク、ローカルエリアネットワーク、またはメトロポリタンエリアネットワーク等を用いて、リソースサーバと少なくとも1つの他のネットワーク要素との間の通信接続を実現してよい。
いくつかの実現形態において、メモリ1203は、プログラム12031を記憶する。プログラム12031は、プロセッサ1201により実行されてよい。当該プログラムは、アクセスデバイスにより送信された第1リソースアクセス要求を受信することであって、第1リソースアクセス要求は、アクセスデバイスの第1識別子と、アクセス先リソースの識別子と、認可クレデンシャルとを含む、ことと、認可クレデンシャルに従って、認可クレデンシャルとアクセス先リソースの識別子とを含む第2認可関係が存在すること、および、第2認可関係においてバインドされているアクセスデバイス識別子が第1識別子ではないことを判定することと、第1リソースアクセス応答をアクセスデバイスに送信することであって、第1リソースアクセス応答は、署名要求情報を含み、署名要求情報は、認可クレデンシャルに署名するようアクセスデバイスに命令するものである、ことと、アクセスデバイスにより送信された第2リソースアクセス要求を受信することであって、第2リソースアクセス要求は、第1識別子と、認可クレデンシャルと、認可クレデンシャルの署名と、アクセス先リソースの識別子とを含み、認可クレデンシャルの署名は、アクセスデバイスが鍵を用いて認可クレデンシャルに署名することにより生成される、ことと、署名データ要求を認可サーバに送信することであって、署名データ要求は、認可クレデンシャルを含む、ことと、認可サーバにより送信された署名データ応答を受信することであって、署名データ応答は、認可クレデンシャルの署名を含み、認可クレデンシャルの署名は、第1認可関係に記憶され、認可サーバにより認可クレデンシャルに従って取得される、ことと、第2リソースアクセス要求における認可クレデンシャルの署名と、認可サーバにより送信された認可クレデンシャルの署名とに従って、第2リソースアクセス要求における認可クレデンシャルの署名が有効であると判定することと、第1識別子に従って第2認可関係を更新することとを備える。
上述の方法の実施形態は、説明を平易にするべく、一連の動作として説明されていることに留意されたい。しかしながら、本発明によれば、いくつかの段階は他の順序で行われても、または同時に行われてもよいので、当業者であれば、本発明が説明されている動作の順序に限定されるものではないことは理解されよう。加えて、当業者であれば、本明細書で説明されている全ての実施形態は例示的な実施形態であり、それに関連する動作およびモジュールは、本発明に必須のものでは必ずしもないことも理解されよう。
装置およびシステム内のモジュール間での情報交換および実行プロセスのような内容は、本発明の方法の実施形態と同一の考え方に基づくものである。よって、詳細な内容については、本発明の方法の実施形態における説明を参照されたく、ここでは詳細を再度説明しない。
実施形態における方法のプロセスの全てまたは一部が、関連するハードウェアに命令を行うコンピュータプログラムによって実現されてよいことは、当業者には理解されよう。当該プログラムは、コンピュータ可読記憶媒体に記憶されてよい。当該プログラムが動作する場合、実施形態における方法のプロセスが行われる。上述の記憶媒体は、磁気ディスク、光ディスク、リードオンリーメモリ(Read−Only Memory, ROM)、またはランダムアクセスメモリ(Random Access Memory, RAM)を含んでよい。
本明細書では、具体的な例を用いて本発明の原理および実現方式を説明している。上述の実施形態についての説明は、本発明の方法および考え方を理解する一助とすることを意図したものに過ぎない。加えて、実現方式および適用範囲に対しては、本発明の考え方に従って当業者により変形が施されてよい。よって、本明細書は、本発明を限定するものとして解釈されないこととする。