IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7049480アクセス管理されたリソースへの所在地ベースのアクセス
<>
  • 特許-アクセス管理されたリソースへの所在地ベースのアクセス 図1A
  • 特許-アクセス管理されたリソースへの所在地ベースのアクセス 図1B
  • 特許-アクセス管理されたリソースへの所在地ベースのアクセス 図2
  • 特許-アクセス管理されたリソースへの所在地ベースのアクセス 図3
  • 特許-アクセス管理されたリソースへの所在地ベースのアクセス 図4
  • 特許-アクセス管理されたリソースへの所在地ベースのアクセス 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-29
(45)【発行日】2022-04-06
(54)【発明の名称】アクセス管理されたリソースへの所在地ベースのアクセス
(51)【国際特許分類】
   G06F 21/62 20130101AFI20220330BHJP
   G06F 21/33 20130101ALI20220330BHJP
【FI】
G06F21/62 318
G06F21/33
【請求項の数】 22
(21)【出願番号】P 2020555490
(86)(22)【出願日】2019-07-16
(65)【公表番号】
(43)【公表日】2021-10-14
(86)【国際出願番号】 US2019042061
(87)【国際公開番号】W WO2020036701
(87)【国際公開日】2020-02-20
【審査請求日】2020-12-11
(31)【優先権主張番号】62/718,309
(32)【優先日】2018-08-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/122,294
(32)【優先日】2018-09-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】アチャリャ,アヌラーグ
(72)【発明者】
【氏名】ユアン,サミュエル
(72)【発明者】
【氏名】ベルスタック,アレクサンドレ・アー
【審査官】上島 拓也
(56)【参考文献】
【文献】特開2003-330961(JP,A)
【文献】特開2015-201030(JP,A)
【文献】特開2016-207052(JP,A)
【文献】国際公開第2016/182555(WO,A1)
【文献】米国特許出願公開第2016/0316365(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/33
(57)【特許請求の範囲】
【請求項1】
方法であって、
アクセス管理されたリソースの要求をクライアントデバイスから受け付けるステップを含み、前記要求は、クライアントデバイス識別子を含み、前記方法は、さらに、
前記要求が認識済みの所在地と対応付けられていないと判断するステップと、
前記クライアントデバイス識別子の状態データを特定するステップと、
サーバにある前記アクセス管理されたリソースにアクセスするためのリンクを生成するステップと、
タイムスタンプと、乱数と、前記状態データからのライセンスリソース情報とを含む暗号化されたトークンを生成するステップと、
前記暗号化されたトークンを前記リンクに含めるステップと、
前記リンクを前記クライアントデバイスに提供するステップとを含み、前記リンクは、前記アクセス管理されたリソースを要求するために前記クライアントデバイスによって使われるように構成される、方法。
【請求項2】
前記要求は、第1要求であり、前記アクセス管理されたリソースは、第1のアクセス管理されたリソースであり、前記第1要求を受け付ける前に、前記方法は、
第2のアクセス管理されたリソースの第2要求を前記クライアントデバイスから受け付けるステップをさらに含み、前記第2要求は、前記クライアントデバイス識別子を含み、前記方法は、さらに、
前記第2要求が認識済みの所在地と対応付けられていると判断するステップと、
前記クライアントデバイスの前記状態データを生成するステップと、
前記状態データをメモリに格納するステップとを含む、請求項1に記載の方法。
【請求項3】
前記状態データは、タイムスタンプと、前記クライアントデバイス識別子と、ライセンスリソース情報とを含む、請求項1または2に記載の方法。
【請求項4】
前記ライセンスリソース情報は、前記認識済みの所在地を表す、請求項1のいずれか1項に記載の方法。
【請求項5】
前記ライセンスリソース情報は、前記認識済みの所在地と、前記認識済みの所在地が利用可能な管理リソースとを表す、請求項1のいずれか1項に記載の方法。
【請求項6】
前記認識済みの所在地は、ドメイン名である、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記認識済みの所在地は、インターネットプロトコル(IP)アドレスである、請求項1~5のいずれか1項に記載の方法。
【請求項8】
前記要求は、クエリであり、前記アクセス管理されたリソースは、前記クエリに応じたリソースである、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記クライアントデバイス識別子は、ユーザアカウントである、請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記クライアントデバイスが前記アクセス管理されたリソースを要求するために前記リンクを使用するステップをさらに含み、前記リンクを使用するステップは、前記リンクを要求に含めて管理リソース用サーバに送るステップを含む、請求項1~9のいずれか1項に記載の方法。
【請求項11】
前記管理リソース用サーバにおいて、
前記アクセス管理されたリソースを求める前記要求に含まれる前記リンクを受け付けるステップと、
前記リンクに含まれる前記トークンを特定するステップと、
前記トークンの暗号化を解除するステップと、
前記タイムスタンプに基づいて前記トークンの期限が満了していないと判断し、前記ライセンスリソース情報に基づいて前記アクセス管理されたリソースが利用可能であると判断することによって、前記トークンを検証するステップと、
前記トークンが検証されたことに応答して、前記アクセス管理されたリソースを前記クライアントデバイスに提供するステップとを含む、請求項10に記載の方法。
【請求項12】
前記トークンを検証するステップは、前記トークンに含まれるIPサブネットが前記要求の送信元のIPアドレスのIPサブネットに一致すると判断するステップをさらに含む、請求項11に記載の方法。
【請求項13】
システムであって、
少なくとも1つのプロセッサと、
クライアントデバイスの状態データレコードを格納するデータストアと、
命令を格納するメモリとを備え、前記命令は、前記少なくとも1つのプロセッサによって実行されると、前記システムに動作を実行させ、前記動作は、
クライアントデバイス識別子を有するクライアントデバイスからクエリを受け付けることと、
前記クエリに応じた少なくとも1つのリソースが、アクセス管理されたリソースであると判断することとを含み、前記動作は、さらに、
前記アクセス管理されたリソースの認識済みの所在地に前記クエリが対応付けられていると判断することに応答して、
前記アクセス管理されたリソースへのリンクを生成することと、
前記クライアントデバイス識別子と、タイムスタンプと、前記認識済みの所在地との対応付けとを含む前記クライアントデバイスの状態データレコードを前記データストアにおいて生成することとを含み、前記動作は、さらに、
認識済みの所在地に前記クエリが対応付けられていないと判断することに応答して、
前記クライアントデバイス識別子についての期限が満了していない状態データレコードを前記データストアにおいて特定することを含み、前記動作は、さらに、
前記期限が満了していない状態データレコードを特定することに応答して、乱数と、タイムスタンプと、前記状態データレコードからのライセンスリソース情報とを含むトークンを生成し、前記アクセス管理されたリソースへのリンクに前記トークンを含めることを含み、前記動作は、さらに、
前記クライアントデバイス識別子についての前記状態データレコードを前記データストアにおいて特定できなかったことに応答して、前記トークンなしでリンクを生成することとを含み、前記動作は、さらに、
前記クエリの検索結果を前記クライアントデバイスに返すことを含み、前記検索結果は、前記リソースへのリンクを含み、
前記クライアントデバイスは、前記リソースへのリンクを使用してアクセス管理サーバからの前記リソースを要求し、前記アクセス管理サーバは、認識済みの所在地に対応付けられた要求からリソースへのアクセスを提供するように構成される、システム。
【請求項14】
認識済みの所在地に対応付けられた要求からリソースへのアクセスを提供する際に、前記アクセス管理サーバは、
アクセス管理されたリソースへのリンクであって、所在地が対応付けられたリンクを特定のクライアントデバイスから受け付け、
前記所在地が認識済みの所在地であるかどうかを判断し、
前記所在地が認識済みの所在地であると判断することに応答して、前記アクセス管理されたリソースを提供し、
前記所在地が認識済みの所在地ではないと判断することに応答して、
期限が満了していないトークンを前記リンクが含むと判断することに応答して、前記アクセス管理されたリソースを提供し、
前記リンクがトークンを含んでいない判断する、または前記リンクに含まれるトークンの期限が満了していると判断することに応答して、前記アクセス管理されたリソースへのアクセスを拒否するように構成される、請求項13に記載のシステム。
【請求項15】
前記トークンは、前記要求のIPアドレスのIPサブネットをさらに含み、前記アクセス管理サーバは、前記所在地が認識済みの所在地ではなく、期限が満了していないトークンを前記リンクが含むと判断することに応答して、
前記特定のクライアントデバイスのIPサブネットが前記トークンに含まれるIPサブネットと一致するかどうかを判断し、
前記IPサブネットが一致しないと判断することに応答して、前記アクセス管理されたリソースへのアクセスを拒否するように、さらに構成される、請求項14に記載のシステム。
【請求項16】
前記認識済みの所在地は、地理位置情報を表す、請求項13~15のいずれか1項に記載のシステム。
【請求項17】
前記認識済みの所在地は、IPアドレスである、請求項13~16のいずれか1項に記載のシステム。
【請求項18】
前記トークンは、前記リンクに含まれる前に暗号化される、請求項13~17のいずれか1項に記載のシステム。
【請求項19】
方法であって、
アクセス管理されたリソースの要求をクライアントデバイスから受け付けるステップを含み、前記要求は、所在地を有し、前記方法は、さらに、
前記所在地が認識済みの所在地ではないと判断するステップと、
タイムスタンプと、乱数と、ライセンスリソース情報とを含むトークンを前記要求が含むと判断するステップと、
前記タイムスタンプに基づいて前記トークンの期限が満了していないと判断するステップと、
前記ライセンスリソース情報によって識別されるリソースが前記要求されたリソースと一致すると判断するステップと、
前記アクセス管理されたリソースを前記クライアントデバイスに提供するステップとを含み、
上記以外の場合、前記クライアントデバイスは、前記アクセス管理されたリソースへのアクセスを拒否する、方法。
【請求項20】
前記トークンは、暗号化されており、前記方法は、前記トークンの暗号化を解除するステップをさらに含む、請求項19に記載の方法。
【請求項21】
前記トークンは、IPサブネットをさらに含み、前記方法は、前記トークンに含まれるIPサブネットと一致するIPサブネットを前記クライアントデバイスのIPアドレスが含むと判断するステップをさらに含む、請求項19または20に記載の方法。
【請求項22】
前記乱数によって識別される前記トークンのカウンタをインクリメントするステップと、
前記トークンのカウンタがしきい値に達していないと判断するステップとをさらに含む、請求項1921のいずれか1項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本願は、2018年8月13日に出願された米国仮出願第62/718,309号の利益を主張する2018年9月5日に出願された米国特許出願第16/122,294号の継続出願であり、当該継続出願に基づく優先権の利益を主張し、それらのすべての開示内容を、引用により本明細書に援用する。
【背景技術】
【0002】
背景
いくつかのシステムは、IPアドレス(たとえば、プロキシサーバー、VPNなど)、物理的位置など、認識済みの所在地に基づいてリソースへのアクセスを制御する。たとえば、大学は、特定の出版元との取り決めを結んでおり、大学構内のコンピュータまたは大学構内のWiFiネットワークを利用している者に、出版元が管理する記事の一部またはすべてを利用できるようにしているであろう。別の例として、従業員は、(たとえば、プロキシサーバー、VPNなどを介して)企業ソフトウェアを利用しているときに、内部の会社ウェブページにアクセスできるであろう。これらのリソースへのアクセスについて、たとえば、認識済みの所在地(複数可)と一致しないIPアドレスを伴う要求についてなど、認識済みの所在地以外の場所からのアクセスは、ブロックされる。
【発明の概要】
【課題を解決するための手段】
【0003】
概要
実装態様は、リソースの所有者/管理者がアクセスを監視して潜在的な不正使用に対処できるようにしつつ、個人を特定できる情報を用いたりログイン手続きを求めたりすることなく、認識済みの所在地以外の場所からの、アクセス管理されたリソースへのセキュアでシームレスなアクセスを可能にする。実装態様は、クライアントデバイスが大学構内のWiFiを利用したり、VPN(Virtual Private Network)を介してログインしたりするなどしてアクセス管理されたリソースに認識済みの所在地からアクセスするときに、クライアントデバイスの状態データを作成する。状態データは、タイムスタンプ、デバイス識別子、およびライセンスリソース情報を含んでもよい。ライセンスリソース情報は、認識済みの所在地を経由してユーザが利用可能なリソースを特定するために用いられる任意の情報であり得る。言い換えると、ライセンスリソース情報は、クライアントデバイスと認識済みの所在地に対応付けられた団体との提携に基づいた、クライアントが利用可能なリソースを表す。デバイス識別子は、サーバまたは認識済みの所在地(たとえば、大学構内もしくは図書館ウェブサイト、またはプロキシサーバー)と対応付けられたその他のコンピュータによって生成されるクッキーであり得、携帯番号またはユーザアカウント識別子など、別の識別子であってもよい。いくつかの実施態様では、このような識別子は、状態データレコードにハッシュされてもよい。状態データは、たとえば、生成後に所定の時間が経過すると、期限が満了する。
【0004】
実装態様は、状態データを使用して、クライアントデバイスが認識済みの所在地以外の場所から、アクセス管理されたリソースに後でアクセスできるようにする。たとえば、学生が大学構内から出ると、実装態様は、この学生が、限られた時間、本人がまだ大学構内にいるかのようにリソースにアクセスできるようにする。このように、実装態様によって、シームレスにアクセスできるようになる。認識済みの所在地以外の場所から発信された、アクセス管理されたリソースの要求を受け付けると、システムは、期限が満了していないデバイスの状態データをチェックする。期限が満了していない状態データの位置に応じて、システムは、アクセス管理されたリソースへのURLなどのリンクを、URLの後尾に暗号化されたトークンを付加するなどしてリンクに含めて提供する。リソースの所有者/管理者は、要求に含まれたトークンの存在を認めて、トークンの暗号化を解除し、暗号化が解除されたトークンのデータを使用して1つ以上の検証テストを実行する。テストは、トークンの期限が満了しているかどうか、トークンが提示されたことがある回数、および/または、このトークンが、トークンを生成した要求の位置からかなり離れた位置にあるクライアントデバイスによって提示されたかどうかなどのテストを含んでもよい。これらのテストは、URLの共有などによる別のクライアントデバイスによるアクセスをやめさせることができる。
【0005】
ある一般的な態様では、方法は、アクセス管理されたリソースの要求をクライアントデバイスから受け付けるステップを含み、要求は、クライアントデバイス識別子を含み、方法は、さらに、要求が認識済みの所在地と対応付けられていないと判断するステップと、クライアントデバイス識別子の状態データを特定するステップと、サーバにあるアクセス管理されたリソースにアクセスするためのリンクを生成するステップと、タイムスタンプと、乱数と、状態データからのライセンスリソース情報とを含む暗号化されたトークンを生成するステップと、暗号化されたトークンをリンクに含めるステップと、リンクをクライアントデバイスに提供するステップとを含む。リンクは、アクセス管理されたリソースを要求するためにユーザデバイスによって使われるように構成される。つまり、クライアントデバイスは、リンクを使って、アクセス管理されたリソースを要求する。
【0006】
要求は、第1要求であってもよく、アクセス管理されたリソースは、第1のアクセス管理されたリソースであってもよく、第1要求を受け付ける前に、方法は、第2のアクセス管理されたリソースの第2要求をクライアントデバイスから受け付けるステップをさらに含み、第2要求は、クライアントデバイス識別子を含み、方法は、さらに、第2要求が認識済みの所在地と対応付けられていると判断するステップと、クライアントデバイスの状態データを生成するステップと、状態データをメモリに格納するステップとを含んでもよい。
【0007】
状態データは、タイムスタンプと、クライアントデバイス識別子と、ライセンスリソース情報とを含んでもよい。
【0008】
ライセンスリソース情報は、認識済みの所在地を表してもよい。
ライセンスリソース情報は、認識済みの所在地と、認識済みの所在地が利用可能な管理リソースとを表してもよい。
【0009】
認識済みの所在地は、ドメイン名であってもよい。
認識済みの所在地は、インターネットプロトコル(IP)アドレスであってもよい。
【0010】
要求は、クエリであってもよく、アクセス管理されたリソースは、クエリに応じたリソースであってもよい。
【0011】
クライアントデバイス識別子は、ユーザアカウントであってもよい。
クライアントデバイスがアクセス管理されたリソースを要求するためにリンクを使用してもよく、リンクを使用するステップは、リンクを要求に含めて管理リソース用サーバに送るステップを含む。
【0012】
方法は、管理リソース用サーバにおいて、アクセス管理されたリソースを求める要求に含まれるリンクを受け付けるステップと、リンクに含まれるトークンを特定するステップと、トークンの暗号化を解除するステップと、タイムスタンプに基づいてトークンの期限が満了していないと判断し、ライセンスリソース情報に基づいてアクセス管理されたリソースが利用可能であると判断することによって、トークンを検証するステップと、トークンが検証されたことに応答して、アクセス管理されたリソースをクライアントデバイスに提供するステップとを含んでもよい。
【0013】
トークンを検証するステップは、トークンに含まれるIPサブネットが要求の送信元のIPアドレスのIPサブネットに一致すると判断するステップをさらに含んでもよい。つまり、クライアントデバイスのIPアドレスは、管理リソース用サーバによって判断されてもよく、IPサブネットは、トークンに含まれるIPサブネットによって判断および比較されてもよい。これにより、防ぐことができる。
【0014】
上述した方法は、1つ以上のサーバおよび/または1つ以上のクライアントデバイスを備えるシステムで実現されてもよい。
【0015】
ある一般的な態様では、システムは、少なくとも1つのプロセッサと、クライアントデバイスの状態データレコードを格納するデータストアと、命令を格納するメモリとを備え、命令は、少なくとも1つのプロセッサによって実行されると、システムに動作を実行させる。動作は、デバイス識別子を有するクライアントデバイスからクエリを受け付けることと、クエリに応じた少なくとも1つのリソースが、アクセス管理されたリソースであると判断することとを含む。アクセス管理されたリソースの認識済みの所在地にクエリが対応付けられていると判断することに応答して、動作は、アクセス管理されたリソースへのリンクを生成することと、クライアントデバイスの状態データレコードをデータストアにおいて生成することとを含み、状態データは、クライアントデバイス識別子と、タイムスタンプと、認識済みの所在地との対応付けとを含む。認識済みの所在地にクエリが対応付けられていないと判断することに応答して、動作は、さらに、クライアントデバイス識別子についての期限が満了していない状態データレコードをデータストアにおいて特定することを含み、期限が満了していない状態データレコードを特定することに応答して、乱数と、タイムスタンプと、状態データレコードからのライセンスリソース情報とを含むトークンを生成し、アクセス管理されたリソースへのリンクにトークンを含めることを含む。クライアントデバイス識別子についての状態データレコードをデータストアにおいて特定できなかったことに応答して、トークンなしでリンクを生成することとを含み、動作は、さらに、クエリの検索結果をクライアントデバイスに返すことを含み、検索結果は、リソースへのリンクを含み、クライアントデバイスは、リソースへのリンクを使用してアクセス管理サーバからのリソースを要求し、アクセス管理サーバは、認識済みの所在地に対応付けられた要求からリソースへのアクセスを提供するように構成される。
【0016】
認識済みの所在地に対応付けられた要求からリソースへのアクセスを提供する際に、アクセス管理サーバは、アクセス管理されたリソースへのリンクであって、所在地が対応付けられたリンクを特定のクライアントデバイスから受け付け、所在地が認識済みの所在地であるかどうかを判断し、所在地が認識済みの所在地であると判断することに応答して、アクセス管理されたリソースを提供し、所在地が認識済みの所在地ではないと判断することに応答して、期限が満了していないトークンをリンクが含むと判断することに応答して、アクセス管理されたリソースを提供し、リンクがトークンを含んでいない判断する、またはリンクに含まれるトークンの期限が満了していると判断することに応答して、アクセス管理されたリソースへのアクセスを拒否するように構成されてもよい。
【0017】
トークンは、要求のIPアドレスのIPサブネットをさらに含んでもよく、アクセス管理サーバは、所在地が認識済みの所在地ではなく、期限が満了していないトークンをリンクが含むと判断することに応答して、特定のクライアントデバイスのIPサブネットがトークンに含まれるIPサブネットと一致するかどうかを判断し、IPサブネットが一致しないと判断することに応答して、アクセス管理されたリソースへのアクセスを拒否するように、さらに構成される。
【0018】
認識済みの所在地は、地理位置情報を表してもよい。
認識済みの所在地は、IPアドレスであってもよい。
【0019】
トークンは、リンクに含まれる前に暗号化されてもよい。
ある一般的な態様では、方法は、アクセス管理されたリソースの要求をクライアントデバイスから受け付けるステップを含み、要求は、所在地を有し、方法は、さらに、所在地が認識済みの所在地ではないと判断するステップと、タイムスタンプと、乱数と、ライセンスリソース情報とを含むトークンを要求が含むと判断するステップと、タイムスタンプに基づいてトークンの期限が満了していないと判断するステップと、ライセンスリソース情報によって識別されるリソースが要求されたリソースと一致すると判断するステップと、アクセス管理されたリソースをクライアントデバイスに提供するステップとを含み、上記以外の場合、クライアントデバイスは、アクセス管理されたリソースへのアクセスを拒否する。
【0020】
トークンは、暗号化されていてもよく、方法は、トークンの暗号化を解除するステップをさらに含んでもよい。
【0021】
トークンは、IPサブネットをさらに含んでもよく、方法は、トークンに含まれるIPサブネットと一致するIPサブネットをクライアントデバイスのIPアドレスが含むと判断するステップをさらに含む。
【0022】
方法は、乱数によって識別されるトークンのカウンタをインクリメントするステップと、トークンのカウンタがしきい値に達していないと判断するステップとをさらに含んでもよい。
【0023】
一態様の任意選択の特徴は、別の態様と適宜組み合わされてもよい。
ある一般的な態様では、コンピュータ読み取り可能な記憶装置上に含まれるコンピュータプログラムプロダクトは、命令を含み、当該命令は、基板に設けられた少なくとも1つのプロセッサによって実行されると、コンピューティングデバイスに、開示の方法、動作、またはプロセスのいずれかを実行させる。実質的に、図面の少なくとも1つに図示および/または説明され、特許請求の範囲に記載されているように、別の一般的な態様は、アクセス管理されたリソースに所在地データに基づいてシームレスにアクセスするための使用制限がかかったトークンの生成のきっかけとなるクライアントデバイスの状態データを生成して保持するためのシステムおよび/または方法を含む。
【0024】
本明細書に記載の発明の主題の実施態様の1つ以上は、次の利点の1つ以上を実現するように実施され得る。一例として、実施態様は、リソースにアクセスするための各リンクが個人を特定できる情報を含まない一意のトークンを有するため、ユーザプライバシーを保護し、ネットワーク/ISPレベルの監視が1人のユーザによる複数のトークンを使った複数のアクセスを結びつけてしまうことを防ぐ。別の例として、クライアントデバイスのIPアドレスではなくライセンスリソース情報(たとえば、定期購入情報、団体識別子など)を状態データおよびトークンに記録することにより、特定のデバイスの所在地が記録されることを回避し、さらにユーザプライバシーが保護される。別の例として、いくつかの実施態様は、トークンを暗号化することによって、悪人が特定のユーザ/クライアントデバイスと団体との間の提携を発見してしまうことを防ぐ。別の例として、状態データが所在地ではなくリソースまたはリソースのコレクションを識別する情報を含むため、いくつかの実施態様は、悪人が特定のユーザ/クライアントデバイスと団体との間の提携を発見してしまうことを防ぐ。別の例として、開示の実施態様は、認識済みの所在地以外の場所から行われた要求についてのログイン手続きの必要性をなくすことによって、クライアントデバイス上の処理サイクルおよび処理能力の消費を抑える。ログイン手続きは、処理サイクルおよび処理能力を消費し、多くの場合、タイムアウト(たとえば、特定の期間非アクティブであること)のせいで繰り返し行われる。処理能力および処理サイクルの使用を抑えることは、たとえばクライアントデバイスが携帯電話またはタブレット端末であるモバイル環境では、バッテリの寿命を大切に使うことができるため、特に重要である。また、アクセスをシームレスにすることによってログイン手続きをなくし、ユーザエクスペリエンスを向上させる。つまり、ユーザは、管理リソースにアクセスするために追加プロセスのセットアップまたは追加入力を行う必要がない。よって、実施態様は、管理リソースに認識済みの所在地以外の場所からアクセスするためにユーザが費やす時間とコンピューティングリソースとを抑えることができる。また、シームレスなアクセスによって、リソースの利用(たとえば、需要)が増え、このようなサービスを提供することに対する団体およびリソース所有者のインセンティブが増える。
【0025】
1つ以上の実施態様の詳細を、添付の図面および以下の説明において記載する。その他の特徴は、本明細書および図面から、ならびに請求の範囲から明らかになるだろう。
【図面の簡単な説明】
【0026】
図1A】開示された発明の主題に係る、システム例のブロック図である。
図1B】開示された発明の主題に係る、システム例のブロック図である。
図2】開示された発明の主題に従って使用されるデータ構造の例を示す。
図3】開示された実施態様に係る、管理リソースに認識済みの所在地以外の場所からアクセスするための工程例のフロー図である。
図4】記載の技術を実施するために利用できるコンピュータデバイスの例を示す。
図5】記載の技術を実施するために利用できる分散コンピュータ装置の例を示す。
【発明を実施するための形態】
【0027】
異なる図面に含まれる同じ参照符号は、同じ要素を示す。
詳細な説明
図1は、例示的な実施態様に係る、アクセス管理システムのブロック図である。システム100は、認識済みの所在地以外の場所からクライアントデバイスが限られた時間、所在地ベースのアクセス管理されたリソースにシームレスにアクセスできるようにするために利用されてもよい。クライアントデバイスのユーザは、認識済みの所在地から、および認識済みの所在地以外の場所から同じ方法でリソースにアクセスするので、このアクセスは、シームレスである。つまり、ユーザにとって、アクセス管理されたリソースに認識済みの所在地からアクセスすることと、認識済みの所在地以外の場所からこのリソースにアクセスすることとは、これが限られた期間内で行われている限り、違いがない。ユーザが認識済みの所在地とまだ結びつけられていることを保証するために、このアクセスには期限がある。システム100は、個人を特定できる情報を用いることなくアクセスを許可することができる。これにより、ユーザプライバシーが安全に保護される。システム100は、認識済みの所在地を経由して管理リソースにデバイスがアクセスしたときのデバイスの状態データを記録する。状態データは、クライアントデバイスと認識済みの所在地との結びつきによって利用可能になるライセンスリソースを特定するための情報を記録する。状態データは、一定期間の後、期限が満了する。たとえば、限られた時間、有効である。認識済みの所在地を経由してクライアントデバイスがリソースにアクセスするたびに、状態データが更新される、たとえば、新しいレコードが書き込まれる、またはクライアントデバイスについてのレコードが更新される。管理リソースにクライアントデバイスが認識済みの所在地以外の場所からアクセスしようと試みた場合、システム100は、このクライアントデバイスの状態データを認識し、状態データに含まれるライセンスリソース情報を用いてトークンを生成する。このトークンは、リソースの所有者に渡される。所有者は、このトークンを認識し、リソースへのアクセスを許可することができる。トークンは、乱用をやめさせるために、ごく短時間のみ有効であればよく、プライバシーの確保と、不正使用されてしまう機会をさらに制限するために暗号化されてもよい。図1のシステム100は、リソースアクセスサーバ110と、管理リソース用サーバ180とを備えるシステムとして例示されている。しかしながら、リソースアクセスサーバ110の使用は必須ではなく、リソースアクセスサーバ110によって実行されると説明される機能は、管理リソース用サーバ180において実行されてもよい。このように、実施態様は、例示した通りの構成に限定されない。
【0028】
認識済みの所在地160は、IPアドレス、または、図書館、教育団体、会社、病院、企業システムなど、特定の団体に対応付けられた物理的位置であってもよい。団体は、認識済みの所在地160を経由して、たとえば、定期購入の取り決め、雇用の取り決め、またはその他の契約上の申し合わせを通して、アクセス管理された記事にアクセスできるようにしてもよい。いくつかの実施態様では、団体は、管理リソース用サーバ180の所有者/管理者/操作者であってもよい。説明を簡単にするため、本明細書において使用するとき、管理リソース用サーバ180の所有者を言及することは、リソースの管理者および/または管理リソース用サーバ180の操作者も指している。いくつかの実施態様では、団体は、管理リソース用サーバ180の所有者と取り決めを結んでいてもよい。いずれの場合であっても、団体は、アクセス管理された記事にユーザが認識済みの所在地160を経由してアクセスできるようにしてもよい。認識済みの所在地160は、関連する位置情報を有する。いくつかの実施態様では、認識済みの位置情報は、インターネットプロトコル(IP)アドレスまたはその一部であってもよい。これは、完全なIPアドレス、IPサブネット、ドメイン(たとえば、institution.net)、サブドメイン(たとえば、subscription.institution.netまたはwww.institution.net/subscription)、メールドメインなどであってもよい。いくつかの実施態様では、位置情報は、物理的位置情報であってもよい。たとえば、IPアドレスまたはその一部が物理的な位置にマッピングされてもよい。別の例として、クライアント上のブラウザが地理位置情報APIを含んでもよく、この情報が位置情報として使われてもよい。認識済みの所在地160を特定するために用いられる位置情報にその他同様の種類の情報が使われてもよい。
【0029】
アクセス管理システム100は、リソースアクセスサーバ110を備えてもよい。リソースアクセスサーバ110は、1つのコンピューティングデバイス、またはいくつかの異なるデバイスの形をとった複数のデバイスであってもよく、たとえば、標準サーバ、このようなサーバの群、またはラックサーバシステムである。たとえば、リソースアクセスサーバ110は、複数のコンピューティングデバイス間で分散されて実現されてもよい。これに加えて、サーバ110は、パーソナルコンピュータで実現されてもよく、いくつかのパーソナルコンピュータ間で分散されて実現されてもよい。リソースアクセスサーバ110は、図4に示すようなコンピュータデバイス400の例であってもよく、図5に示すようなコンピュータデバイス500であってもよい。リソースアクセスサーバ110は、1つ以上の機械によって実行可能な命令もしくは複数のソフトウェア、ファームウェア、または、それらの組合せを実行するように構成された基板に設けられた1つ以上のプロセッサを含んでもよい。プロセッサは、半導体ベースであり得る。すなわち、プロセッサは、デジタルロジックを実行できる半導体材料を含み得る。
【0030】
また、リソースアクセスサーバ110は、1つ以上のコンピュータメモリを備え得る。メモリ、たとえば、主メモリは、一時的に、恒久的に、半恒久的に、または、それらの組合せで1つ以上のデータを格納するように構成されてもよい。メモリは、1つ以上のプロセッサが読み出しおよび/または実行できるフォーマットで情報を格納する任意の種類の記憶装置を含んでもよい。メモリは、揮発性メモリ、不揮発性メモリ、または、それらの組合せを含み、1つ以上のプロセッサによって実行されると特定の動作を実行するモジュールまたはエンジンを格納してもよい。いくつかの実施態様では、モジュールは、外部の記憶装置に格納され、サーバ110のメモリにロードされてもよい。いくつかの実施態様では、モジュールは、アクセスエンジン120と、検証エンジン122とを含んでもよい。アクセスエンジン120は、様々なリソースを検索して当該リソースへのアクセスを提供するために使われるウェブサイトまたはポータルを表す。いくつかの実施態様では、アクセスエンジン120は、検索エンジンであってもよく、インデックス112を使用してクエリに応じた検索結果を提供してもよい。インデックス112は、クエリに応じたリソースを見つけるために使われる任意の種類のインデックスであってもよい。インデックス112は、いくつかの異なるサーバからのリソース、たとえば、インターネット上で入手可能なリソースを含んでもよい。インデックス112は、複数の(図示せず)管理リソース用サーバ180からのリソースを含んでもよい。インデックス112は、複数の管理リソース用サーバ180、および管理されていないリソースを有するその他のサーバ(図示せず)からのリソースを含んでもよい。いくつかの実施態様では、インデックス112は、インターネットを経由して入手可能な1つ以上のリソースのインデックスであってもよい。いくつかの実施態様では、インデックス112は、イントラネットを経由して提供されるリソースのインデックスであってもよい。いくつかの実施態様では、インデックス112は、1つ以上の特定のカテゴリーのリソース、たとえば、電子書籍、曲、動画、学術論文、白書などのインデックスであってもよい。インデックス112は、リソースアクセスサーバ110のメモリに格納されてもよい。インデックス112は、複数のコンピューティングデバイスのメモリに分散されてもよい。この複数のコンピューティングデバイスを、まとめて1つのリソースアクセスサーバ110とみなす。インデックス112のすべてまたは一部は、リソースアクセスサーバ110とは別であるが、リソースアクセスサーバ110がアクセス可能なメモリに格納されてもよい。
【0031】
また、リソースアクセスサーバ110は、アクセスデータベース116を備えてもよい。アクセスデータベース116は、リソースアクセスサーバ110のメモリに格納されてもよい。アクセスデータベース116は、リソースアクセスサーバ110がアクセス可能なメモリに格納されてもよい。アクセスデータベース116は、特定のアクセス管理されたリソースおよび/または特定の管理リソース用サーバの所在地としてどの所在地が認識されているかを示す情報を含んでもよい。たとえば、アクセスデータベース116は、アクセス管理されたリソースごとに、どの所在地が認識されているかを示してもよい。別の例として、アクセスデータベース116は、所在地ごとに、当該所在地が利用できるアクセス管理されたリソースを示してもよい。別の例として、アクセスデータベース116は、アクセス管理されたリソースのカテゴリーに関して、どの所在地が認識済みの所在地であるかを示してもよい。別の例として、アクセスデータベース116は、どの所在地が特定の管理リソース用サーバ180の所在地として認識されているかを示す情報を含んでもよい。たとえば、アクセスデータベース116は、管理リソース用サーバ180ごとに、そのサーバの認識済みの所在地である所在地を示してもよい。サーバ180は、サーバ180にあるアクセス管理されたリソースのすべてへのアクセスを許可する。その他同様の組合せも可能である。いくつかの実施態様では、アクセスデータベース116は、インデックス112に組み込まれている。たとえば、インデックスに含まれるリソースごとに、そのリソースの認識済みの所在地であると考えられる所在地との対応付けをインデックスエントリが含んでもよい。いくつかの実施態様では、リソースがクエリに応じたリソースであると判断された場合、リソースアクセスサーバ110は、クエリがリソース(たとえば、リソースへのURLまたはその他のリンク)の認識済みの所在地と対応付けられるおよび/または当該所在地から送信されたときに、そのリソースを検索結果に含める。いくつかの実施態様では、リソースアクセスサーバ110は、要求が認識済みの所在地に対応付けられた(たとえば、当該所在地から送信された)ときにリソースへの1つのリンクを含み、要求が認識済みの所在地に対応付けられていないときに異なるリンクを含む。
【0032】
クエリに応答する際、検証エンジン122は、アクセスデータベース116をインデックス112に適用してもよい。たとえば、検証エンジン122は、クエリが認識済みの所在地から送信されたかどうか、当該所在地と対応付けられているかどうか、または無関係であるかどうかを判断してもよい。クエリに応じたアクセス管理されたリソースの認識済みの所在地から当該クエリが送信された場合、アクセスエンジン120は、アクセス管理されたリソースへのリンクを生成して検索結果に含めてもよい。クエリが認識済みの所在地に対応付けられているがそこから送信されていない場合、アクセスエンジン120は、暗号化されたトークンを生成し、リンクと合わせて検索結果に含めてもよい。いくつかの実施態様では、暗号化されたトークンは、リンクの後尾に付加されてもよい。いくつかの実施態様では、暗号化されたトークンは、リンクに挿入されてもよい。いくつかの実施態様では、暗号化されたトークンを有するリンクは、認識済みの所在地から送信された要求についてのリンクと同様に、暗号化されたトークンに含まれない。検証エンジン122は、暗号化キー118を使用してトークンを暗号化してもよい。管理リソース用サーバ180が暗号化されたトークンを含むリンクを受け付けて検証できるよう、暗号化キー118は、管理リソース用サーバ180と共有される。検証エンジン122は、状態データ114を使用して、認識済みの所在地から送信されていないクエリが認識済みの所在地と対応付けられているかどうかを判断してもよい。
【0033】
状態データ114は、特定のクライアントデバイスと認識済みの所在地との提携をライセンスリソース情報として記録する情報である。クライアントデバイス170が認識済みの所在地160を経由してリソースアクセスサーバ110にアクセスしたときに、検証エンジン122は、クライアントデバイス170についての状態データ114を書き込んでもよい。たとえば、学生は、大学(認識済みの所在地160)のWiFiを使ってリソースアクセスサーバ110にクエリを送信してもよい。リソースアクセスサーバ110は、アクセスデータベース116に含まれる認識済みの所在地のうちの1つであるWiFiのIPアドレスからこのクエリが送信されたと認識することができる。認識済みの所在地(たとえば、大学のWiFi)を経由してクエリが行われたと認識したことに応答して、アクセスエンジン120は、携帯電話と当該WiFiのIPアドレスとの対応付けを状態データ114に記録してもよい。状態データ114は、リソースアクセスサーバ110にある任意の種類のメモリに格納されてもよい。状態データ114は、リソースアクセスサーバ110がアクセス可能なメモリに格納されてもよい。状態データ114は、特定のクライアントデバイス170について、1つ以上のライセンスリソースの識別子を格納する。ライセンスリソースの識別子は、クライアントデバイス170と、団体との提携に基づいてクライアントデバイス170がアクセスできるリソースの一覧(たとえば、1つ以上のリソース)との対応付けを表す。
【0034】
図2は、状態データを格納するために使われるデータ構造の例を示す。状態データ205データ構造は、状態データ114に含まれるレコードの例である。図2の例では、状態データ205は、タイムスタンプ210を含む。タイムスタンプ210は、提携の期限を守らせるために使われる。状態データ205は、設定された期間、有効であり得る(たとえば、30日間、7日間、1日間など)。期限は、たとえば、認識済みの所在地に対応付けられた団体によって、アクセス管理されたリソースの所有者によって、またはこれらの組合せによって、契約上規定され得る。たとえば、特定の大学は、学生に、たとえば、大学構内を訪れて大学構内のWiFiを自身のデバイスで利用することによって状態データを少なくとも週に1回または月に1回リフレッシュするように要求してもよい。タイムスタンプ210は、状態データの期限が満了する時刻であり得る。タイムスタンプ210は、状態データが生成されたおよび/または更新された時刻であり得、状態データ205は、所定の時間が経過した後に期限が満了する。また、状態データ205は、デバイス識別子215を含む。デバイス識別子215は、要求を行っているクライアントデバイス、たとえば、クライアントデバイス170を識別する。いくつかの実施態様では、デバイス識別子215は、クッキーからの値であってもよい。クッキーは、従来の方法を用いて団体によってクライアントデバイス170に提供されてもよい。いくつかの実施態様では、デバイス識別子215は、ユーザアカウントであってもよい。このような実施態様では、状態データ205は、ユーザアカウントの属性とみなされてもよい。デバイス識別子215は、クライアントデバイスを一意に特定するために使われる任意の情報であり得る。また、状態データ205は、ライセンスリソース情報220を含んでもよい。ライセンスリソース情報220は、たとえば、認識済みの所在地を経由してクライアントデバイスが要求を行うことに基づいてクライアントデバイスが利用可能なリソースを特定するために使われる。たとえば、ライセンスリソース情報220は、たとえば大学構内WiFiのIPアドレス、図書館のウェブサイトのドメイン、会社のプロキシ、または認識済みの所在地に関する加入者識別子、または地域コードなどであってもよい。
【0035】
クライアントデバイスから認識済みの所在地を経由して要求を受け付けるたびに、リソースアクセスサーバ110は、クライアントデバイスの状態データを生成または更新してもよい。状態データを生成することは、クライアントデバイスおよび認識済みの所在地についての新しいレコードを書き込むことを含む。状態データを更新することは、クライアントデバイスおよび認識済みの所在地についての状態データ114に含まれる既存レコードのタイムスタンプを更新することを含む。状態データ114の期限満了によって、認識済みの所在地以外の場所からのリソースへのアクセスが、認識済みの所在地と有効な現在提携中のデバイスに対して許可されることが保証される。いくつかの実施態様では、状態データ114は、サーバにあるクッキー情報とともに格納されてもよい。いくつかの実施態様では、状態データ114は、ユーザアカウントと対応付けられてもよい。たとえば、ユーザは、リソースアクセスサーバ110にアカウントを持っており、状態データがそのユーザアカウントに対応付けられてもよい。たとえば、ユーザは、図書館にある図書館ポータルを利用しながら、リソースアクセスサーバ110の自身のアカウントにログインしてもよい。いくつかの実施態様では、図書館の認識済みの所在地との対応付けは、ユーザのアカウントの一部として格納されてもよい。いくつかの実施態様では、図書館の認識済みの所在地とユーザのアカウントとの対応付けがリソースアクセスサーバにある別個のデータストアに記録される。
【0036】
アクセス管理されたリソースが、認識済みの所在地から送信されたクエリではないが期限が満了していない状態データと対応付けられているクエリに対する応答である場合、アクセスエンジン120は、このリソースのトークンを生成してもよい。いくつかの実施態様では、各リソースは、それぞれトークンを有する。図2は、例示的なトークン250を示す。トークン250は、タイムスタンプ225を含む。タイムスタンプ225は、トークンが生成された時刻を表してもよく、タイムスタンプ255は、トークンの期限が満了する時刻を表してもよい。いずれの場合であっても、システムは、タイムスタンプ225を使用して、トークンの期限が満了していないことを検証できる。トークンが有効である時間枠は、1時間または数時間など、短いであろう。また、トークン250は、乱数230を含んでもよい。この乱数により、トークンが必ず一意になる。一意であることにより、管理リソース用サーバ180の検証エンジン186は、トークンが何度も使用されていないと確認できるようになる。いくつかの実施態様では、トークンは、たとえば、URLによって識別される特定のリソースのためなど、限定使用されるものであり、1時間程度しか有効ではない。新しいトークンを生成することなく、たとえばブラウザの「戻る」ボタンまたは「進む」ボタンによってアクセスが限られた回数許可される一方で、何度もアクセスするということは、リンクが共有されていることを示している可能性がある。乱数230は、一意であることを保証する環境に適したサイズであってもよい。いくつかの実施態様では、これは、64ビットの数字であってもよいが、実施環境に応じてこれよりも大きい数字であり得、小さい数字であり得る。また、トークン250は、ライセンスリソース情報235を含んでもよい。ライセンスリソース情報235は、クライアントデバイスが利用可能なリソースを特定するために使われる。ライセンスリソース情報235は、認識済みの所在地の識別子を含んでもよい。ライセンスリソース情報235は、リソースの識別子を含んでもよい。ライセンスリソース情報235は、管理リソース用サーバから手に入れることができるリソースのコレクションのコレクション識別子を含んでもよい。ライセンスリソース情報235は、物理的位置識別子を含んでもよい。ライセンスリソース情報235は、認識済みの所在地からの要求に対して行われたように、要求されたリソースへのアクセス権を要求元が有するかどうかを管理リソース用サーバ180が判断できるようにする任意の情報である。いくつかの実施態様では、たとえば、URLおよび/またはトークンを生成する前に要求元がアクセス権を有しているかどうかを別のサーバまたはプロセスが検証済みであった場合、ライセンスリソース情報は、必須ではない。また、トークン250は、トークンの生成のきっかけとなったクライアントデバイスのIPサブネット245を含んでもよい。IPサブネット245により、管理リソース用サーバ180は、不正使用を特定できるようになる。たとえば、IPサブネット245により、地下鉄を移動中のユーザが別のセルタワーに切り替わった時にリソースにアクセスできるようになるが、デバイスがこのIPサブネットの範囲外に移動した場合、このリソースへのアクセスは禁止される。これにより、トークンの期限満了およびトークンを複数回ではあるがしきい値の数値を超えない回数提示することをもって、トークンが他者に配信されることを防止する。
【0037】
各トークンは、生成されると、暗号化キー118を使用して暗号化され、応答用のアクセス管理されたリソースのリンク(たとえば、URL)に含まれてもよい。このリンクによって、クエリ要求元、たとえば、クライアントデバイス170のユーザは、管理リソース用サーバ180からのリソースを要求できるようになる。
【0038】
アクセス管理システム100は、管理リソース用サーバ180を備えてもよい。また、管理リソース用サーバ180は、コンピューティングデバイスまたはいくつかの異なるデバイスという形態をとった複数のデバイスであってもよく、たとえば、標準サーバ、このようなサーバの群、またはラックサーバシステムである。たとえば、管理リソース用サーバ180は、パーソナルコンピュータにおいて、複数のコンピューティングデバイス間で分散されて実現されてもよく、複数のパーソナルコンピューティングデバイス間で分散されて実現されてもよい。管理リソース用サーバ180は、図4に示すようなコンピュータデバイス400、または、図5に示すようなコンピュータデバイス500の例であってもよい。管理リソース用サーバ180は、1つ以上の機械によって実行可能な命令もしくは複数のソフトウェア、ファームウェア、または、それらの組合せを実行するように構成された基板に設けられた1つ以上のプロセッサを含んでもよい。プロセッサは、半導体ベースであり得る。すなわち、プロセッサは、デジタルロジックを実行できる半導体材料を含み得る。
【0039】
管理リソース用サーバ180は、1つ以上のコンピュータメモリを備えてもよい。メモリ、たとえば、主メモリ、キャッシュメモリ、ディスクメモリなどは、一時的に、恒久的に、半恒久的に、または、それらの組合せで1つ以上のデータを格納するように構成されてもよい。メモリは、1つ以上のプロセッサが読み出しおよび/または実行できるフォーマットで情報を格納する任意の種類の記憶装置を含んでもよい。メモリは、揮発性メモリ、不揮発性メモリ、または、それらの組合せを含み、1つ以上のプロセッサによって実行されると特定の動作を実行するデータおよび/もしくはモジュールまたはエンジンを格納してもよい。いくつかの実施態様では、データおよび/またはモジュールは、外部の記憶装置に格納され、管理リソース用サーバ180のメモリにロードされてもよい。管理リソース用サーバ180は、アクセス管理されたリソース182を含んでもよい。アクセス管理されたリソース182は、1つ以上のメモリに格納される。アクセス管理されたリソース182は、たとえば、文書、オーディオファイル(たとえば、ミュージックまたはオーディオブック)、動画ファイル、画像、ウェブページ、アプリケーションもしくはその他の実行可能なファイル、商品など、またはこれらのうちのいくつかのコレクションである、曲から構成されるアルバム、商品カタログ、もしくは記事の雑誌など、任意の種類のリソースのリポジトリであってもよい。いくつかの実施態様では、アクセス管理されたリソース182は、複数のコンピューティングデバイス間で分散されてもよい。
【0040】
管理リソース用サーバ180は、メモリのうちの1つ以上にモジュールとして格納された検証エンジン186を含んでもよい。検証エンジン186は、アクセス管理されたリソース182へのアクセスを管理する。たとえば、検証エンジン186は、認識済みの所在地からの要求に応答して、アクセス管理されたリソース182を提供してもよい。認識済みの所在地は、アクセス管理されたリソース182のうちの1つ以上へのアクセス権を有すると管理リソース用サーバ180が認識する任意の情報である。団体が管理リソース用サーバ180の所有者または操作者と取り決め(たとえば、ライセンス、定期購入)を結んでいるという理由で、所在地が認識されてもよい。たとえば、大学は、特定の雑誌、雑誌記事、書籍などを利用するために出版元から定期購入してもよい。出版元は、大学構内のIPアドレスから送信される要求を、認識済みの所在地から送信されていると認識するであろう。別の例として、図書館は、特定のオーディオブック作品または電子書籍へのアクセスについて、オーディオブック提供元またはその他の出版元と取り決めを結んでもよい。オーディオブック提供元は、図書館のドメインから送信される要求を、認識済みの所在地から送信されていると認識するであろう。別の例として、会社は、特定のウェブページまたは内部文書へのアクセスを、特定の仮想プライベートネットワーク(VPN)、企業のサーバ、またはプロキシサーバーを利用する従業員に許可してもよい。会社は、VPNから送信される要求を、認識済みの所在地から送信されていると認識するであろう。別の例では、プロキシサーバーから送信される要求に基づいて、会社は、CRMシステム(Customer Relation Management)、保留中のタスク/チケット管理システム、在庫管理システムなど、外部委託したサービスへのアクセスを許可してもよい。この一覧は、すべてを列挙しているわけではなく、非限定的な例にすぎない。
【0041】
検証エンジン186は、リソースに関して送信されてくる要求に対して一連のテストを実行してもよい。あるテストは、認識済みの所在地が要求されたリソースへのアクセス権を有するかどうかであってもよい。上記したように、アクセス管理されたリソース182に含まれるすべてのリソースを特定の認識済みの所在地が利用可能なわけではない。このような実施態様では、検証エンジン186は、認識済みの所在地から要求されたリソースにアクセスできないと判断することに応答して、要求へのアクセスを拒否してもよい。いくつかの実施態様では、検証エンジン186は、要求が認識済みの所在地からの要求であるかどうかを判断してもよい。要求が認識済みの所在地からの要求である場合、いくつかの実施態様では、検証エンジン186は、アクセス管理されたリソース182のうち、要求されたリソースを要求元に提供してもよい。この要求されたリソースは、リンク、たとえば、URLによって識別されるリソースである。いくつかの実施態様では、管理リソース用サーバ180は、追加の検証を行う、たとえば、既知のプロセスを使用して棘のある挙動や、不正な挙動を監視してもよい。
【0042】
要求が認識済みの所在地からの要求ではない場合、検証エンジン186は、要求がトークンを含むかどうか判断してもよい。トークンは、暗号化されている可能性があり、要求が認識済みの所在地から送信された要求であるかのように、システムが、限られた時間、アクセス管理されたリソース182へのアクセスを提供するために使われる。検証エンジン186が暗号化キー188を使用してトークンの暗号化を解除してもよい。暗号化キー188は、クライアントデバイスの状態データを追跡して保守するサーバ、たとえば、リソースアクセスサーバ110と管理リソース用サーバ180との間で共有される。トークン250に関して上述したように、トークンは、検証エンジン186が要求に対して追加の検証を行うために使うデータを含んでもよい。トークンを有する要求が検証要求に合格した場合、検証エンジン186は、あたかも要求が認識済みの所在地から送信されたかのうように、要求されたリソースを提供する。
【0043】
アクセス管理システム100は、クライアントデバイス170を備えてもよい。クライアントデバイス170は、スマートフォンまたはその他の携帯コンピューティングデバイス、タブレット端末、ウェアラブルコンピューティングデバイス、ラップトップコンピュータ、ネットブック、電子ブック、パーソナルコンピュータ、スマートスピーカー、プロセッサ内蔵テレビなど、認識済みの所在地160を経由およびその他の位置を経由してリソースを要求可能なユーザ所有の任意のコンピューティングデバイスであってもよい。クライアントデバイス170は、図4に示すようなコンピュータデバイス400または450の例であってもよい。
【0044】
クライアントデバイス170は、1つ以上の機械によって実行可能な命令または複数のソフトウェア、ファームウェア、または、それらの組合せを実行するように構成された基板に設けられた1つ以上のプロセッサを含んでもよい。プロセッサは、半導体ベースであり得る。すなわち、プロセッサは、デジタルロジックを実行できる半導体材料を含み得る。よって、クライアントデバイス170は、1つ以上のデータを、一時的に、恒久的に、半恒久的に、または、それらの組合せで格納するように構成された1つ以上のコンピュータメモリを含んでもよい。クライアントデバイス170は、識別子175と対応付けられてもよい。識別子175は、たとえば、クッキー、リソースアクセスサーバ110を経由して提供されてもよい。識別子175は、ユーザ識別子、たとえば、ユーザアカウントの一意のユーザ名であってもよい。クライアントデバイス170は、ソフトウェア、ファームウェア、または、それらの組合せの形態の機械によって実行可能な命令を表すブラウザなどのアプリケーション(図示せず)を含んでもよい。クライアントデバイス170は、これらのアプリケーションを利用してリソースを要求およびアクセスしてもよい。いくつかの実施態様では、アプリケーションは、モバイルアプリケーションであってもよい。
【0045】
クライアントデバイス170、リソースアクセスサーバ110、および/または管理リソース用サーバ180は、互いに通信していてもよく、その他のクライアントデバイスおよびサーバと1つ以上のネットワーク上で通信していてもよい。ネットワーク(図示せず)は、たとえば、ゲートウェイ装置、ブリッジ、スイッチ、ケーブル、ルータなどを用いて実現されるインターネット、有線または無線ローカルエリアネットワーク(LAN)、WiFi接続、Ethernet(登録商標)接続、ワイドエリアネットワーク(WAN)、セルラデータネットワークおよび/または通信ネットワークなどであってもよい。
【0046】
図1Aの例では、クライアントデバイス170は、認識済みの所在地160を経由してリソースアクセスサーバ110に接続する。この接続は、WiFiであってもよく、Ethernetであってもよく、イントラネットであってもよく、またはその他同様の種類の接続であってもよい。この接続は、たとえば、ログインによるVPNまたはインターネット接続であってもよい。クライアントデバイス170は、認識済みの所在地160を経由してリソース(たとえば、矢印1)を要求する。リソースアクセスサーバ110は、検索エンジンウェブサイト、図書館ポータル、病院ポータルなど、共通のアクセスポータルを表す。要求(たとえば、矢印1)は、一般的なクエリまたは特定のリソース用のクエリの形であってもよい。リソースアクセスサーバ110は、クエリに応じたリソースへの1つ以上のリンクを含む応答(たとえば、矢印2)を生成する。要求が一般的なクエリである場合、リソースアクセスサーバ110は、応答用リソースへのリンクを提供してもよく、当該リソースは、1つ以上のアクセス管理されたリソースを含んでもよい。この要求が特定のリソースについての要求である場合、応答は、このリソースへの1つのリンクであってもよい。また、リソースアクセスサーバ110は、クライアントデバイス170と認識済みの所在地との対応付けを記録した、クライアントデバイス170の状態データを生成する。よって、応答(たとえば、矢印2)は、アクセス管理されたリソースへのリンク、たとえば、1つのURL(または、一般的なクエリに応じた2つ以上のリソースへの複数のURL)である。この要求は認識済みの所在地を経由して行われたので、このリンクは、従来のリンク、たとえば、トークンなしのリンクであり得る。検索結果がクライアントデバイス(図示せず)のユーザに表示されてもよく、ユーザは、アクセス管理されたリソースのうちの1つのリソースのリンクを選択することによって特定のリソースを要求してもよい(たとえば、矢印3)。要求は、認識済みの所在地160を経由して管理リソース用サーバ180に対して行われる。管理リソース用サーバ180は、要求が認識済みの所在地(たとえば、矢印3)から送信されたと認識し、(ライセンスリソース情報が検証に合格した場合、)認識済みの所在地160(たとえば、矢印4)を経由してリソースをクライアントデバイス170に提供する。
【0047】
その後、クライアントデバイス170は、アクセス管理されたリソース(たとえば、矢印5)を求める別の要求を、認識済みの所在地160以外の場所から行ってもよい。たとえば、図書館利用者は、共通のアクセスポータルからオーディオブックへのアクセスを家から要求してもよい。また、要求は、クエリの形態であり得る。リソースアクセスサーバ110は、リソースがアクセス管理されたリソースであると判断し、このリソースを求める要求が認識済みの所在地以外の場所からの要求であると判断してもよい。これに応答して、リソースアクセスサーバ110は、クライアントデバイス170の状態データの場所を特定し、これに応答して、暗号化されたトークンを生成して、当該暗号化されたトークンをリソースへのリンクに含めて、クライアントデバイス(たとえば、矢印6)に送信してもよい。クライアントデバイス170は、このリンクを利用して管理リソース用サーバ180(たとえば、矢印7)からのリソースを要求してもよい。管理リソース用サーバ180は、リンクに含まれたトークンを確認し、トークンに含まれる情報が追加のチェックに合格した場合、クライアントデバイス170に当該リソース(たとえば、矢印8)へのアクセスを提供してもよい。クライアントデバイス170の期限が満了していない状態データをリソースアクセスサーバ110が特定できなかった場合、トークンは生成されず、クライアントデバイス170は、管理リソース用サーバ180からのリソースを正常に要求できなくなる。同様に、トークンに含まれる情報が追加のチェックに合格しなかった場合、リソースは、管理リソース用サーバ180によって提供されない。
【0048】
アクセス管理システム100は、一構成例を表しており、実施態様は、その他の構成を組み込んでもよい。たとえば、いくつかの実施態様は、リソースアクセスサーバ110の構成要素の1つ以上と管理リソース用サーバ180とを組み合わせてもよく、または、アクセスエンジン120、検証エンジン122、検証エンジン186の1つ以上の構成要素を組み合わせて1つのモジュールまたはエンジンにしてもよい。同様に、いくつかの実施態様では、インデックス112、状態データ114、アクセスデータベース116、および/またはアクセス管理されたリソース182を組み合わせて1つのデータストアとしてもよく、複数のコンピューティングデバイス間で分散されてもよく、別のアクセス可能なコンピューティングデバイスにおいて格納されてもよい。
【0049】
図1Bは、システム100の別の構成100’の別例である。システム100’の例では、管理リソース用サーバ180’は、リソースアクセスサーバ110について説明した機能を含む。つまり、管理リソース用サーバ180’は、状態データ114と、アクセスエンジン120とを含んでもよく、検証エンジン186は、検証エンジン122によって実行されると上述された機能を含んでもよい。この例では、クライアントデバイス170は、管理リソース用サーバ180’(たとえば、矢印1)からのリソースを認識済みの所在地160を経由して要求する。当該所在地が認識されているので、管理リソース用サーバ180’は、要求されたリソース(たとえば、矢印2)へのリンクを提供するだけでなく、たとえば、本明細書に記載したような認識済みの所在地との提携によってクライアントが利用可能なリソースを特定するために使われる情報を記録したクライアントデバイス170の状態データ114も生成する。このリソースへのリンクは、クライアントデバイス170に提供される。クライアントデバイス170のユーザは、このリンク(たとえば、矢印3)を選択して、認識済みの所在地160を経由してリソースにアクセスしてもよい。たとえば、リソースは、認識済みの所在地160(矢印4)を経由してクライアントデバイス170に提供される。その後、クライアントデバイス170は、認識済みの所在地160以外の位置を経由(たとえば、矢印5)して管理リソース用サーバ180’からのリソースを要求してもよい。管理リソース用サーバ180’が要求が認識済みの所在地を経由していないと判断し、クライアントデバイス170の期限が満了していない状態データ114を特定することに応じて、管理リソース用サーバ180’は、このリソースへのリンクを提供してもよい(矢印6)。このリンクは、検索結果に含まれる1つのリンクまたは複数のリンクであり得る。クライアントデバイス170のユーザは、トークンを含むこのリンクを選択することができる。これにより、リソースの要求が管理リソース用サーバ(矢印7)に送られる。トークンに含まれる情報が追加の検証テストに合格した場合、リソースがクライアントデバイス170(矢印8)に提供される。いくつかの実施態様では、管理リソース用サーバ180’が状態データ114を保持するので、トークンの利用は必須ではなく、管理リソース用サーバ180’は、本明細書に記載のトークン検証テストを状態データ114に基づいて実行してもよい。図1Aおよび図1Bは、例示にすぎず、実施態様は、その他の構成も含む。
【0050】
図3は、開示された実施態様に係る、管理リソースに認識済みの所在地以外の場所からアクセスするための例示的な工程300のフロー図を示す。工程300は、図1Aのシステム100または図1B図100’など、アクセス管理システムによって実行されてもよい。工程300は、管理リソースに認識済みの所在地からアクセスする複数のクライアントデバイスの状態データを生成し、状態データを用いて、特定の状況下で管理リソースに認識済みの所在地以外の場所からアクセスするための一時的に暗号化されたトークンを生成してもよい。工程300は、クライアントデバイスのユーザに影響を与えることなく実施されてもよい。つまり、クライアントデバイスのユーザは、認識済みの所在地以外の場所からリソースにアクセスするために、別途ステップの実行や、追加の入力を行う必要がない。これにより、ユーザエクスペリエンスが向上し、クライアントデバイス上のリソースを節約することができる。工程300は、認識済みの所在地を経由してリソースを要求することから開始してもよい(305)。たとえば、クライアントデバイス、たとえば、図1Aのクライアントデバイス170は、プロキシ、保護された接続(たとえば、VPN)、またはEthernetもしくはWiFi接続、ブラウザ地理位置情報APIによって特定された物理的位置、すなわち、認識済みの所在地、つまり、特定のリソースへのアクセス権を有すると認識された所在地を用いて要求を送ってもよい。いくつかの実施態様では、この要求は、リソースアクセスサーバ、たとえば、検索エンジン、リソースポータル、またはその他のリソースアクセスサイトによって受け付けられてもよい(310)。アクセスサーバは、たとえば、1つ以上のデータストアを用いて、この要求がアクセス管理されたリソースの要求であり、認識済みの所在地から送信されたと判断する。いくつかの実施態様では、要求は、クエリであってもよく、リソースは、クエリに対する応答であってもよい。アクセスサーバは、要求とともに受信したクライアント識別子を用いてクライアントの状態データを生成する(315)。たとえば、要求は、デバイスについてのクッキーの値を含んでもよい。別の例として、要求は、デバイスに一意の数字、電話番号などを含んでもよい。別の例として、要求は、アクセスサーバが認識するユーザアカウント(たとえば、ソーシャルメディアのアカウント)と対応付けられたデバイスから行われもよい。つまり、ユーザは、デバイス上でアカウントにログインしてもよく、アクセスサーバは、このログイン状態を認識してもよい。また、ユーザアカウント、たとえば、ユーザ名は、デバイス識別子であるとみなされる。生成されたクライアントデバイスの状態データは、デバイス識別子、タイムスタンプ、およびライセンスリソース情報を含む。いくつかの実施態様では、状態データに含まれるデバイス識別子は、ハッシュされてもよい。ライセンスリソース情報は、たとえば、クライアントデバイスのユーザと認識済みの所在地との提携に基づいた、クライアントデバイスがアクセス権を有するリソースを表す任意の情報である。非限定例として、リソースコレクション識別子、認識済みの所在地のIPアドレス、認識済みの所在地に対応付けられた団体コード、サブスクリプション情報などが挙げられる。状態データを生成することは、クライアントデバイスおよびライセンスリソース情報についての既存の状態データレコードのタイムスタンプを更新することを含む。状態データを生成することは、クライアントデバイスについての新しい状態データレコードを書き込むことを含んでもよい。状態データレコードは、タイムスタンプに基づいて期限が満了する。よって、認識済みの所在地以外の場所からのアクセスは、一時的なものである。状態データがアクティブである(たとえば、期限が満了していない)期間の長さは、管理リソースの所有者および/または認識済みの所在地に対応付けられた団体との契約上の取り決めに基づいてもよい。期間の長さは、数日、1週間、2週間、1ヶ月などであってもよい。認識済みの所在地以外の場所からのアクセスをシームレスにしておくために、クライアントデバイスは、状態データの期限が満了する前に認識済みの所在地を経由してリソースにアクセスし得る。たとえば、状態データの期限が2週間後に満了する場合、学生は、この2週間が終わる前に大学構内を訪れて大学構内のWiFiを使ってリソースにアクセスしてもよい。このようにすることにより、2週間を再スタートさせる。期限を設けることにより、クライアントデバイスのユーザが認識済みの所在地によって表される団体とのアクティブな対応付けを維持することが保証される。
【0051】
リソースアクセスサーバ110は、アクセス管理されたリソースへのリンクを含む、要求に対する応答を生成する(320)。要求が一般的なクエリである場合、応答を生成することは、これらの応答用リソースのうち、どのリソースがクエリに対するリソースであるかを判断することと、認識済みの所在地を経由してアクセス可能な応答用リソースについてのそれぞれのリンクを生成することとを含んでもよい。よって、リンクは、検索結果の一部として提供されてもよい。また、要求されたリソースへのリンクは、個々に提供されてもよい。認識済みの所在地を経由してクライアントデバイスにリンクを提供してもよく、クライアントデバイスのユーザは、リンクを選択してリソースにアクセスしてもよい(325)。リンクによってリソースにアクセスする要求は、たとえば、330において管理リソース用サーバによって処理されてもよい。図3に示すような管理リソース用サーバによって実行されるテストの順序は、一例として提供されており、実施態様は、図3に示す一連のテストに限定されない。管理リソース用サーバは、要求がトークンを含むかどうかを判断してもよい(330)。言い換えると、管理リソース用サーバは、トークンが含まれているかどうか、URLを確認してもよい。トークンが見つからない場合(330、No)、管理リソース用サーバは、要求されたリソースへのアクセス権を要求元が有するかどうかを判断してもよい(350)。トークンを含まない要求の場合、アクセス管理サーバは、要求の送信元の所在地を利用して、要求されたリソースへのアクセス権を要求元が有するかどうかを判断してもよい。いくつかの実施態様では、所在地は、IPアドレスであってもよく、ドメインであってもよい。いくつかの実施態様では、所在地は、IPアドレスまたはドメインなど、所在地と要求されたリソースとの組合せであってもよい。いくつかの実施態様では、所在地は、認識済みの所在地の識別子であってもよい。言い換えると、管理リソース用サーバ180は、データベースを用いて、当該要求に対応付けられた所在地が要求されたリソースにアクセス可能であるかどうかを判断してもよい。たとえば、出版元は、特定の団体が利用できるリソースについて別々の団体と別々の取り決めを結んでもよい。ニューヨーク州にある大学が医学雑誌を利用でき、ニューメキシコ州にある大学が工学雑誌を利用できてもよい。このように、認識済みの所在地は、管理リソース用サーバにあるすべてのリソース所在地でなくてもよい。したがって、管理リソース用サーバは、要求の所在地が、要求されている特定のリソースについての認識済みの所在地であるかどうかを判断してもよい。また、管理リソース用サーバは、所在地が認識済みであるかどうかを判断することの一部として、特定の所在地からの要求の数を特定するなど、その他のテストを行ってもよい。
【0052】
要求されたリソースへのアクセス権を要求元が有する場合(350、Yes)、管理リソース用サーバは、要求されたリソースを要求元に提供する(355)。クライアントデバイスは、認識済みの所在地を経由したリソースへのアクセスを受け付ける(365)。要求されたリソースへのアクセス権を要求元が有さない場合(350、No)、管理リソース用サーバは、要求された記事へのアクセスを拒否する(360)。これは、アクセス権を購入するためのリンク付きのリソースの概要などを提供するエラーメッセージを提供することを含んでもよい。クライアントデバイスは、認識済みの所在地を経由して拒否を受け付ける(365)。
【0053】
また、クライアントデバイスは、認識済みの所在地以外の場所からアクセス管理されたリソースへのアクセスを要求してもよい(370)。この要求は、アクセスサーバへのクエリであってもよい。アクセスサーバは、クライアントデバイスの期限が満了していない、つまり、状態データがアクティブであるかどうかを判断してもよい(375)。たとえば、315において、状態データは、クライアントデバイスが認識済みの所在地を経由してアクセスサーバにアクセスしたときに生成される。認識済みの所在地は、この意味では、特定のリソースに関わらず管理リソース用サーバによって認識される任意の所在地である。状態データの期限は、生成されてから有効期間が経過していない場合、満了していない。状態データは、状態データが生成されるときにセットされるタイムスタンプを含む。タイムスタンプは、状態データの期限が満了する時刻を表してもよい。タイムスタンプは、状態データが生成された時刻を表してもよく、状態データは、有効期限後に満了する。上記したように、有効期限は、予め固定されているが、団体または管理リソースの所有者によって変更可能である。クライアントデバイスの状態データが見つからなかった場合、または期限が満了していた場合(375、No)、アクセスサーバは、リソースへのアクセスを拒否してもよい(390)。アクセスを拒否することは、リソースがクエリへの応答であったとしてもリソースへのリンクを検索結果に含めて提供しないことを含んでもよい。アクセスを拒否することは、応答してリソースへのリンクをトークンなしで提供することを含んでもよい。これは、認識済みの所在地からの要求ではないと管理リソース用サーバが今後判断することになるので、事実上、アクセスを拒否することになる。アクセスを拒否することは、その他のリンク、たとえば、スニペットを含む検索結果と、リソースへのアクセス権を購入するためにユーザが定期購入できるようにするプロセスへのリンクとを提供することを含んでもよい。
【0054】
クライアントデバイスの状態データが存在し、当該状態データの期限が満了していない場合(375、Yes)、アクセスサーバは、リソースのトークンを生成する(380)。トークンは、要求が認識済みの所在地と対応付けられているかを管理リソース用サーバが検証できるデータを含む。要求がクエリである場合など、いくつかの実施態様では、アクセスサーバは、クエリに対する応答であるアクセス管理されたリソースごとにトークンを生成してもよい。いくつかの実施態様では、トークンは、悪人を抑止するために暗号化されてもよい。トークンは、タイムスタンプを含む。このタイムスタンプにより、トークンが短期間有効であることが保証される。短期間は、クライアントデバイスが、たとえば、ブラウザ上の「戻る」または「進む」ボタンを使ってリソースを再要求することを許容できる期間である。短期間は、通常、状態データの有効期間よりもはるかに短い。たとえば、トークンが有効である期間は、1時間以下であってもよい。この期間は、リソースの所有者によって設定されてもよい。状態データと同様に、トークンのタイムスタンプは、実施態様に応じて、トークンが生成される時刻であってもよく、トークンの期限が満了する時刻であってもよい。また、トークンは、乱数を含む。乱数により、トークンの一意性が保証される。よって、乱数は、一意性を保証するのに十分な長さであってもよい。たとえば、乱数は、64ビットであってもよい。また、トークンは、ライセンスリソース情報を含んでもよい。ライセンスリソース情報とは、クライアントデバイスがアクセス権を有するリソースがどれであるかを管理リソース用サーバが判断するために使う情報である。これは、たとえば、アクセスまたはサブスクリプションデータベースへのキーであってもよく、キー値のペアであってもよく、認識済みの所在地の識別子であってもよい。また、いくつかの実施態様では、トークンは、トークンの生成時にクライアントデバイスが使用したIPサブネットを含んでもよい。IPサブネットは、本明細書においてより詳細に記載する、不正な(たとえば、共有された、複製された)要求を特定するために利用することができる。いくつかの実施態様では、トークンは、暗号化されてもよい。暗号化キーは、アクセス管理サーバが知っているまたは当該サーバと共有されるキーであってもよい。トークンの暗号化によって、不正使用の機会、たとえば、トークンのなりすましを制限する。トークン、たとえば、暗号化されたトークンは、それぞれのリソースのリンクに含まれてクライアントデバイスに提供される。そして、クライアントデバイスは、トークン付きのリンクを用いて、認識済みの所在地以外の場所からリソースにアクセスできるようになる(395)。
【0055】
管理リソース用サーバは、トークンを有するURLを経由して要求を受け付け、トークンを認識し(330、Yes)、暗号化キーを使ってトークン暗号化を解除する(335)。管理リソース用サーバは、トークンからのデータに対して一連のチェックまたはテストを行う。たとえば、管理リソース用サーバは、トークンの期限が満了しているかどうかを判断してもよい(340)。上記したように、トークンは、短期間、たとえば、1時間有効であってもよい。短期間であることによって、不正使用の機会、たとえば、他者とのリンクの共有をやめさせたり、制限したりする。また、トークンは、何度も確認された場合、期限が満了したとみなされてもよい。乱数により、トークンが一意になる。いくつかの実施態様では、管理リソース用サーバは、トークンが提示される回数を数えてもよい。トークンは、何度も提示される場合、期限が満了したとみなされてもよい。また、このタイプの期限によって、不正使用の機会が制限される。トークンが提示される回数は、3回または4回など、少なくてもよく、これにより、ユーザは、ブラウザの「戻る」ファンクションおよび「進む」ファンクションを限られた回数利用できるようになる。この回数よりも多く提示されたトークンは、拒否、たとえば、期限が満了したとみなされてもよい。トークンの期限が満了した場合(340、Yes)、管理リソース用サーバは、要求された記事へのアクセスを拒否する(360)。たとえば、365において、認識済みの所在地を経由してリソースにアクセスしなければならないと示すメッセージが表示されてもよく、アクセス権を購入するためのリンク、ログイン画面へのリンクなどとともにメッセージが表示されてもよい。
【0056】
トークンの期限が満了していない場合(340、No)、管理リソース用サーバは、トークンのIPサブネットが要求の送信元のIPアドレスのIPサブネットと一致するかどうかを判断してもよい(345)。このテストは、トークンがIPサブネット情報を含む場合に実行される。このテストは、正当なユーザが同じエリア内の異なるセルタワーまたはWiFiルータへ切り替えることを許可しつつ、トークンの配布を限定することによって、不正使用の機会を制限する。しかしながら、リンクが共有される場合、IPサブネット外のIPアドレスからの当該リンクを用いた要求は、ブロックされる。このように、トークンのIPサブネットが要求のIPサブネットに一致しない場合(345、No)、管理リソース用サーバは、リソースへのアクセスを拒否する(360)。IPサブネットが一致した場合、またはトークンがIPサブネットデータを含まない場合、管理リソース用サーバは、要求されたリソースへのアクセス権を要求元が有するかどうかを判断してもよい(350)。トークンを有するリンクの場合、アクセス管理サーバは、トークンに含まれるライセンスリソース情報をこのテストに用いてもよい。トークンに含まれるライセンスリソース情報は、クライアントデバイスの状態データから取り出され、クライアントデバイスが認識済みの所在地と提携していると認識するために管理リソース用サーバが使う任意の情報、たとえば、認識済みの所在地との提携により利用可能なリソース、リソースのコレクション、このようなコレクションのサブスクリプションなどを識別する情報であり得る。管理リソース用サーバは、トークンに含まれるライセンスリソース情報を用いて、要求されたリソースへのアクセス権を要求元が有するかどうかを判断する。ライセンスリソース情報が要求されたリソースに一致しない場合(350、No)、システムは、リソースへのアクセスを拒否する(360)。ライセンスリソース情報が要求されたリソースに一致する場合(350、Yes)、システムは、上述したように要求されたリソースを提供し、トークンアクセス回数をインクリメントしてもよい(355)。トークンへのアクセスを追跡することにより、管理リソース用サーバは、トークンが正常に提示される回数を制限できるようになる。トークンテスト、たとえば、ステップ340~ステップ350は、必須ではなく、任意の順序で完了できる。いくつかの実施態様は、テストを実行しなくてもよい。いくつかの実施態様は、追加のテストを実行してもよい。複数の異なるクライアントデバイスおよび異なる認識済みの所在地に対して工程300が同時に繰り返されてもよいことはいうまでもない。また、いくつかの実施態様では、アクセスサーバによって実行されると説明した特定のステップは、管理リソース用サーバによって実行されてもよいことはいうまでもない。このように、実施態様は、図3によって表された通りの構成に限定されない。
【0057】
図4は、一般的なコンピュータデバイス400の例を示す図である。コンピュータデバイス400は、本明細書に記載の技術とともに用いられ得る図1Aのサーバ110、サーバ160、サーバ180、および/またはクライアントデバイス170として動作してもよい。コンピューティングデバイス400は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、携帯電話、スマートフォン、タブレット端末、サーバ、およびウェアラブルデバイスを含むその他のコンピューティングデバイスなど、様々な例示的な形態のコンピューティングデバイスを表す。ここに示す構成要素、その接続および関係、およびその機能は、例示にすぎず、本明細書に記載するおよび/またはクレームされた発明の実施態様に限定されない。
【0058】
コンピューティングデバイス400は、インターフェース408を介して接続されたプロセッサ402と、メモリ404と、記憶装置406と、拡張ポート410とを備える。いくつかの実施態様では、コンピューティングデバイス400は、インターフェース408を介して接続されたコンポーネントの中でも、送受信部446と、通信インターフェース444と、GPS(Global Positioning System)受信機モジュール448とを備えてもよい。デバイス400は、通信インターフェース444を通してワイヤレス通信を行ってもよく、デジタル信号処理回路を適宜含んでもよい。コンポーネント402、404、406、408、410、440、444、446、および448の各々は、共通のマザーボード上に搭載されてもよく、その他の方法で適宜搭載されてもよい。
【0059】
プロセッサ402は、ディスプレイ416など、外部の入出力装置上のGUIについてのグラフィック情報を表示するためのメモリ404内または記憶装置406上に格納された命令を含む、コンピューティングデバイス400内で実行するための命令を処理できる。ディスプレイ416は、モニタであってもよく、フラットタッチスクリーンディスプレイであってもよい。いくつかの実施態様では、複数のメモリおよび複数種類のメモリとともに、複数のプロセッサおよび/または複数のバスを適宜利用してもよい。また、複数のコンピューティングデバイス400は、各デバイスが(たとえば、サーババンク、ブレードサーバの群、またはマルチプロセッサシステムとしての)必要な動作の一部を提供する状態で互いに接続されてもよい。
【0060】
メモリ404は、コンピューティングデバイス400内に情報を格納する。一実施態様において、メモリ404は、1つまたは複数の揮発性記憶装置である。別の実施態様では、メモリ404は、1つまたは複数の不揮発性記憶装置である。また、メモリ404は、磁気ディスクまたは光ディスクなど、別の形態のコンピュータ読み取り可能な媒体であってもよい。いくつかの実施態様では、メモリ404は、拡張インターフェースを通して提供される拡張メモリを含んでもよい。
【0061】
記憶装置406は、コンピューティングデバイス400用の大容量ストレージを提供できる。一実施態様において、記憶装置406は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置、フラッシュメモリもしくは他の同様の固体メモリ装置、または、ストレージエリアネットワークもしくはその他の構成に含まれる装置を含む装置の配列など、コンピュータ読み取り可能な媒体であってもよく、または、当該コンピュータ読み取り可能な媒体を含んでもよい。このようなコンピュータ読み取り可能な媒体にコンピュータプログラムプロダクトが有形に含まれ得る。また、このコンピュータプログラムプロダクトは、命令を含んでもよく、当該命令は、実行されると、上述した方法など、1つ以上の方法を実行する。コンピュータまたは機械読み取り可能な媒体は、メモリ404、記憶装置406、またはプロセッサ402上のメモリなど、記憶装置である。
【0062】
インターフェース408は、多くの処理能力を必要とするコンピューティングデバイス400のための動作を管理する高速コントローラであってもよく、処理能力をそれほど必要としない動作を管理する低速コントローラであってもよく、または、このようなコントローラの組合せであってもよい。デバイス400のその他のデバイスとの近距離通信が可能になるよう、外部インターフェース440が提供されてもよい。いくつかの実施態様では、コントローラ408は、記憶装置406および拡張ポート414に連結されてもよい。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、Ethernet(登録商標)、無線Ethernet)を含み得る拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力装置、または、スイッチもしくはルータなどのネットワーク装置に、たとえば、ネットワークアダプタを通じて連結されてもよい。
【0063】
コンピューティングデバイス400は、図に示すような複数の異なる形態で実現されてもよい。たとえば、標準サーバ430として実現されてもよく、このようなサーバの群で複数回実現されてもよい。また、ラックサーバシステムの一部として実現されてもよい。これに加えて、ラップトップコンピュータ432、パーソナルコンピュータ434、またはタブレット端末/スマートフォン436など、コンピューティングデバイスで実現されてもよい。システム全体は、互いに通信する複数のコンピューティングデバイス400から構成されてもよい。その他の構成も可能である。
【0064】
図5は、一般的なコンピュータデバイス500の例を示す図である。コンピュータデバイス500は、本明細書に記載の技術とともに用いられ得る図1Aのサーバ110、サーバ160、またはサーバ180であってもよい。コンピューティングデバイス500は、サーバ、ブレードサーバ、データセンター、メインフレームなど、大規模なデータ処理デバイス、およびその他の大規模なコンピューティングデバイスの様々な例示的な形態を表す。コンピューティングデバイス500は、ネットワーク接続されたストレージノードを含み得る、複数のプロセッサを有する分散システムであってもよく、当該複数のプロセッサは、1つ以上の通信ネットワークによって互いに接続される。ここに示す構成要素、その接続および関係、およびその機能は、例示にすぎず、本明細書に記載するおよび/またはクレームされた発明の実施態様に限定されない。
【0065】
分散コンピューティングシステム500は、任意の数のコンピューティングデバイス580を備えてもよい。コンピューティングデバイス580は、ローカルまたはワイドエリアネットワーク、専用の光リンク、モデム、ブリッジ、ルータ、スイッチ、有線または無線ネットワーク上で通信しているサーバまたはラックサーバ、メインフレームなどを含んでもよい。
【0066】
いくつかの実施態様では、各コンピューティングデバイスは、複数のラックを含んでもよい。たとえば、コンピューティングデバイス580aは、複数のラック558a~558nを含む。各ラックは、プロセッサ552a~552nおよび562a~562nなど、1つ以上のプロセッサ含んでもよい。プロセッサは、データプロセッサ、ネットワーク接続された記憶装置、およびその他のコンピュータ制御されたデバイスを含んでもよい。いくつかの実施態様では、1つのプロセッサがマスタプロセッサとして動作し、スケジューリングタスクおよびデータ分散タスクを制御してもよい。プロセッサが1つ以上のラックスイッチ558を通して互いに接続されてもよく、1つ以上のラックがスイッチ578を通して互いに接続されてもよい。スイッチ578は、複数の接続されたコンピューティングデバイス500間の通信を処理してもよい。
【0067】
各ラックは、メモリ554およびメモリ564などのメモリと、556および566などのストレージとを含む。ストレージ556および566は、大容量ストレージを提供してもよく、ネットワーク接続されたディスク、フロッピーディスク、ハードディスク、光ディスク、テープ、フラッシュメモリ、もしくはその他の同様の固体メモリ装置、またはストレージエリアネットワークもしくはその他の構成に含まれるデバイスを含むデバイスの配列など、揮発性または不揮発性ストレージを含んでもよい。ストレージ556または566は、複数のプロセッサ、複数のラック、または複数のコンピューティングデバイス間で共有されてもよく、プロセッサのうちの1つ以上によって実行可能な命令を格納したコンピュータ読み取り可能な媒体を含んでもよい。メモリ554および564は、たとえば、1つもしくは複数の揮発性記憶装置、1つもしくは複数の不揮発性記憶装置、ならびに/または、磁気ディスクもしくは光ディスク、フラッシュメモリ、キャッシュ、RAM(Random Access Memory)、ROM(Read Only Memory)、およびそれらの組合せなど、その他の形態のコンピュータ読み取り可能な媒体を含んでもよい。また、メモリ554など、メモリがプロセッサ552a~552n間で共有されてもよい。インデックスなどのデータ構造が、たとえばストレージ556およびメモリ554に格納されてもよい。コンピューティングデバイス500は、コントローラ、バス、入出力装置、通信モジュールなど、図示しないその他のコンポーネントを備えてもよい。
【0068】
システム100、100’、または100”など、システム全体は、互いに通信する複数のコンピューティングデバイス500から構成されてもよい。たとえば、デバイス580aは、デバイス580b、580c、および580dと通信してもよく、これらは、まとめてサーバ110、サーバ160、またはサーバ180として認められてもよい。別の例として、図1のシステム100は、1つ以上のコンピューティングデバイス500を備えてもよい。コンピューティングデバイスのいくつかは、地理的に互いに近くに位置していてもよく、その他は地理的に離れた場所に位置していてもよい。システム500のレイアウトは、例示にすぎず、システムは、その他のレイアウトまたは構成をとってもよい。
【0069】
本開示の特定の態様によると、方法は、アクセス管理されたリソースの要求をクライアントデバイスから受け付けるステップを含み、要求は、クライアントデバイス識別子を含み、方法は、さらに、要求が認識済みの所在地と対応付けられていないと判断するステップと、クライアントデバイス識別子の状態データを特定するステップと、サーバにあるアクセス管理されたリソースにアクセスするためのリンクを生成するステップと、タイムスタンプと、乱数と、状態データからのライセンスリソース情報とを含む暗号化されたトークンを生成するステップと、暗号化されたトークンをリンクに含めるステップと、リンクをクライアントデバイスに提供するステップとを含み、ユーザデバイスは、アクセス管理されたリソースを要求するためにリンクを使う。
【0070】
これと他の態様は、下記の特徴のうちの1つ以上を単体または組合せで含み得る。たとえば、要求は、第1要求であってもよく、アクセス管理されたリソースは、第1のアクセス管理されたリソースであり、第1要求を受け付ける前に、方法は、第2のアクセス管理されたリソースの第2要求をクライアントデバイスから受け付けるステップをさらに含み、第2要求は、クライアントデバイス識別子を含み、方法は、さらに、第2要求が認識済みの所在地と対応付けられていると判断するステップと、クライアントデバイスの状態データを生成するステップと、状態データをメモリに格納するステップとを含む。別の例として、状態データは、タイムスタンプと、クライアントデバイス識別子と、ライセンスリソース情報とを含んでもよい。別の例として、ライセンスリソース情報は、認識済みの所在地を表してもよい。いくつかの実施態様では、ライセンスリソース情報は、認識済みの所在地と、認識済みの所在地が利用可能な管理リソースとを表す。別の例として、認識済みの所在地は、ドメイン名、地理位置情報、および/またはインターネットプロトコル(IP)アドレスであってもよい。別の例として、要求は、クエリであってもよく、アクセス管理されたリソースは、クエリに応じたリソースである。別の例として、クライアントデバイス識別子は、ユーザアカウントであってもよい。別の例として、記クライアントデバイスがアクセス管理されたリソースを要求するためにリンクを使用するステップは、管理リソース用サーバにおいて、アクセス管理されたリソースを求める要求に含まれるリンクを受け付けるステップと、リンクに含まれるトークンを特定するステップと、トークンの暗号化を解除するステップと、タイムスタンプに基づいてトークンの期限が満了していないと判断し、ライセンスリソース情報に基づいてアクセス管理されたリソースが利用可能であると判断することによって、トークンを検証するステップと、トークンが検証されたことに応答して、アクセス管理されたリソースをクライアントデバイスに提供するステップとを含んでもよい。
【0071】
本開示の特定の態様によると、システムは、少なくとも1つのプロセッサと、クライアントデバイスの状態データレコードを格納するデータストアと、命令を格納するメモリとを備え、命令は、少なくとも1つのプロセッサによって実行されると、システムに動作を実行させる。動作は、デバイス識別子を有するクライアントデバイスからクエリを受け付けることと、クエリに応じた少なくとも1つのリソースが、アクセス管理されたリソースであると判断することとを含む。アクセス管理されたリソースの認識済みの所在地にクエリが対応付けられていると判断することに応答して、動作は、アクセス管理されたリソースへのリンクを生成することと、クライアントデバイスの状態データレコードをデータストアにおいて生成することとを含み、状態データは、クライアントデバイス識別子と、タイムスタンプと、認識済みの所在地との対応付けとを含む。認識済みの所在地にクエリが対応付けられていないと判断することに応答して、動作は、さらに、クライアントデバイス識別子についての期限が満了していない状態データレコードをデータストアにおいて特定することを含み、期限が満了していない状態データレコードを特定することに応答して、乱数と、タイムスタンプと、状態データレコードからのライセンスリソース情報とを含むトークンを生成し、アクセス管理されたリソースへのリンクにトークンを含めることを含む。クライアントデバイス識別子についての状態データレコードをデータストアにおいて特定できなかったことに応答して、トークンなしでリンクを生成することとを含み、動作は、さらに、クエリの検索結果をクライアントデバイスに返すことを含み、検索結果は、リソースへのリンクを含み、クライアントデバイスは、リソースへのリンクを使用してアクセス管理サーバからのリソースを要求し、アクセス管理サーバは、認識済みの所在地に対応付けられた要求からリソースへのアクセスを提供するように構成される。
【0072】
これらのおよびその他の態様は、下記の特徴のうち1つ以上を単体または組合せで含み得る。たとえば、認識済みの所在地に対応付けられた要求からリソースへのアクセスを提供する際に、アクセス管理サーバは、アクセス管理されたリソースへのリンクであって、所在地が対応付けられたリンクを特定のクライアントデバイスから受け付け、所在地が認識済みの所在地であるかどうかを判断し、所在地が認識済みの所在地であると判断することに応答して、アクセス管理されたリソースを提供し、所在地が認識済みの所在地ではないと判断し、期限が満了していないトークンをリンクが含むと判断することに応答して、アクセス管理されたリソースを提供し、所在地が認識済みの所在地ではないと判断し、リンクがトークンを含んでいない判断するまたはリンクに含まれるトークンの期限が満了していると判断することに応答して、アクセス管理されたリソースへのアクセスを拒否するように構成される。いくつかの実施態様では、トークンは、要求のIPアドレスのIPサブネットをさらに含み、アクセス管理サーバは、所在地が認識済みの所在地ではなく、期限が満了していないトークンをリンクが含むと判断することに応答して、特定のクライアントデバイスのIPサブネットがトークンに含まれるIPサブネットと一致するかどうかを判断し、IPサブネットが一致しないと判断することに応答して、アクセス管理されたリソースへのアクセスを拒否するように、さらに構成される。別の例として、認識済みの所在地は、地理位置情報および/またはIPアドレスを表してもよい。別の例として、トークンは、リンクに含まれる前に暗号化される。
【0073】
本開示の特定の態様によると、方法は、アクセス管理されたリソースの要求をクライアントデバイスから受け付けるステップを含み、要求は、所在地を有し、方法は、さらに、所在地が認識済みの所在地ではないと判断するステップと、タイムスタンプと、乱数と、ライセンスリソース情報とを含むトークンを要求が含むと判断するステップと、タイムスタンプに基づいてトークンの期限が満了していないと判断するステップと、ライセンスリソース情報によって識別されるリソースが要求されたリソースと一致すると判断するステップと、アクセス管理されたリソースをクライアントデバイスに提供するステップとを含み、上記以外の場合、クライアントデバイスは、アクセス管理されたリソースへのアクセスを拒否する。
【0074】
これらのおよびその他の態様は、下記の特徴のうち1つ以上を単体または組合せで含み得る。たとえば、トークンは、暗号化されていてもよく、方法は、トークンの暗号化を解除するステップをさらに含む。別の例として、トークンは、IPサブネットをさらに含んでもよく、方法は、トークンに含まれるIPサブネットと一致するIPサブネットをクライアントデバイスのIPアドレスが含むと判断するステップをさらに含む。別の例として、方法は、乱数によって識別されるトークンのカウンタをインクリメントするステップと、トークンのカウンタがしきい値に達していないと判断するステップとをさらに含んでもよい。
【0075】
様々な実施態様は、ストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置とデータおよび命令を送受信するために連結された特定用途プロセッサまたは汎用プロセッサであり得る少なくとも1つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能および/または解釈可能な1つ以上のコンピュータプログラムでの実現を含み得る。
【0076】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラム可能なプロセッサ用の機械命令を含み、高レベルの手続き形言語および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ言語/機械言語で実現できる。用語「機械読み取り可能な媒体」および「コンピュータ読み取り可能な媒体」は、本明細書において使用するとき、プログラム可能なプロセッサに機械命令および/またはデータを提供するために使われる、任意の非一時的なコンピュータプログラムプロダクト、装置、および/またはデバイス(たとえば、磁気ディスク、光学ディスク、メモリ(Read Access Memoryを含む)、PLD(Programmable Logic Devices))を指す。
【0077】
本明細書に記載のシステムおよび技術は、(たとえば、データサーバとしての)バックエンドコンポーネントを備えるコンピュータシステム、ミドルウェアコンポーネント(たとえば、アプリケーションサーバ)を備えるコンピュータシステム、フロントエンドコンポーネント(たとえば、本明細書に記載のシステムおよび技術の実施態様とユーザがやり取りできるグラフィカルユーザーインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を備えるコンピュータシステム、または、このようなバックエンドコンポーネント、ミドルウェアコンポーネント、フロントエンドコンポーネントの任意の組合せを備えるコンピュータシステムで実現され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって互いに接続され得る。通信ネットワークとして、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、インターネットなどが挙げられる。
【0078】
コンピュータシステムは、クライアントとサーバとを含み得る。クライアントおよびサーバは、一般に、互いから離れており、通常、通信ネットワークを通じてやり取りを行う。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作し、クライアントとサーバとの関係を互いに有するコンピュータプログラムによって成り立つ。
【0079】
いくつかの実施態様を説明した。しかし、本発明の趣旨および範囲から逸脱することなく、様々な変更がなされてもよい。これに加えて、図示した論理フローは、所望の結果を実現するために、図示した特定の順序またはシーケンス順である必要はない。これに加えて、記載のフローにその他のステップが提供されてもよく、ステップが排除されてもよく、記載のシステムにその他の構成要素が追加されても削除されてもよい。したがって、その他の実施態様も添付の特許請求の範囲に含まれる。
図1A
図1B
図2
図3
図4
図5