JP2019096076A - アクセス制御システム、その制御方法およびプログラム - Google Patents

アクセス制御システム、その制御方法およびプログラム Download PDF

Info

Publication number
JP2019096076A
JP2019096076A JP2017225129A JP2017225129A JP2019096076A JP 2019096076 A JP2019096076 A JP 2019096076A JP 2017225129 A JP2017225129 A JP 2017225129A JP 2017225129 A JP2017225129 A JP 2017225129A JP 2019096076 A JP2019096076 A JP 2019096076A
Authority
JP
Japan
Prior art keywords
access token
region
resource
server
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017225129A
Other languages
English (en)
Inventor
存 田村
Tamotsu Tamura
存 田村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2017225129A priority Critical patent/JP2019096076A/ja
Priority to US16/196,971 priority patent/US10963554B2/en
Publication of JP2019096076A publication Critical patent/JP2019096076A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • G06F21/335User authentication using certificates for accessing specific resources, e.g. using Kerberos tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0892Network architectures or network communication protocols for network security for authentication of entities by using authentication-authorization-accounting [AAA] servers or protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/107Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】各リージョンの規則でアクセス制限される場合に、リージョンに応じて、リソースサーバーがクライアントからのアクセスを受け入れてよいか判断可能とする。【解決手段】WAN100上に構成されるアクセス制御システムにおいて、認可サーバーは、OAuthオーナーがユーザーである場合、ユーザーの存在するリージョンでのみ利用可能なアクセストークンを発行する。リソースサーバーは、アクセストークンの利用可能なリージョンを自身のリージョンと比較し、クライアントからのアクセスを受け入れるか否か判断する。【選択図】図1

Description

本発明は、認証・認可処理によりリソースサービスへのアクセスを制御するアクセス制御システム、その制御方法およびプログラムに関する。
クラウドが一般化するに伴い、複数のサービスを連携させる機会はますます増加している。サービスとは、インターネット等のネットワークを介して接続されたサーバーが提供する機能、換言すれば、ウェブアプリケーションのことを指す。サービスを連携させることでサービス提供者は、ユーザーに通常のサービスに付加価値を加えた新たなサービスを提供することができる。その一方で、サービスが連携することにより、いくつかの課題が生まれる。
すなわち、ユーザーが望んだ以上の情報がサービス間でやりとりされる虞があり、ユーザーデータや個人情報に関する情報の流出という課題がある。たとえばインターネット上には複数のサービスが存在し、様々なサービス間でサービス連携が実現される可能性があるが、ユーザーが認識したサービス以外がユーザーデータや個人情報を操作できてはいけない。またサービスの提供者からすると、サービス連携の仕組みは容易に実装できるものが好ましい。このような状況において、OAuthと呼ばれる、認可の連携を実現させるための標準プロトコルが策定されている。
OAuthによれば、たとえばある端末内のアプリケーションからクラウドサービスが管理するデータにアクセスする場合は、アプリケーションはデータの所有者であるユーザーの明示的な認可を得ることになっている。ユーザーが認可すると、アプリケーションはアクセスを認められたことを証明するトークン(以下、アクセストークン)を受け取り、以降のアクセスはそのアクセストークンを用いて実現できる。以下では、アクセストークンの発行のための操作を認可操作と称する。
また、データなどのリソースの所有者をOAuthオーナー、OAuthオーナーの認可を受けてリソースを利用するものをOAuthクライアントと称する。サービス連携においては、あるサービスで管理されているリソースを利用する外部サービスもしくは外部アプリケーションが、前述のOAuthクライアントとして振る舞う。なおリソースの所有者であるOAuthオーナーは、ユーザーの場合もあれば、外部サービスや外部アプリケーション自身の場合もある。後者の場合はOAuthオーナーとOAuthクライアントが一致することになる。
昨今はアクセストークンとして、トークンID以外の他にも属性情報を持てるJSON Web Token(以下、JWT)と呼ばれるトークンを用いる仕組みが検討されている。
認可サーバーは認可サーバーの秘密鍵を用いてアクセストークンに署名する。アクセストークンを受信したリソースサーバーは、認可サーバーの公開鍵で署名検証を行うことで、受信したアクセストークンが妥当であることを検証できる。
アクセストークンの検証を各々のリソースサーバーが行えるようになることで、従来は認可サーバーに集中していたアクセストークン検証処理の負荷が分散しボトルネックが解消されるため、システム全体のパフォーマンスの向上を期待できる。特許文献1において、OAuthを利用したアクセストークンを発行する技術が開示されている。
特開2015−5202号公報
クラウドサービスにおけるリージョンとは、地理的に分離されたそれぞれの領域を表す。リージョンを分割する単位は、地域、国、共同体など、何でもよい。リージョン同士は互いに独立したサーバー群で構成されるため、認可サーバーもそれぞれのリージョンに独立して存在する。またアクセストークンは、リソースの所有者であるOAuthオーナーが、対応するリージョンの認可サーバーで権限委譲を許可することで発行される。認可サーバーがそれぞれのリージョンに存在するのと同様に、リソースサーバーもそれぞれのリージョンに存在する。
ここでGeoDNSと呼ばれる仕組みで、アクセス先の名前解決の要求に対し、要求元と地理的に近いサーバーのIPアドレスを返す技術がある。さらに、認可サーバーの公開鍵を各リージョンで共有し、どのリージョンのリソースサーバーからでも利用できることを考える。このようにすることで、OAuthオーナーの権限を委譲されたOAuthクライアントは、他リージョンで発行されたアクセストークンを利用し、地理的に近いリージョンのリソースサーバーにアクセスできるようになる。地理的に近いリージョンのリソースサーバーへのアクセスにより、他リージョンのリソースサーバーへのアクセスと比べ、ネットワーク遅延を低減させることができるようになる。これはIoTデバイスのように、日時バッチでデータをアップロードするのでなく、随時データをアップロードするデバイスにおいて重要である。
一方で、各リージョンに配備されたサーバーやサーバー内のデータは、各々のリージョンが存在する国などの規則に従った運用が求められる。たとえば欧州にはGDPRと呼ばれる個人のデータに関する規則があり、欧州リージョンにおいてはGDPRの遵守が求められる。このように個人データの域外への移転に関する規則があるため、ユーザーと紐付くデータは、地理的に近いリソースサーバーでなく、ユーザーが主として居住する地域と対応するリージョンのリソースサーバーにアップロードさせる必要がある。従ってOAuthクライアントは、各リージョンにおける規則も考慮し、データ送信先として、データの内容ごとに適切なリージョンを選択すべきである。
しかしOAuthクライアントによっては、どのリージョンにデータを送信するかを制御しない可能性がある。さらにリソースサーバーは、他リージョンの認可サーバーが付加した署名でも検証可能であるため、署名が妥当であれば、どのリージョンから送信されたユーザーデータであっても、アップロードされたデータを受け入れてしまう。各リージョンのデータ移転に関する規則を遵守する上では、このような事態が起きるのを防ぐべきである。
本発明は前述の課題を鑑みてなされたもので、本発明はアクセストークン検証の処理負荷は分散させつつ、リソースサーバーがユーザーデータを受け入れるのは、ユーザーが主とする地域に対応するリージョンのみとするよう制御することを目的とする。
本願発明におけるアクセス制御システムは、クライアントを有する端末、リソースを有するリソースサーバー、および認可サーバーを少なくとも含むアクセス制御システムであって、前記認可サーバーは、アクセストークンの検証を前記リソースサーバーで行うための署名付きアクセストークンを発行する発行手段を有し、前記リソースサーバーは、前記クライアントから送信されるリソース要求および前記署名付きアクセストークンを受信した場合、前記署名付きアクセストークンの署名検証を行い、前記署名付きアクセストークンが有効であるかを判断する判断手段と、前記署名付きアクセストークンに含まれるリージョンと前記リソースサーバーのリージョンを比較し、前記リソースサーバーのリージョンが前記署名付きアクセストークンに含まれているかを確認する確認手段と、前記判断手段により有効であると判断され、かつ前記確認手段により含まれていると確認されたことに応じて、前記リソース要求に対する処理を実行する実行手段と、を有することを特徴とする。
本発明によりアクセストークン検証の処理負荷は分散させつつ、リソースサーバーがユーザーデータを受け入れるのは、ユーザーが主とする地域に対応するリージョンのみとするよう制御することが可能になる。
ネットワーク構成を示す図である。 本発明の実施の形態に係るサーバーコンピューターの構成図である。 本実施の形態に係るモジュール構成図である。 本実施の形態に係るログイン・認可フローである。 本実施の形態に係るアクセストークン要求フローである。 本実施の形態に係るアクセストークン発行フローである。 本実施の形態に係るリソースアクセス処理である。 本実施の形態に係る画面例である。 本実施の第2の形態に係るモジュール構成図である。 本実施の第2の形態に係るアクセストークン発行フローである。 本実施の第3の形態に係るリモジュール構成図である。 本実施の第3の形態に係るリソースアクセス処理フローである。
以下、本発明を実施するための形態について図面を用いて説明する。本実施の形態に係るアクセス制御システムは、図1に示すような構成のネットワーク上に実現される。100は、Wide Area Network(WAN100)であり、本発明ではWorld Wide Web(WWW)システムが構築されている。110、150および160は各構成要素を接続するLocal Area Network(LAN110、LAN150、LAN160)である。ここでLAN150およびLAN160はそれぞれ、欧州のEuropeリージョンおよび日本のJapanリージョンに存在するとする。
151はユーザーの認証・認可および認証トークン・アクセストークンの発行および検証を行う認証・認可サーバー、152はリソースを管理するリソースサーバーである。認証トークンとは、あるユーザーがシステムの正当な利用者であることを証明するものである。またアクセストークンとは、リソースの所有者がアプリケーションをはじめとするクライアントに対して、なんらかの操作を行うことを許可したことを証明するものであり、リソースの所有者がアプリケーションに対してリソースアクセスを認可することで発行される。たとえばクラウドサービスが管理するリソースにアクセスするためのアクセストークンを用いると、アプリケーションは、ユーザーに許可された範囲でリソースにアクセスできるようになる。
認証・認可サーバー151およびリソースサーバー152はEuropeリージョンに存在し、Europeリージョン内で動作する。同様にJapanリージョンにも認証・認可サーバー161およびリソースサーバー162が存在する。111はアプリケーションが動作する端末である。認証・認可サーバー151およびリソースサーバー152はそれぞれLAN150を介して、認証・認可サーバー161およびリソースサーバー162はそれぞれLAN160を介して、WAN100と接続されている。また同様に端末111はLAN110を介してWAN100と接続されている。
なお認証・認可サーバー151、リソースサーバー152はそれぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよいし、同一のPCまたはサーバーコンピューター上に構成されていてもよい。また、認証・認可サーバー151、リソースサーバー152は図1ではそれぞれが1台として描かれているが複数のサーバーから構成されたサーバーシステムでも良く、例えば、複数台のサーバーをクラスタ化して認証・認可サーバー151を構成しても良い。同様に認証・認可サーバー161、リソースサーバー162はそれぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよいし、同一のPCまたはサーバーコンピューター上に構成されていてもよい。また、認証・認可サーバー161、リソースサーバー162は図1ではそれぞれが1台として描かれているが複数のサーバーから構成されたサーバーシステムでも良く、例えば、複数台のサーバーをクラスタ化して認証・認可サーバー161を構成しても良い。なお、本願発明においてサーバーシステムと称した場合は、少なくとも1台のサーバーから構成された特定のサービスを提供する装置を指すものとする。
本実施の形態に係るデータ管理システムは、図2に示すような構成のPCから成るシステム上に実現される。図2は本実施の形態に係る、認証・認可サーバー151の構成を示す図である。またリソースサーバー152、認証・認可サーバー161、リソースサーバー162の構成や端末111の構成も同様である。尚、図2に示されるハードウェアブロック図は一般的な情報処理装置のハードウェアブロック図に相当するものとし、本実施形態のサーバーコンピューターおよび端末には一般的な情報処理装置のハードウェア構成を適用できる。
図2において、CPU201は、ROM203のプログラム用ROMに記憶された、或いはハードディスク211からRAM202にロードされたOSやアプリケーション等のプログラムを実行する。ここでOSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各フローチャートの処理はこのプログラムの実行により実現できる。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。キーボードコントローラ(KBC)205は、キーボード(KB)209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は各種データを記憶するハードディスク(HD)211やフロッピー(登録商標)ディスク(FD)等におけるデータアクセスを制御する。NC212はネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
尚、後述の全ての説明においては、特に断りのない限り実行のハード上の主体はCPU201であり、ソフトウェア上の主体はハードディスク(HD)211にインストールされたアプリケーションプログラムである。
図3は本実施の形態に係る、認証・認可サーバー151、リソースサーバー152、端末111のモジュール構成を示す図である。なお認証・認可サーバー161、リソースサーバー162はそれぞれ、認証・認可サーバー151、リソースサーバー152と同様の構成である。図3(A)は認証・認可サーバー151、図3(B)はリソースサーバー152のモジュール構成を、それぞれ示す。また図3(C)は端末111のモジュール構成を示す。認証・認可サーバー151は認証モジュール301、認可モジュール302、認可済みスコープ管理モジュール303、アクセストークン発行モジュール304を持つ。また認証・認可サーバー151はさらに、クライアント公開鍵管理モジュール305、認証・認可サーバー秘密鍵管理モジュール306、リージョン決定モジュール310、ユーザー管理モジュール311、クライアント管理モジュール312を持つ。リソースサーバー152はリソースアクセス処理モジュール351、リージョン記憶モジュール352、認証・認可サーバー公開鍵管理モジュール353を持つ。端末111はアクセストークン要求モジュール391、クレデンシャル管理モジュール392、リソース要求モジュール393を持つ。
認証モジュール301はユーザーからの認証要求に応じユーザー認証および認証トークンの発行を行う。また認可モジュール302は、同じくユーザーからの認可操作に応じ、認可確認画面を表示して、ユーザーに権限委譲を促す。認可済みスコープ管理モジュール303は、ユーザーが権限委譲した認可済みスコープを記憶する。アクセストークン発行モジュール304は端末111のアクセストークン要求モジュール391によるアクセストークン要求に応じ、アクセストークンの発行を行う。このときアクセストークン要求は端末111のクレデンシャル管理モジュール392が管理するクライアントの秘密鍵で署名される。また署名の検証はクライアント公開鍵管理モジュール305で管理される公開鍵で行われる。このとき発行するアクセストークンは、リージョン決定モジュール310で決定されたリージョン情報を含み、認証・認可サーバー秘密鍵管理モジュール306で管理する認証・認可サーバーの秘密鍵によって署名される。認証・認可サーバーの秘密鍵で署名されたアクセストークンは、対応する公開鍵を用いて内容の妥当性を検証できる。ユーザー管理モジュール311およびクライアント管理モジュール312はそれぞれ、認証・認可サーバー151を利用するユーザーおよびクライアントを管理する。
リソースアクセス処理モジュール351は端末111のリソース要求モジュール393からリソース要求を受信する。リソース要求を受信したリソースアクセス処理モジュール351は、リージョン記憶モジュール352で記憶しているリージョン情報とアクセストークンに記載されたリージョン情報を比較する。さらに認証・認可サーバー公開鍵管理モジュールで353管理している認証・認可サーバーの公開鍵を用いて署名検証を行い、妥当と判断されたリソース要求を正常に処理する。
図4(A)は本実施の形態に係る、認証・認可サーバー151におけるログインフローである。本フローは認証・認可サーバー151がユーザーからログイン要求を受信することで開始される。ステップS401で認証モジュール301は、図8(A)に示されるようなログイン画面1001を表示する。ステップS402で認証モジュール301は、ログイン画面1001で入力された認証情報を受け付ける。ステップS403で認証モジュール301は、ステップS402で受け付けた認証情報が妥当であり、ログインを要求するユーザーが認証される正規なユーザーであるか判断する。ここで認証情報が妥当と判断された場合はステップS404に遷移する。また認証情報が妥当でないと判断された場合はステップS430に遷移する。
ステップS404で認証モジュール301は、ユーザーのログインを許可し、認証トークンを発行してフローを終了する。ステップS430で認証モジュール301は、ユーザーのログインを拒否し、フローを終了する。なお本実施の形態に係るログインフローには、一般的なログインフローを適用できるものとする。
図4(B)は本実施の形態に係る、認証・認可サーバー151における認可フローである。本フローは認証・認可サーバー151の認可モジュール302がユーザーからの認可要求を受信することで開始される。ステップS451で認可モジュール302は、ユーザーから認可要求を受け付ける。ここで受け付けた認可要求は、権限委譲先であるクライアントおよび権限委譲の対象となるスコープの情報を含む。
ステップS452で認可モジュール302は、図8(B)に示すような認可確認画面1002を表示し、ユーザーの確認を求める。ステップS453で認可モジュール302は、ステップS452でユーザーの認可を得られたか判断する。ここで認可を得られたと判断された場合はステップS454に遷移する。また認可を得られなかったと判断された場合はステップS460に遷移する。ユーザーが認可を行うために図8(B)にて許可を選択するための操作を認可操作と称し、ユーザーにより認可操作が行われたことで、後述の図6のフローでアクセストークンの発行が行えるようになる。またここで認可された内容、すなわちアクセス可能なリソースの範囲をスコープと称する。
ステップS454で認可済みスコープ管理モジュール303は、ステップS452で実施された認可の内容を認可済みスコープテーブルで記憶してフローを終了する。表1は認可済みスコープテーブルで記憶する情報の例である。
Figure 2019096076
表1ではたとえば、ユーザー識別子「User001」で示されるユーザーが、クライアント識別子「Client001」で示されるクライアントに対し、「ScopeA」および「ScopeB」の利用を認可していることを表す。ステップS460で認可モジュール302は、認可が行われなかった旨を通知し、フローを終了する。なお本実施の形態に係る認可フローには、一般的な認可フローを適用できるものとする。
図5は本実施の形態に係る、端末111におけるアクセストークン要求のフローである。本フローはユーザーの操作や、端末111内のスケジュールやなんらかのイベントをトリガとして開始される。なお以下では、端末111は、Europeリージョンに存在する認証・認可サーバー151に対してアクセストークンを要求する場合の例を用いて図5のフローを説明する。
ステップS501でアクセストークン要求モジュール391は、トリガに応じて実施すべき処理に必要なスコープを判断する。たとえばここでは、ScopeAおよびScopeBが必要だとする。ステップS502でアクセストークン要求モジュール391は、クレデンシャル管理モジュール392からクライアント秘密鍵を取り出す。表2はクレデンシャル管理モジュール392が管理するクレデンシャル情報の例を表す。
Figure 2019096076
ここではクライアントの識別子が「Client001」であることと、クライアント秘密鍵およびクライアント鍵IDがそれぞれ「Bk3TLDfozc4F」および「Client001Key1」であることが示されている。ステップS503でアクセストークン要求モジュール391は、アクセストークンリクエストを生成し、ステップS502で取り出したクライアント秘密鍵を用いて署名を付与する。以下はアクセストークンリクエストの例である。アクセストークンリクエストはJWTフォーマットで記述される。

{
"kid": "Client001Key1",
"typ":"JWT",
"alg": "RS256"
}
{
"iss": "Client001",
"sub": "User001",
"aud": "https://europe.authorization.example.com/",
"exp": 1508890200,
"iat": 1508889600,
"jti": "01234567890123456789012345678901234567890123456789",
"authz:scopes": [
"ScopeA",
"ScopeB"
]
}
上記のハッシュ値にクライアント秘密鍵で署名したものを付加し、アクセストークン要求が行われる。
ここでkidはアクセストークンリクエストに付与された署名のクライアント鍵IDを表す。algは署名に用いられたアルゴリズムを表し、ここではRS256(RSASSA−PKCS1_v1_5 using SHA−256)が用いられていることを示す。またtypはアクセストークンリクエストがJWTフォーマットであることを表す。またその他の項目についてはそれぞれ以下を表す。すなわち、issはJWTの発行者の識別子、subはJWTの主語となる主体の識別子、audはJWTを利用することが想定された主体の識別子一覧を表す。またexpはJWTの有効期限、iatはJWTの発行日時、jtiはJWTのための一意な識別子、およびauthz:scopesは要求するアクセストークンに含まれることを期待するスコープを表す。上記exp、iatに指定する日時はIntDateで、1970−01−01T0:0:0ZUTCから指定されたUTCの日付/時刻まで秒の数を表すJSON数値である。なお本実施の形態に係るアクセストークンリクエストは上記フォーマットに限定されるものでなく、一般的なフォーマットを適用できるものとする。
上記の例では、JWTの発行者issは「Client001」であり、subで示される「User001」の権限を委譲されたアクセストークンを、audのURIで示されるEuropeの認証・認可サーバー151に対して要求している。要求している権限の範囲を表すスコープはauthz:scopesで示される「ScopeA」および「ScopeB」である。このアクセストークンリクエストはiatの値「1508889600」で示される2017年10月25日0時0分0秒(UTC)に発行された。また有効期限はexpの値「1508890200」で示される2017年10月25日0時10分0秒(UTC)までである。
OAuthの観点で見た場合、issに記載されるのは権限の委譲を受けるOAuthクライアントであり、アクセストークンを要求するクライアントのクライアント識別子が用いられる。またsubに記載されるのは権限を委譲するOAuthオーナーである。OAuthオーナーは図4(B)のフローで認可操作をするユーザーの場合もあり、またアクセストークンを要求するクライアント自身の場合もある。さらにクライアントにはユーザーが所属するテナントと同じテナントに所属する形態や、ユーザーが所属するテナントには所属しない形態も存在する。
ステップS504でアクセストークン要求モジュール391は、ステップS503で生成した署名済みアクセストークンリクエストを認証・認可サーバー151に送信する。ステップS505でアクセストークン要求モジュール391は、ステップS504で送信したアクセストークンリクエストの応答として、認証・認可サーバー151からアクセストークンを受信し、フローを終了する。
図6は本実施の形態に係る、認証・認可サーバー151におけるアクセストークン発行のフローである。本フローは認証・認可サーバー151が、図5のステップS504で端末111のアクセストークン要求モジュール391から送信されたアクセストークン要求を受けて開始される。なお以下ではEuropeリージョンの認証・認可サーバー151のフローとして説明をしているが、Japanリージョンの認証・認可サーバー161がアクセストークン要求を受信した場合のアクセストークン発行のフローも同様である。
ステップS601でアクセストークン発行モジュール304は、受信したアクセストークンリクエストに含まれるクライアント鍵IDを取り出す。ステップS602でアクセストークン発行モジュール304は、ステップS601で取り出したクライアント鍵IDをもとに、クライアント公開鍵管理モジュール305からクライアント公開鍵およびクライアント識別子を取り出す。表3はクライアント公開鍵管理モジュール305内で管理されるクライアント公開鍵管理テーブルの例である。
Figure 2019096076
表3によると、ステップS601で取り出したクライアント鍵IDが「Client001Key1」だった場合、取り出されるクライアント識別子およびクライアント公開鍵はそれぞれ「Client001」と「ZRU+5w/CmH7/」となる。
ステップS603でアクセストークン発行モジュール304は、本フローの冒頭で受信したアクセストークンリクエストの署名を、ステップS602で取り出したクライアント公開鍵で検証する。またあわせて、アクセストークンリクエストに含まれるissがステップS602で取り出したクライアント識別子と一致するか検証する。ステップS604でアクセストークン発行モジュール304は、ステップS603の検証結果に問題がないか判断する。問題がなかったと判断された場合はステップS605へ、問題があったと判断された場合はステップS630へ、それぞれ遷移する。
ステップS605でアクセストークン発行モジュール304は、本フローの冒頭で受信したアクセストークンリクエストから、OAuthオーナー情報およびOAuthクライアント情報を取り出す。これはそれぞれ、アクセストークンのsubおよびおissに記載されている。ステップS606でアクセストークン発行モジュール304は、ステップS605で取り出したOAuthオーナーとOAuthクライアントが一致するか判断する。一致しないと判断された場合はステップS607に遷移する。また一致すると判断された場合はステップS614に遷移する。
ステップS607でアクセストークン発行モジュール304は、アクセストークンリクエストのsubで示されるOAuthオーナーの情報を、ユーザー管理モジュール311に問い合わせる。表4はユーザー管理モジュール311のユーザー管理テーブルの例である。
Figure 2019096076
ここではEuropeリージョンの認証・認可サーバー151について説明をしているため、ユーザー管理モジュール311が管理するユーザー情報も、Europeリージョンの認証・認可サーバー151のものである。Japanリージョンの認証・認可サーバー161においては、ユーザー管理モジュール311が管理するユーザー情報は、Japanリージョンの認証・認可サーバー161のものとなる。
ステップS608でアクセストークン発行モジュール304は、ステップS607でOAuthオーナーの情報を取得できたか判断する。取得できたと判断された場合はステップS609に遷移し、取得できなかったと判断された場合はステップS631に遷移する。なおOAuthオーナー情報をユーザー管理モジュール311から取得できたことで、以下のステップS609からステップS613においては、OAuthオーナーがユーザーであるとして処理を行うことになる。
ステップS609でアクセストークン発行モジュール304は、ステップS605で取り出したOAuthオーナーとOAuthクライアントに関する認可済みスコープを、認可済みスコープ管理モジュール303から取り出す。具体的には、図4(B)における認可フローによって認可情報が記憶されることでスコープを取得することができる。たとえば、OAuthオーナーが「User001」であり、OAuthクライアントが「Client001」の場合、認可済みスコープ情報として「ScopeA」および「ScopeB」が取り出される。
ステップS610でアクセストークン発行モジュール304は、認可フローによって認可情報が記憶されたこにより認可設定が存在するか否かを判断する。存在すればステップS611に遷移し、存在しなければステップS632に遷移する。ステップS611でアクセストークン発行モジュール304は、本フローの冒頭で受信したアクセストークンリクエストから、要求されたスコープを取り出す。
ステップS612でアクセストークン発行モジュール304は、ステップS611で取り出した要求されたスコープが認可されているか判断する。具体的には、ステップS611で取り出した要求されたスコープが、ステップS609で取り出した認可済みスコープに含まれるか判断する。認可されていると判断された場合はステップS613に遷移し、認可されていないと判断された場合はステップS632に遷移する。たとえばステップS609で取り出した認可済みスコープが「ScopeA」および「ScopeB」で、ステップS611で取り出した要求されたスコープが「ScopeA」および「ScopeB」の場合は、認可されていると判断される。
ステップS613でリージョン決定モジュール310は、ステップS607で取得したユーザーの所属リージョンを、アクセストークンの利用可能リージョンと決定する。これは、OAuthオーナー情報をユーザー管理モジュール311から取得できたことで、OAuthオーナーがユーザーであるとして処理しているためである。OAuthオーナーがユーザーの場合、アクセストークンは、ユーザーの所属リージョンでのみ利用できるよう制御する必要がある。アクセストークンの利用可能リージョンを決定すると、ステップS621に遷移する。
一方、ステップS614でリージョン決定モジュール310は、ステップS605で取り出したOAuthクライアントがユーザーと関連付けられているか判断する。判断の結果OAuthクライアントがユーザーと関連付けられていればステップS615に遷移し、関連付けられてなければステップS616に遷移する。
OAuthオーナーがユーザーに関連付けられているか否かの判断は、たとえば以下のように行われる。まずリージョン決定モジュール310は、アクセストークンリクエストのsubで示される主体の識別子を用いて、クライアント管理モジュール312からクライアント情報を取得する。表5はクライアント管理モジュール312のクライアント管理テーブルの例である。たとえば、所属テナント「1001E」には特定のユーザーである「User001」が関連付けられているため、クライアントが所属するテナントはユーザーデータを操作できると考える。
Figure 2019096076
次にリージョン決定モジュール310は、取得したクライアント情報の所属テナントをもとに、ユーザー管理モジュール311に対して、同じテナントに所属するユーザーが存在するかを確認する。ここでクライアントが所属するテナントにユーザー情報が関連付けられている場合、前述のクライアントはユーザーデータを操作できると考えられる。そのためアクセストークンの利用可能リージョンは制限すべきである。以上のように、OAuthオーナーであるクライアントが、ユーザーが存在するテナントに所属しているか否かで、ユーザーに関連付けられているか否かを判断する。
ただし、クライアントであるOAuthオーナーがユーザーに関連付けられているか否かの判断は前述の方式に限定されるものではない。たとえばクライアントであるOAuthオーナーが所属するテナントと、ユーザーが所属するテナントとの対応関係を確認する方式でもよく、その他の方式でもよい。ステップS615でリージョン決定モジュール310は、ステップS614でクライアントであるOAuthオーナーと関連付けられていると判断されたユーザーの情報をユーザー管理モジュール311から取り出す。また取り出したユーザーの所属リージョンをアクセストークンの利用可能リージョンとして決定する。アクセストークンの利用可能リージョンを決定すると、ステップS621に遷移する。
ステップS616でリージョン決定モジュール310は、ステップS614でクライアントであるOAuthオーナーがユーザーと関連付かないと判断されたことを受け、アクセストークンの利用可能リージョンを制限しないこととする。そのためリージョン決定モジュール310は、すべてのリージョンをアクセストークンの利用可能リージョンとして決定する。アクセストークンの利用可能リージョンを決定すると、ステップS621に遷移する。ステップS621でアクセストークン発行モジュール304は、ステップS612、ステップS615、もしくはステップS616のいずれかで決定した利用可能リージョン情報を含むアクセストークンを生成する。
ステップS622でアクセストークン発行モジュール304は、認証・認可サーバー秘密鍵管理モジュール306から認証・認可サーバー151の秘密鍵を取り出し、ステップS612で生成したアクセストークンの署名を生成する。また、生成した署名を付加したアクセストークンを、端末111のアクセストークン要求モジュール391に送信してフローを終了する。表6は認証・認可サーバー秘密鍵管理モジュール306が管理する認証・認可サーバー秘密鍵情報を表す。
Figure 2019096076
ここではEuropeリージョンの認証・認可サーバー151について説明をしているため、認証・認可サーバー秘密鍵管理モジュール306が管理する秘密鍵情報も、Europeリージョンの認証・認可サーバー151のものである。Japanリージョンの認証・認可サーバー161においては、認証・認可サーバー秘密鍵管理モジュール306が管理する秘密鍵情報は、Japanリージョンの認証・認可サーバー161のものとなる。
また以下はステップS613で送信されるアクセストークンの例である。アクセストークンはJWTフォーマットで記述される。このように、アクセストークンの検証をリソースサーバーで行うためのアクセストークンを、署名付きアクセストークンと称する。なお、本実施例において署名付きアクセストークンを単にアクセストークンと称しているが、通常のアクセストークンと署名付きアクセストークンを分別する必要がある場合は、その旨を明記する。

{
"kid": "EuropeKey1",
"typ":"JWT",
"alg": "RS256"
}
{
"iss": "https://europe.authorization.example.com/",
"sub": "User001",
"aud": "https://europe.resource.example.com/",
"exp": 1508893210,
"iat": 1508889610,
"jti": "98765432109876543210987654321098765432109876543210",
"authz:scopes": [
"ScopeA",
"ScopeB"
]
}
上記のハッシュ値に認証・認可サーバー151の秘密鍵で署名したものを付加し、アクセストークン要求モジュール391に返却される。
ここではアクセストークンリクエストと共通する部分の説明は割愛し、アクセストークンに特徴的な部分について説明する。アクセストークンはEuropeリージョンの認証・認可サーバー151の秘密鍵で署名されるため、kidはEuropeKey1となっている。またアクセストークンの発行者issは認証・認可サーバー151を表す。アクセストークンの利用者audはEuropeリージョンを表す情報になっていて、アクセストークンを利用可能なリージョンを制限する。ここではaudはリソースサーバー152のURIを表しているが、リージョンを表す方式は前述の方式に限定されるものではなく、またリージョンを表す情報も複数持つ方式であってもよい。またauthz:scopesは委譲された権限の範囲を表し、ここでは「ScopeA」および「ScopeB」が委譲されている。
ステップS630でアクセストークン発行モジュール304は、署名が不正である旨を端末111のアクセストークン要求モジュール391に送信し、アクセストークン発行を拒否してフローを終了する。ステップS631でアクセストークン発行モジュール304は、OAuthオーナーが存在しない旨を端末111のアクセストークン要求モジュール391に送信し、アクセストークン発行を拒否してフローを終了する。ステップS632でアクセストークン発行モジュール304は、要求されたスコープが認可されていない旨を端末111のアクセストークン要求モジュール391に送信し、アクセストークン発行を拒否してフローを終了する。
図7は本実施の形態に係る、リソースサーバー152におけるリソースアクセスの処理フローである。本フローはリソースサーバー152のリソースアクセス処理モジュール351が、端末111のリソース要求モジュール393からのリソースアクセス要求を受信することで開始される。なお以下ではEuropeリージョンのリソースサーバー152のフローとして説明をしているが、Japanリージョンのリソースサーバー162がリソースアクセス要求を受信した場合のリソースアクセス処理のフローも同様である。
ステップS701でリソースアクセス処理モジュール351は、本フローの冒頭で受信したアクセストークンの署名検証を行う。具体的には、アクセストークンのkidで示される認証・認可サーバーの公開鍵を、認証・認可サーバー公開鍵管理モジュール353から取得し、署名を検証する。表7は認証・認可サーバー公開鍵管理モジュール353が管理する認証・認可サーバー公開鍵テーブルの例である。
Figure 2019096076
ステップS702でリソースアクセス処理モジュール351は、ステップS701で署名が有効であるため正しいと判断されたか確認する。署名が正しかった場合はステップS703に遷移し、署名が正しくなかった場合はステップS730に遷移する。
ステップS703でリソースアクセス処理モジュール351は、リージョン記憶モジュール352から、リソースサーバー自身のリージョンを取得し、自身が所属するリージョンを解決する。ステップS704でリソースアクセス処理モジュール351は、本フローの冒頭で受信したリソースアクセス要求に含まれるアクセストークンから、アクセストークンを利用可能なリージョンを取得する。たとえばアクセストークンのaudに 「https://europe.resource.example.com/」のように記載されていた場合を考える。このときURLに含まれる文字列から、このアクセストークンを利用可能なリージョンとしてEuropeリージョンが取得できる。また、アクセストークンのaudに 「https://www.resource.example.com/」のように記載されていた場合を考える。このときURLに含まれる文字列から、このアクセストークンを利用可能なリージョンとしてすべてのリージョンを示す情報が取得できる。なおアクセストークンを利用可能なリージョンの取得の仕方は前述の方式に限定されるものではない。
ステップS705でリソースアクセス処理モジュール351は、ステップS703で取得したリソースサーバー自身のリージョンと、ステップS704で取得したアクセストークンを利用可能なリージョンを比較し、アクセストークンの利用可否を判断する。アクセストークンを利用可能であると判断された場合はステップS706に遷移し、アクセストークンを利用不可能であると判断された場合はステップS731に遷移する。たとえばリソースサーバー自身のリージョンがEuropeリージョンの場合を考える。ステップS704で取得できたアクセストークンを利用可能なリージョンがEuropeリージョンだった場合や、すべてのリージョンを表す情報だった場合、アクセストークンを利用可能と判断される。またステップS704で取得できたアクセストークンを利用可能なリージョンがJapanリージョンで、Europeリージョンが含まれない場合、アクセストークンは利用不可能と判断される。
ステップS706でリソースアクセス処理モジュール351は、端末111のリソース要求モジュール393から要求された処理に必要なスコープを解決する。ステップS707でリソースアクセス処理モジュール351は、本フローの冒頭で受信したアクセストークンに含まれるスコープを取得する。この値はアクセストークンのauthz:scopesで示される値から取得できる。
ステップS708でリソースアクセス処理モジュール351は、ステップS706で必要と判断されたスコープと、ステップS707でトークンに含まれるスコープを比較し、権限の有無を判断する。権限ありと判断された場合はステップS709に遷移し、権限なしと判断された場合はステップS732に遷移する。たとえばステップS706で必要と判断されたスコープが「ScopeA」で、ステップS707でトークンに含まれるスコープが「ScopeA」および「ScopeB」であれば、権限ありと判断される。
ステップS709でリソースアクセス処理モジュール351は、端末111のリソース要求モジュール393から要求された処理を実行し、結果を返してフローを終了する。ステップS730でリソースアクセス処理モジュール351は、署名が不正である旨を返し、リソースアクセスを拒否してフローを終了する。ステップS731でリソースアクセス処理モジュール351は、リージョンが不正である旨を返し、リソースアクセスを拒否してフローを終了する。すなわち、クライアントはリソース要求を送信した先にあるリージョンのリソースサーバーを利用することはできない。ステップS732でリソースアクセス処理モジュール351は、権限不足である旨を返し、リソースアクセスを拒否してフローを終了する。
本実施の形態によれば、アクセストークン検証の処理負荷は分散させつつ、ユーザーデータを受け入れるのは、ユーザーが主として居住する地域と対応するリージョンのみとすることができる。またユーザーデータを操作することのないアクセスであれば、クライアントと地理的に近いリソースサーバーにアクセスできるため、ネットワーク遅延低減も享受できる。
[実施例2]
次に、本発明を実施するための第2の形態について図面を用いて説明する。なお第1の実施の形態と共通の部分については説明を省略し、以下では差異部分のみ説明する。リージョンを分割する単位は、地域、国、共同体など、何でもよいため、同一の国の中に複数のリージョンが存在し、法規制も共通である場合も考えられる。このようなリージョン同士の間では、一方のサーバーで発行したアクセストークンを、他方のサーバーで利用できるようにすることで、利便性が増すと考えられる。たとえばドイツのベルリンの認証・認可サーバーでユーザーが発行されたが、実際に利用されるのは同じくドイツのハンブルク近郊である場合などが考えられる。このような場合では、ベルリンリージョンの認証・認可サーバーで発行されたアクセストークンで、ハンブルグリージョンのリソースサーバーにおけるユーザーデータにアクセスできるのが好ましい。
図9は本実施の第2の形態に係る、認証・認可サーバー151のモジュール構成を示す図である。なお認証・認可サーバー161も認証・認可サーバー151と同様の構成を取ることができる。認証・認可サーバー151は本実施の第1の形態のモジュールに加え、追加リージョン決定モジュール313、リージョン対応管理モジュール314を持つ。追加リージョン決定モジュール313はリージョン対応管理モジュールで314に問い合わせ、リージョン決定モジュール310で決定されたリージョンに対応する追加リージョンを取得する。取得した追加リージョンを加え、アクセストークンを利用可能なリージョンを決定する。
図10は本実施の第2の形態における、追加リージョンを含めてアクセストークンの利用可能リージョンを決定するフローである。本フローは本実施の第1の形態における、図6のステップS613およびステップS615のあとで、ステップS1001の処理を行う。ステップS1001で追加リージョン決定モジュール313は、ステップS613もしくはステップS615で決定したリージョンに対応するリージョンをリージョン対応管理モジュール314に問い合わせて取得する。また取得したリージョンを追加リージョンとする。表8はリージョン対応管理モジュール314が管理するリージョン対応関係テーブルの例である。
Figure 2019096076
表8のリージョン対応関係テーブルでは、EuropeリージョンとEurope−2リージョンが同一法規制配下であるとして、あらかじめ対応関係が管理されているものとする。ただしリージョンの対応関係を結ぶ基準は法規制が同一であるか否かに限定されるものでなく、他の妥当な基準でリージョン対応関係を結び管理してもよい。
ここで、ステップS613もしくはステップS615で決定したリージョンがEuropeリージョンだった場合、追加リージョンとしてEurope−2リージョンを取得できる。ステップS1002でリージョン決定モジュール310は、アクセストークンの利用可能リージョンに、ステップS1001で取得した追加リージョンを追加する。リージョンを追加した新たな利用可能リージョンが決定すると、ステップS621に遷移する。
本実施の第2の形態によれば、リソースサーバーは、自身と異なるリージョンのOAuthオーナーのアクセストークンであっても、対応関係のあるリージョン間であればアクセストークンを受け入れることができるようになる。そのためたとえば、同一法規制配下のリージョン間ではアクセストークンの相互利用が可能となるため、利便性が向上する。
[実施例3]
次に、本発明を実施するための第3の形態について図面を用いて説明する。なお第1および第2の実施の形態の内で少なくとも何れか1つの実施の形態と共通の部分については説明を省略し、以下では差異部分のみ説明する。端末111からのアクセスがリージョン不正だった場合、リソースサーバーとしては、アクセスを拒否することで目的を達成できる。しかしクライアントは、アクセストークンの利用可能リージョンと異なるリージョンに意図的にアクセスしたのでなく、GeoDNSの指定に従っただけである可能性もある。そのような場合は、端末111からのアクセスを、適切なリージョンにリダイレクトさせることで、利便性が向上すると考えられる。
図11は本実施の第3の形態に係る、リソースサーバー152のモジュール構成を示す図である。なおリソースサーバー162もリソースサーバー152と同様の構成を取ることができる。リソースサーバー152は本実施の第1の形態のモジュールに加え、リダイレクトモジュール354およびリダイレクト先管理モジュール355を持つ。リダイレクトモジュール354はリダイレクト先管理モジュールで355に問い合わせ、リソースアクセス処理モジュール351がリージョン不正と判断したアクセスを適正リージョンの同一機能を持つリソースサーバーにリダイレクトさせる。
図12は本実施の第3の形態に係る、リージョン不正に伴うリダイレクトを含む、リソースサーバー152のリソースアクセス処理フローである。本フローは本実施の第1の形態における、図7のステップS705でリージョン不正と判断された際に、フローを終了する代わりにステップS1201に遷移し処理を行う。
ステップS1201でリダイレクトモジュール354は、ステップS704で取得したアクセストークンの利用可能リージョンをもとに、リダイレクト先管理モジュール355からリダイレクト先URLを取得する。表9はリダイレクト先管理モジュール355が管理する他リージョンリソースサーバー情報テーブルの例である。
Figure 2019096076
他リージョンリソースサーバー情報テーブルでは、リソースサーバー152と同じ機能を備え、リソースサーバー152と異なるリージョンに存在するリソースサーバーのURLをリダイレクト先として管理する。たとえばステップS704で取得したアクセストークンの利用可能リージョンが「Japan」リージョンだった場合、リダイレクト先は「http://japan.resource.example.com/」となる。なお、アクセストークンに含まれるリージョンが表9に存在しない場合、あらかじめ設定されているリダイレクト先を採用することとする。表9の場合「Default」のリダイレクト先が、クセストークンに含まれるリージョンが表9に存在しない場合のリダイレクト先ということになる。
なおステップS1201のリダイレクト先決定処理は、あらかじめ用意された他リージョンリソースサーバー情報テーブルを用いる方式に限定されず、アクセストークンのaudで示されるリソースサーバーのURLを用いる方式や、その他の方式であってもよい。
ステップS1202でリダイレクトモジュール354は、ステップS1201で取得したリダイレクト先URLをリソース要求モジュール393に返し、適正なリージョンへのリダイレクトを促しフローを終了する。リダイレクトモジュール354は、クライアントを別のリージョンに存在する別のリソースサービスへリダイレクトさせることになる。
本実施の第3の形態によれば、リソース要求モジュール393は、不適切なリージョンにアクセスしようとしてしまった場合でも、適切なリージョンのリソースサーバーのURLの通知を受けることができる。そのためGeoDNSなどの仕組みを用いたことで、ユーザーが存在しないリージョンのリソースサーバーにアクセスしてしまった場合でも、正しいリージョンのリソースサーバーにリダイレクトされ処理を続行できるため、利便性が向上する。
[その他の実施例]
実施例1乃至3のいずれの実施例における各フロー図におけるステップは、その実行順番に制限があるわけではなく適宜実行順番を変えられるものである。例えば、図7および12におけるアクセストークンの検証とリージョンの確認のタイミングは必ずしも実施例通りの順番である必要はない。アクセストークンの検証およびスコープの検証が終わった後に、リージョンの検証を行う形態でも良い。各実施例で重要なのはリージョンの検証であり、アクセストークンの検証およびスコープの検証と言った認可に関する各検証は条件の内の1つにしか過ぎず、必ずしもフローで示した通りである必要はなく、適宜変更可能である。
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
111 端末
151 認証・認可サーバー
152 リソースサーバー
304 アクセストークン発行モジュール
310 リージョン決定モジュール
313 追加リージョン決定モジュール
351 リソースアクセス処理モジュール
354 リダイレクトモジュール
391 アクセストークン要求モジュール
393 リソース要求モジュール

Claims (10)

  1. クライアントを有する端末、リソースを有するリソースサーバー、および認可サーバーを少なくとも含むアクセス制御システムであって、
    前記認可サーバーは、
    アクセストークンの検証を前記リソースサーバーで行うための署名付きアクセストークンを発行する発行手段を有し、
    前記リソースサーバーは、
    前記クライアントから送信されるリソース要求および前記署名付きアクセストークンを受信した場合、前記署名付きアクセストークンの署名検証を行い、前記署名付きアクセストークンが有効であるかを判断する判断手段と、
    前記署名付きアクセストークンに含まれるリージョンと前記リソースサーバーのリージョンを比較し、前記リソースサーバーのリージョンが前記署名付きアクセストークンに含まれているかを確認する確認手段と、
    前記判断手段により有効であると判断され、かつ前記確認手段により含まれていると確認されたことに応じて、前記リソース要求に対する処理を実行する実行手段と、を有することを特徴とするアクセス制御システム。
  2. 前記実行手段は、前記確認手段により含まれていないと確認されたことに応じて、前記リソース要求に対する処理を実行せず、リージョンが不正である旨を前記クライアントへ返すことを特徴とする請求項1に記載のアクセス制御システム。
  3. 前記発行手段は、前記リソースのオーナーと前記クライアントが同一でない場合、ユーザーが認可操作により前記リソースへのアクセスを許可したことに応じて、前記認可操作を行ったユーザーが所属するリージョンを含む前記署名付きアクセストークンを発行することを特徴とする請求項1または2に記載のアクセス制御システム。
  4. 前記発行手段は、前記リソースのオーナーと前記クライアントが同一であり、かつ前記オーナーとユーザーが関連づいていない場合、すべてのリージョンを含む前記署名付きアクセストークンを発行することを特徴とする請求項1乃至3の何れか1項に記載のアクセス制御システム。
  5. 前記発行手段は、前記リソースのオーナーと前記クライアントが同一であり、かつ前記オーナーと特定のユーザーが関連づいている場合、前記特定のユーザーが所属するリージョンを含む前記署名付きアクセストークンを発行することを特徴とする請求項1乃至4の何れか1項に記載のアクセス制御システム。
  6. 前記認可サーバーは、
    特定のリージョンに対応する追加リージョンを記憶する記憶手段を有し、
    前記発行手段は、ユーザーが所属するリージョンに対応する前記追加リージョンを特定し、当該ユーザーが所属するリージョンおよび特定された前記追加リージョンの2つのリージョンを含む前記署名付きアクセストークンを発行することを特徴とする請求項1乃至5の何れか1項に記載のアクセス制御システム。
  7. 前記リソースサーバーは、
    前記リソースサーバーのリージョンが前記署名付きアクセストークンに含まれていないことが前記確認手段により確認されたことに応じて、前記署名付きアクセストークンを基に、前記署名付きアクセストークンで利用可能な別のリージョンに存在する別のリソースサーバーへ前記クライアントをリダイレクトさせるリダイレクト手段を有することを特徴とする請求項1乃至6の何れか1項に記載のアクセス制御システム。
  8. 前記確認手段は、前記署名付きアクセストークンに含まれるスコープと前記リソース要求が指定するスコープとを比較し、前記リソース要求が指定するスコープが前記署名付きアクセストークンに含まれているかを確認し、
    前記実行手段は、前記リソース要求が指定するスコープが前記署名付きアクセストークンに含まれていることが前記確認手段により確認されたことを条件に、前記リソース要求に対する処理を実行することを特徴とする請求項1乃至7の何れか1項に記載のアクセス制御システム。
  9. クライアントを有する端末、リソースを有するリソースサーバー、および認可サーバーを少なくとも含むアクセス制御システムで実行される制御方法あって、
    アクセストークンの検証をリソースサーバーで行うための署名付きアクセストークンを発行する発行ステップと、
    前記クライアントから送信されるリソース要求および前記署名付きアクセストークンを受信した場合、前記署名付きアクセストークンの署名検証を行い、前記署名付きアクセストークンが有効であるかを判断する判断ステップと、
    前記署名付きアクセストークンに含まれるリージョンと前記リソースサーバーのリージョンを比較し、前記リソースサーバーのリージョンが前記署名付きアクセストークンに含まれているかを確認する確認ステップと、
    前記判断ステップにおいて有効であると判断され、かつ前記確認ステップにおいて含まれていると確認されたことに応じて、前記リソース要求に対する処理を実行する実行ステップと、を含むことを特徴とする制御方法。
  10. クライアントを有する端末、リソースを有するリソースサーバー、および認可サーバーを少なくとも含むアクセス制御システムにおける前記リソースサーバーで実行される制御方法を実行するためのプログラムであって、
    クライアントから送信されるリソース要求および署名付きアクセストークンを受信した場合、前記署名付きアクセストークンの署名検証を行い、前記署名付きアクセストークンが有効であるかを判断する判断ステップと、
    前記署名付きアクセストークンに含まれるリージョンと前記リソースサーバーのリージョンを比較し、前記リソースサーバーのリージョンが前記署名付きアクセストークンに含まれているかを確認する確認ステップと、
    前記判断ステップにおいて有効であると判断され、かつ前記確認ステップにおいて含まれていると確認されたことに応じて、前記リソース要求に対する処理を実行する実行ステップと、を含むことを特徴とするプログラム。
JP2017225129A 2017-11-22 2017-11-22 アクセス制御システム、その制御方法およびプログラム Pending JP2019096076A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017225129A JP2019096076A (ja) 2017-11-22 2017-11-22 アクセス制御システム、その制御方法およびプログラム
US16/196,971 US10963554B2 (en) 2017-11-22 2018-11-20 Access control system, control method of access control system, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017225129A JP2019096076A (ja) 2017-11-22 2017-11-22 アクセス制御システム、その制御方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2019096076A true JP2019096076A (ja) 2019-06-20

Family

ID=66532429

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017225129A Pending JP2019096076A (ja) 2017-11-22 2017-11-22 アクセス制御システム、その制御方法およびプログラム

Country Status (2)

Country Link
US (1) US10963554B2 (ja)
JP (1) JP2019096076A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019139520A (ja) * 2018-02-09 2019-08-22 キヤノン株式会社 情報処理システムと、その制御方法とプログラム
JP2020053100A (ja) * 2019-12-27 2020-04-02 キヤノン株式会社 情報処理システムと、その制御方法とプログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113158198B (zh) * 2020-01-22 2024-07-05 华为技术有限公司 访问控制方法、装置、终端设备和存储介质
US11757635B2 (en) * 2020-03-13 2023-09-12 Mavenir Networks, Inc. Client authentication and access token ownership validation
US11601285B2 (en) * 2020-06-24 2023-03-07 EMC IP Holding Company LLC Securely authorizing service level access to a backup system using a specialized access key
US11770377B1 (en) * 2020-06-29 2023-09-26 Cyral Inc. Non-in line data monitoring and security services
CN112511569B (zh) * 2021-02-07 2021-05-11 杭州筋斗腾云科技有限公司 网络资源访问请求的处理方法、系统及计算机设备
US11632362B1 (en) * 2021-04-14 2023-04-18 SHAYRE, Inc. Systems and methods for using JWTs for information security
CN113297563B (zh) * 2021-06-18 2023-01-24 海光信息技术股份有限公司 访问片上系统特权资源的方法、装置及片上系统
US11836361B2 (en) * 2021-08-25 2023-12-05 Nvidia Corporation Implementing compiler-based memory safety for a graphic processing unit
CN115189967A (zh) * 2022-09-07 2022-10-14 杭州海康威视数字技术股份有限公司 访问控制方法、装置、电子设备及机器可读存储介质
US20240171587A1 (en) * 2022-11-23 2024-05-23 Microsoft Technology Licensing, Llc Region-based authentication and access policies for services
CN118573385A (zh) * 2023-02-28 2024-08-30 华为技术有限公司 通信方法和通信装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020023123A1 (en) * 1999-07-26 2002-02-21 Justin P. Madison Geographic data locator
JP6198477B2 (ja) 2013-06-21 2017-09-20 キヤノン株式会社 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
JP6335657B2 (ja) * 2014-05-30 2018-05-30 キヤノン株式会社 権限委譲システム、方法、認証サーバーシステム、およびプログラム
US9514324B1 (en) * 2014-06-20 2016-12-06 Amazon Technologies, Inc. Approaches for restricting access to data
US10306016B2 (en) * 2016-02-01 2019-05-28 General Electric Company System and method for scoped attributes
US10148668B2 (en) * 2017-01-25 2018-12-04 Ca, Inc. Geolocation-based authentication credentials

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019139520A (ja) * 2018-02-09 2019-08-22 キヤノン株式会社 情報処理システムと、その制御方法とプログラム
JP2020053100A (ja) * 2019-12-27 2020-04-02 キヤノン株式会社 情報処理システムと、その制御方法とプログラム
JP7043480B2 (ja) 2019-12-27 2022-03-29 キヤノン株式会社 情報処理システムと、その制御方法とプログラム

Also Published As

Publication number Publication date
US10963554B2 (en) 2021-03-30
US20190156008A1 (en) 2019-05-23

Similar Documents

Publication Publication Date Title
JP2019096076A (ja) アクセス制御システム、その制御方法およびプログラム
CN110138718B (zh) 信息处理系统及其控制方法
US8347403B2 (en) Single point authentication for web service policy definition
US9762568B2 (en) Consolidated authentication
US8881248B2 (en) Service provider access
JP6198477B2 (ja) 権限移譲システム、認可サーバーシステム、制御方法、およびプログラム
US9021570B2 (en) System, control method therefor, service providing apparatus, relay apparatus and computer-readable medium
US10135831B2 (en) System and method for combining an access control system with a traffic management system
JP6124687B2 (ja) 画像形成装置、サーバー装置、情報処理方法及びプログラム
US20030226036A1 (en) Method and apparatus for single sign-on authentication
US20140230020A1 (en) Authorization server and client apparatus, server cooperative system, and token management method
US20130185784A1 (en) Authority delegate system, server system in authority delegate system, and control method for controlling authority delegate system
JP6806543B2 (ja) 権限検証システムおよびリソースサーバー、認証サーバー、権限検証方法
US11444954B2 (en) Authentication/authorization server, client, service providing system, access management method, and medium
JP2017004301A (ja) 認証サーバーシステム、方法、プログラムおよび記憶媒体
US9916308B2 (en) Information processing system, document managing server, document managing method, and storage medium
US9077708B2 (en) Information processing system, control method for controlling the information processing system, and storage medium
JP2016115260A (ja) 権限移譲システム、権限移譲システムに用いられる認可サーバー、リソースサーバー、クライアント、媒介装置、権限移譲方法およびプログラム
US9225713B2 (en) System, control method, and storage medium
JP2016057737A (ja) サービス提供システム及びこれに用いる管理サーバー及び管理方法
JP7043480B2 (ja) 情報処理システムと、その制御方法とプログラム
Baker OAuth2