JP7262378B2 - 認証認可システムおよび認証認可方法 - Google Patents

認証認可システムおよび認証認可方法 Download PDF

Info

Publication number
JP7262378B2
JP7262378B2 JP2019220470A JP2019220470A JP7262378B2 JP 7262378 B2 JP7262378 B2 JP 7262378B2 JP 2019220470 A JP2019220470 A JP 2019220470A JP 2019220470 A JP2019220470 A JP 2019220470A JP 7262378 B2 JP7262378 B2 JP 7262378B2
Authority
JP
Japan
Prior art keywords
token
storage unit
unit
access token
user information
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.)
Active
Application number
JP2019220470A
Other languages
English (en)
Other versions
JP2021089657A (ja
Inventor
寿雄 西田
恵介 畑崎
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019220470A priority Critical patent/JP7262378B2/ja
Priority to US17/017,960 priority patent/US11627127B2/en
Publication of JP2021089657A publication Critical patent/JP2021089657A/ja
Application granted granted Critical
Publication of JP7262378B2 publication Critical patent/JP7262378B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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
    • 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
    • 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/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、認証認可システムおよび認証認可方法に関する。
アプリケーションの開発においては、既にサービスとして提供されている様々なソフトウェア、例えば、データベースサービスや音声認識サービス等と連携することで新しいアプリケーションを構築することがある。これらの連携サービス(以下、外部サービスとする)の利用は、アプリケーションを構成するプログラムの中から、API(Application Programming Interface)を用いた呼び出しを行うことで実現されている。これにより、アプリケーション開発者は、様々なサービスが持つ機能を容易に利用することができる。
一方で、外部サービスの中には、利用ライセンスが必要となるものが存在し、その利用にあたっては、サービス利用者(以下、ユーザとする)を認証する認証処理および認証されたサービス利用者に対してサービスの利用を認可する認可処理を行い、認可された場合のみサービスの利用が許可される。この認可処理を行う方法として、OAuthの利用が挙げられる。OAuthは、ユーザに代わり、ユーザが利用ライセンスを有するサービス(ユーザリソース)へのアクセスを許可するためのプロトコルである。
また、OAuthでは、ユーザリソースにアクセスするために必要なユーザIDやパスワードを、アクセストークンと呼ばれる鍵情報に置き換えて認可処理を行うため、ユーザリソースにアクセスするアプリケーション(クライアントアプリケーション)に対してユーザIDやパスワードを開示することなく、外部サービスとの連携を実現している。
なお、外部サービスへのアクセスをAPI経由で実施する場合、複数のサービスへのアクセスを束ねて管理するAPI Gateway等のAPI提供装置を利用するが、連携する外部サービスやシステム構成によっては、複数のAPI提供装置を必要とする場合がある。このような場合、クライアントアプリケーションがユーザリソースにアクセスするためのアクセストークンや、アクセストークンを発行する際のクライアント識別に用いるクライアントID、クライアントシークレットなどをAPI提供装置ごとに管理する必要がある。この管理負担を軽減する方法として、特許文献1がある。
特開2019-139621号公報
OAuthでは、アクセストークン発行のために、ユーザによるユーザIDやパスワードの入力を必要とするが、アクセストークンには有効期間が設定されており、一定の期間が経過すると無効化されてしまう。このような場合、クライアントアプリケーションはユーザリソースへのアクセスができず、アクセストークンの再発行のためにはユーザによるユーザIDやパスワードの再入力が必要になる。この工数を削減するには、クライアントアプリケーションにユーザIDやパスワードを保持させておく方法が考えられるが、クライアントアプリケーションが何らかのセキュリティ攻撃を受けた場合など、保持しているユーザIDやパスワードが流出してしまう危険性がある。
また、アクセストークンの有効期限切れに伴うアクセストークン再発行に要する工数の削減には、クライアントアプリケーションがユーザリソースにアクセスするタイミングではなく、定期的にアクセストークン取得処理を行い、最新のアクセストークンをクライアントアプリケーションに保持させておくことでアクセストークンの有効期限切れを防止する方法が有効である。
しかし、この方法では、クライアントアプリケーションがユーザリソースにアクセスするタイミングと、アクセストークンの取得タイミングが非同期となるため、タイミングによっては、クライアントアプリケーションが有効期限切れのアクセストークンを使用してしまう可能性がある。
そこで、本発明は、クライアントアプリケーションが連携する外部サービスの認証認可を行う認証認可システムにおいて、ユーザIDおよびパスワードなどのユーザ情報の流出を防止すると共に、アクセストークン取得とサービス利用タイミングが非同期になることで生じるアクセストークンの有効期限切れに対処することを1つの目的とする。
かかる課題を解決するため本発明においては、一態様として、ユーザによって実行されるアプリケーションが連携する外部サービスを連携部を介して利用する際の認証および認可を行う認証認可システムであって、前記アプリケーションを実行するアプリケーション実行部と、前記ユーザのユーザ情報を記憶するユーザ情報記憶部と、前記ユーザ情報記憶部から取得した前記ユーザ情報を用いて、前記連携部を介して有効なアクセストークンが提示される場合に前記アプリケーションに対して前記外部サービスの利用を認可する認可サーバからアクセストークンを取得するトークン取得部と、前記トークン取得部によって取得されたアクセストークンを記憶するトークン記憶部と、を備え、前記トークン取得部は、所定周期で前記認可サーバからアクセストークンを取得し、取得したアクセストークンを前記トークン記憶部へ格納し、前記アプリケーション実行部は、前記アプリケーションが前記外部サービスを利用する際に、前記トークン記憶部からアクセストークンを取得し、取得したアクセストークンを用いて、前記連携部に対して前記アプリケーションと前記外部サービスとの連携を要求することを特徴とする。
本発明によれば、例えば、クライアントアプリケーションが連携する外部サービスの認証認可を行う認証認可システムにおいて、外部サービス利用認可に必要なアクセストークン取得工数を削減する際に、ユーザIDおよびパスワードなどのユーザ情報の流出を防止すると共に、アクセストークン取得とサービス利用タイミングが非同期になることで生じるアクセストークンの有効期限切れに対処することできる。
実施例1における認証認可システムの機能構成例を示す図である。 実施例1における認証認可システムの具体的構成例を示す図である。 実施例1におけるトークン取得部によるアクセストークン定期取得処理の流れを示すフローチャートの例である。 実施例1におけるクライアントアプリケーションによる外部サービスの利用処理の流れを示すフローチャートの例である。 実施例2におけるクライアントアプリケーションによる外部サービスの利用処理の流れを示すフローチャートの例である。 実施例2におけるトークン取得部によるアクセストークン再取得処理の流れを示すフローチャートの例である。 認証認可システムを実現するコンピュータのハードウェア例を示す図である。
以下、図面を用いて実施例を説明する。なお、下記はあくまでも実施の例に過ぎず、下記具体的内容に発明自体が限定されることを意図するものではない。
また、以下の説明において、同一または類似の要素および処理に同一の符号を付し、重複説明を省略する。また、後出の実施例では、既出の実施例との差異のみを説明し、重複説明を省略する。
また、以下の実施例の説明および各図で示す構成および処理は、本発明の理解および実施に必要な程度で実施例の概要を示すものであり、本発明に係る実施の態様を限定することを意図する趣旨ではない。また、各実施例および各変形例は、本発明の趣旨を逸脱せず、互いに整合する範囲内で、一部または全部を組合せることができる。
本実施例では、クライアントアプリケーションが連携する外部サービスの認証認可を行う認証認可システムにおいて、外部サービス利用認可に必要なユーザ情報をクライアントアプリケーションとは別に管理すると共に、サービス利用に必要なアクセストークンを定期的に取得してクライアントアプリケーションに保持させる方法、および、アクセストークン取得とサービス利用タイミングが非同期になることで生じるアクセストークンの有効期限切れに対する対応処理を示す。
<実施例1の認証認可システムSの機能構成>
まず、本実施例における認証認可システムSの機能構成例について図1を用いて説明する。図1は、実施例1における認証認可システムSの機能構成例を示す図である。図1に示すように、認証認可システムSは、ユーザ操作部100、クライアントアプリケーション101、API提供部102、外部サービス103、トークン記憶部104、トークン取得部105、ユーザ情報記憶部106、および認可サーバ107を含んで構成される。
初めに、クライアントアプリケーション101と外部サービス103の連携方法について説明する。認証認可システムSを利用するユーザは、ユーザ操作部100を操作することでクライアントアプリケーション101を実行する。クライアントアプリケーション101は、アプリケーション実行部の一例である。また、クライアントアプリケーション101の中には、利用ライセンスを必要とする外部サービス103の実行処理が含まれている。クライアントアプリケーション101は、API提供部102の提供する外部サービスアクセス用のAPIを呼び出すことにより、外部サービス103を実行する。なおAPI提供部102は、連携部の一例である。
このとき、クライアントアプリケーション101は、外部サービス103を利用するために必要なアクセストークンをAPI提供部102に提示する。API提供部102は、提示されたアクセストークンが有効であるかを認可サーバ107に確認し、有効であれば外部サービス103のリソースをクライアントアプリケーション101に提供する。これにより、クライアントアプリケーション101と外部サービス103の連携処理が実現できる。
次に、クライアントアプリケーション101が外部サービス103を利用するために必要なアクセストークンの取得方法について説明する。なお、認証認可システムSを利用するユーザは、外部サービス103の利用ライセンスを有していること、また、認可サーバ107の認可対象として外部サービス103が登録されており、認可サーバ107にログインしたユーザが外部サービス103のライセンスを有する場合には、認可サーバ107が外部サービス103の利用を許可できるようになっていること、を前提とする。
トークン取得部105は、認可サーバ107にログインするためのユーザIDおよびパスワード(以下、ユーザ情報とする)をユーザ情報記憶部106から取得し、定期的に認可サーバ107へのアクセスを行い、外部サービス103を利用するために必要なアクセストークンを認可サーバ107より取得する。
なお、ユーザ情報記憶部106へのユーザ情報の格納は、予めユーザによりユーザ操作部100を操作することで行われているものとする。また、トークン取得部105は、取得したアクセストークンをトークン記憶部104に随時格納する。これにより、クライアントアプリケーション101がAPI提供部102に提示するアクセストークンの取得は、クライアントアプリケーション101がトークン記憶部104を参照することで実現できる。
<実施例1の認証認可システムSの具体的構成>
ここで、本実施例における認証認可システムSの構成を具体化した例について、図2を用いて説明する。図2は、実施例1における認証認可システムSの具体的構成例を示す図である。ここでは、図1に示した認証認可システムSの構成のうち、ユーザ操作部100以外をMicrosoft(登録商標(以下同様))社の提供するAzure(登録商標(以下同様)) Kubernetes Service(以下、AKSとする)上に構築した場合の一例について示す。AKSは、パブリッククラウドサービスの一例である。
ユーザ端末200は、ユーザ操作部100に相当し、PC(Personal Computer)やタブレット端末など、ユーザによる情報の入力機能を備える端末である。AKS上にクライアントサービスPod201が立ち上げられ、その中でクライアントアプリケーション101に相当するクライアントアプリケーション2011をコンテナサービスとして動作させる。そして、クライアントサービスPod201のVolumeをトークン記憶部2012として利用される。
また、AKS上にトークン取得サービスPod202が立ち上げられ、その中でトークン取得部105に相当するトークン取得アプリケーション2021をコンテナサービスとして動作させる。そして、トークン取得サービスPod202のVolumeがユーザ情報記憶部2022として利用される。
このように、クライアントアプリケーション2011とユーザ情報記憶部2022を異なるPodに配置することで、クライアントアプリケーション2011が何らかのセキュリティ攻撃を受けた場合においても、ユーザIDやパスワードの流出を防止することが可能になる。
また、API提供部102と認可サーバ107は、それぞれAzureの提供するAPI Gateway203とActive Directory(登録商標(以下同様))205を利用することで実現できる。
なお、ここでは、外部サービス103としてMicrosoft社の提供するDynamics(登録商標(以下同様))204を利用する場合を示した。Dynamicsは、業務情報システムサービスであり、クライアントアプリケーション2011の処理に基づいて、Dynamics上にインシデント登録を行うといったサービス連携を可能にするものである。
<実施例1のトークン取得部105のアクセストークン定期取得処理>
次に、本実施例における認証認可システムの処理の流れの一例について、図3および図4のフローチャートを用いて説明する。図3は、実施例1におけるトークン取得部105によるアクセストークン定期取得処理の流れを示すフローチャートの例である。トークン定期取得処理は、一定周期で定期的に実行される。
まず、トークン取得部105は、ユーザ情報記憶部106から認可サーバ107にアクセスするためのユーザ情報を取得する(S301)。次にトークン取得部105は、取得したユーザ情報を使用して認可サーバ107にアクセスし、クライアントアプリケーション101が外部サービス103の利用認可に使用するアクセストークンを要求する(S302)。
次に認可サーバ107は、ユーザ情報を照合し、該当ユーザがライセンスを有する外部サービス103の利用を認可するためのアクセストークンを発行、トークン取得部105に提供する(S303)。次にトークン取得部105は、認可サーバ107から取得したアクセストークンをトークン記憶部104に格納する(S304)。トークン取得部105は一定時間経過したか否かを判定し(S305)、一定時間経過後(S305Yes)、クライアントアプリケーション101の実行状態を確認する(S306)。クライアントアプリケーション101が実行中であれば、トークン取得部105は、S301の処理に戻り、アクセストークンの取得処理を再度開始する。これにより、所定周期での定期的なアクセストークンの取得およびトークン記憶部104への格納を実現する。
<実施例1の外部サービス103の利用処理>
図4は、実施例1におけるクライアントアプリケーション101による外部サービス103の利用処理の流れを示すフローチャートの例である。
まず、クライアントアプリケーション101は、ユーザによるユーザ操作部100の操作に応じて実行される(S401)。次にクライアントアプリケーション101は、処理の中で呼び出す外部サービス103の利用認可に必要なアクセストークンをトークン記憶部104から取得する(S402)。
次にクライアントアプリケーション101は、トークン記憶部104から取得したアクセストークンを使用して、API提供部102に外部サービス103のリソース提供を要求する(S403)。次にAPI提供部102は、クライアントアプリケーション101が提示したアクセストークンの有効性を認可サーバ107に確認する(S404)。
次にAPI提供部102は、認可サーバ107によるアクセストークン照合の結果、アクセストークンが有効であったか否かを判定する(S405)。アクセストークンが有効であった場合(S405Yes)、API提供部102は、クライアントアプリケーション101に外部サービス103のリソースを提供する(S406)。
一方、認可サーバ107によるアクセストークン照合の結果、アクセストークンの有効期限が切れていたなどにより有効でなかった場合(S405No)、API提供部102は、クライアントアプリケーション101にトークンエラーを通知する(S407)。トークンエラーを受け取ったクライアントアプリケーション101は、S402の処理に戻り、外部サービス103の利用認可に必要なアクセストークンをトークン記憶部104から再取得し、新しいアクセストークンでの外部サービス103の利用認可処理を実施する。これにより、クライアントアプリケーション101による外部サービス103の利用を実現する。
<実施例1の効果>
本実施例によれば、トークンを認可サーバ107から定期的に取得し、トークン記憶部104に格納されているトークンを更新することで、トークン記憶部104に格納されているトークンを有効期限内に保つことができる。よって、認可処理が必要な外部サービスと連携するアプリケーションの実行時にトークン取得のためにユーザ情報を都度入力しなくても有効期限内のトークンを取得できることから、アプリケーション実行時のトークン期限切れを防止し、アプリケーションと外部サービスとの連携の利便性を高めることができる。
また本実施例によれば、ユーザ情報記憶部106は、クライアントアプリケーション101から独立して配置および管理されることから、クライアントアプリケーション101にユーザ情報を開示することなく外部サービス連携を実現できると共に、クライアントアプリケーション101が攻撃を受けてもユーザ情報の漏洩を回避できる。
<実施例1の変形例>
本実施例では、認証認可システムSの構成を具体化した例を図2に示した。その説明において、ユーザ端末200以外をAKS上に構築した場合の例を示したが、他のパブリッククラウドサービス、例えばAmazon(登録商標(以下同様)) Elastic Kubernetes Service(Amazon EKS)など、別のクラウドサービス上に構築してもよい。なお、Amazon EKS上に構築する場合は、認可サーバ107としてAmazon社の提供するAmazon Cognito(登録商標(以下同様))を利用することができる。
また、図2では、API提供部102に相当するAPI Gateway203、外部サービス103に相当するDynamics204、認可サーバ107に相当するActive Directory205は、AKS上に構築されるとしている。しかし、これに限らず、API提供部102、外部サービス103、および認可サーバ107などの認証認可システムSの一部の構成を、別のクラウドサービスや、クラウドサービスの外部のオンプレミスに構築してもよい。
また、本実施例では、トークン取得部105がアクセストークンを定期的に取得する方法を示したが、その間隔については、認証認可システムの提供者が予め設定したものを使用するほか、アクセストークンに設けられた有効期限を考慮するなどして、システム利用者が任意の間隔を設定および変更してもよい。任意の間隔を設定する方法としては、ユーザ情報記憶部106の中に、アクセストークン取得間隔を記憶する領域を設け、トークン取得部105がその情報を読み出すことで実現可能である。このとき、ユーザ情報記憶部106に対するアクセストークン取得間隔の格納手段としては、ユーザによるユーザ操作部100の操作により実現できる。トークン取得部105は、ユーザ情報記憶部106から読み出したアクセストークン取得間隔の情報に基づく所定周期で、認可サーバ107から新たにアクセストークンを取得し、トークン記憶部104に格納されている前回取得したアクセストークンを更新する。この所定周期は、例えば、トークン記憶部104に格納されている前回取得したアクセストークンの有効期限内に、このアクセストークンを認可サーバ107から今回取得した新たなアクセストークンで更新する周期である。
さらに、認証認可システムSで利用する認可プロトコルに制約はない。例えば、OAuthプロトコルを利用する方法でもよいし、別のプロトコルを利用した認可方法であってもよい。
本実施例では、アクセストークン取得とサービス利用タイミングが非同期になることで生じるアクセストークンの有効期限切れに対応する方法として、クライアントアプリケーション101がトークン取得部105に対して、トークンの再発行を要求する方法について示す。
<実施例2の外部サービス103の利用処理>
本実施例における認証認可システムの処理の流れの一例について、図5および図6のフローチャートを用いて説明する。図5は、実施例2におけるクライアントアプリケーション101による外部サービス103の利用処理の流れを示すフローチャートの例である。実施例2の外部サービス103の利用処理は、実施例1の外部サービス103の利用処理と比較して、S407に続いてS508が実行される点が異なり、その他は同一である。
実施例1では、クライアントアプリケーション101がAPI提供部102からトークンエラーを返された場合、再度、トークン記憶部104からアクセストークンを取得し、新しいアクセストークンでの外部サービス103の利用認可処理を実施する方法を示したが、本実施例では、トークン取得部105に対するトークンの再発行要求(S508)を行う点が異なる。以下、この差異についてのみ説明する。
S407に続いてS508では,トークンエラーを受け取ったクライアントアプリケーション101は、トークン要求処理を実施することで、認可サーバ107によりトークン取得部105に対して有効なトークン発行が行われた後、S402の処理に戻り、新しいアクセストークンでの外部サービス103の利用認可処理を再度実施する。これにより、クライアントアプリケーション101による外部サービス103の利用を実現する。
<実施例2のトークン取得部105のアクセストークン再取得処理>
図6は、実施例2におけるトークン取得部105によるアクセストークン再取得処理の流れを示すフローチャートの例であり、S508の詳細処理を示すものである。
まず、API提供部102から返ってきたトークンエラーを受け、クライアントアプリケーション101は、トークン取得部105にトークンエラーを通知する(S601)。続くS302~S304は、図3に示したS302~S304と同様である。
S304に続きトークン取得部105は、クライアントアプリケーション101にアクセストークンの更新完了を通知する(S605)。これにより、アクセストークン取得と、クライアントアプリケーション101による外部サービス103の利用タイミングが非同期になることで生じるアクセストークンの有効期限切れに対する対応処理を実現する。
<実施例2の効果>
本実施例によれば、アプリケーション実行時に期限切れのトークンエラーが発生した場合、定期取得ではないトークンエラー発生時のタイミングで認可サーバ107からトークンを取得し、トークン記憶部104に格納されているトークンを更新することで、トークンエラーに対してより迅速に対応し、トークンエラーの解消を図ることができる。
<実施例2の変形例>
本実施例では、外部サービス103の利用認可に使用するアクセストークンの有効期限が切れていた場合に、クライアントアプリケーション101がトークン取得部105にトークンエラーを通知することでアクセストークンの再発行要求を行う方法を示した。しかし、アクセストークンの有効期限が切れていた場合のアクセストークン再発行要求のトリガは、クライアントアプリケーション101からトークン取得部105へのエラー通知(S601)に限る必要はない。例えば、クライアントアプリケーション101のエラー出力をトークン取得部105が定期的に監視し、トークンエラーを検知した場合にアクセストークンの再発行処理を開始するようにしてもよい。
また、アクセストークンの再発行処理において、トークン取得部105によるクライアントアプリケーション101へのアクセストークンの更新完了通知(S605)をトリガに、クライアントアプリケーション101がアクセストークンを再取得する方法を示したが、必ずしもトークン取得部105による更新完了通知をトリガにする必要はない。例えば、トークン取得部105は定期的にアクセストークンの取得およびトークン記憶部104への格納を行っているため、トークンエラー検知の一定時間経過後には有効なアクセストークンがトークン記憶部104には格納されることになる。よって、クライアントアプリケーション101が、API提供部102からアクセストークンのエラーを返された場合、一定時間経過後に自発的に外部サービス103の利用認可処理を再実施するようにしてもよい。
なお、上述の実施例1および2では、クライアントアプリケーション101は、複数の外部サービス103を利用することもできる。この場合、トークン記憶部104には、外部サービス103ごとにアクセストークンが管理されている。そして、クライアントアプリケーション101は、利用する外部サービス103に対応付けられたアクセストークンをトークン記憶部104から取得して用いる。
また認証認可システムSにおいて、1つのコンテナ内で複数のクライアントアプリケーション101が動作し、トークン記憶部104に、クライアントアプリケーション101ごとに外部サービス103のアクセストークンが管理されてもよい。
また実施例1および2においてトークン記憶部104を設けず、クライアントアプリケーション101が、利用する外部サービス103のアクセストークンを記憶する構成であってもよい。
<認証認可システムSを実現するコンピュータのハードウェア>
図7は、認証認可システムSを実現するコンピュータのハードウェア例を示す図である。認証認可システムSを実現するコンピュータ5000は、CPU(Central Processing Unit)に代表されるプロセッサ5300、RAM(Random Access Memory)等のメモリ5400、入力装置5600(例えばキーボード、マウス、タッチパネル等)、および出力装置5700(例えば外部ディスプレイモニタに接続されたビデオグラフィックカード)が、メモリコントローラ5500を通して相互接続される。コンピュータ5000において、所定のプログラムがI/O(Input/Output)コントローラ5200を介してSSDやHDD等の外部記憶装置5800から読み出されて、プロセッサ5300およびメモリ5400の協働により実行されることにより、認証認可システムSが実現される。あるいは、認証認可システムSを実現するための各プログラムは、ネットワークインターフェース5100を介した通信により外部のコンピュータから取得されてもよい。または、認証認可システムSを実現するためのプログラムは、可搬型記憶媒体に格納され、媒体読み取り装置によって読み取られて、プロセッサ5300およびメモリ5400の協働により実行されてもよい。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、各実施例の処理における各ステップは、同一結果を得ることができる限りにおいて適宜順序を入れ替えて実行されてもよい。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記憶部、または、ICカード、半導体記録媒体、磁気記録媒体、光学記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
100 ユーザ操作部
101 クライアントアプリケーション
102 API提供部
103 外部サービス
104 トークン記憶部
105 トークン取得部
106 ユーザ情報記憶部
107 認可サーバ
200 ユーザ端末
201 クライアントサービスPod
2011 クライアントアプリケーション(コンテナ)
2012 トークン記憶部(Volume)
202 トークン取得サービスPod
2021 トークン取得アプリケーション(コンテナ)
2022 ユーザ情報記憶部(Volume)
203 API Gateway
204 Dynamics
205 Active Directory

Claims (7)

  1. ユーザによって実行されるアプリケーションが連携する外部サービスを連携部を介して利用する際の認証および認可を行う認証認可システムであって、
    前記アプリケーションを実行するアプリケーション実行部と、
    前記ユーザのユーザ情報を記憶するユーザ情報記憶部と、
    前記ユーザ情報記憶部から取得した前記ユーザ情報を用いて、前記連携部を介して有効なアクセストークンが提示される場合に前記アプリケーションに対して前記外部サービスの利用を認可する認可サーバからアクセストークンを取得するトークン取得部と、
    前記トークン取得部によって取得されたアクセストークンを記憶するトークン記憶部と、を備え、
    前記アプリケーション実行部、前記トークン記憶部、前記トークン取得部、および前記ユーザ情報記憶部は、クラウド上に構築され、
    前記トークン取得部および前記ユーザ情報記憶部は、同一のコンテナに配置され、
    前記アプリケーション実行部および前記トークン記憶部は、前記トークン取得部および前記ユーザ情報記憶部とは異なるコンテナに配置され、
    前記アプリケーション実行部は、前記ユーザ情報記憶部に対してアクセス不可であり、
    前記トークン取得部は、
    所定周期で前記認可サーバからアクセストークンを取得し、取得したアクセストークンを前記トークン記憶部へ格納し、
    前記アプリケーション実行部は、
    前記アプリケーションが前記外部サービスを利用する際に、前記トークン記憶部からアクセストークンを取得し、取得したアクセストークンを用いて、前記連携部に対して前記アプリケーションと前記外部サービスとの連携を要求する
    ことを特徴とする認証認可システム。
  2. 前記ユーザ情報は、所定端末を介して前記ユーザ情報記憶部に予め格納されている
    ことを特徴とする請求項に記載の認証認可システム。
  3. 前記所定周期は、前記トークン記憶部に格納されている前回取得したアクセストークンの有効期限内に、該アクセストークンを前記認可サーバから今回取得した新たなアクセストークンで更新する周期であり、
    前記トークン取得部は、
    前記所定周期の前回周期で前記認可サーバから取得して前記トークン記憶部に格納したアクセストークンを、次回周期で前記認可サーバから取得した次のアクセストークンを前記トークン記憶部に格納して該アクセストークンを更新し、
    前記アプリケーション実行部は、
    前記連携部に対して前記アプリケーションと前記外部サービスとの連携を要求する際のアクセストークンが無効であるトークンエラーが発生した場合、該トークンエラーの発生後に一定時間が経過して前記トークン取得部によって前記トークン記憶部に記憶されているアクセストークンが更新された後に、前記トークン記憶部からアクセストークンを再取得し、再取得したアクセストークンを用いて、前記連携部に対して前記アプリケーションと前記外部サービスとの連携を再要求する
    ことを特徴とする請求項1に記載の認証認可システム。
  4. 前記トークン取得部は、
    前記連携部に対して前記アプリケーションと前記外部サービスとの連携を要求する際のアクセストークンが無効であるトークンエラーが発生した場合、前記認可サーバからアクセストークンを再取得し、再取得したアクセストークンを前記トークン記憶部へ格納し、
    前記アプリケーション実行部は、
    前記トークン取得部によって再取得されたアクセストークンが前記トークン記憶部へ格納された後、前記トークン記憶部からアクセストークンを再取得し、再取得したアクセストークンを用いて、前記連携部に対して前記アプリケーションと前記外部サービスとの連携を再要求する
    ことを特徴とする請求項1に記載の認証認可システム。
  5. 前記ユーザ情報記憶部は、アクセストークンの取得間隔情報を書き換え可能に格納し、
    前記トークン取得部は、
    前記ユーザ情報記憶部から読み出した前記取得間隔情報に基づく前記所定周期で前記認可サーバからアクセストークンを取得し、取得したアクセストークンを前記トークン記憶部へ格納する
    ことを特徴とする請求項1に記載の認証認可システム。
  6. 前記所定周期は、前記トークン記憶部に格納されている前回取得したアクセストークンの有効期限内に、該アクセストークンを前記認可サーバから今回取得した新たなアクセストークンで更新する周期である
    ことを特徴とする請求項1に記載の認証認可システム。
  7. ユーザによって実行されるアプリケーションが連携する外部サービスを連携部を介して利用する際の認証および認可を行う認証認可システムが行う認証認可方法であって、
    前記認証認可システムは、
    前記アプリケーションを実行するアプリケーション実行部と、
    前記ユーザのユーザ情報を記憶するユーザ情報記憶部と、
    前記ユーザ情報記憶部から取得した前記ユーザ情報を用いて、前記連携部を介して有効なアクセストークンが提示される場合に前記アプリケーションに対して前記外部サービスの利用を認可する認可サーバからアクセストークンを取得するトークン取得部と、
    前記トークン取得部によって取得されたアクセストークンを記憶するトークン記憶部と、を備え、
    前記アプリケーション実行部、前記トークン記憶部、前記トークン取得部、および前記ユーザ情報記憶部は、クラウド上に構築され、
    前記トークン取得部および前記ユーザ情報記憶部は、同一のコンテナに配置され、
    前記アプリケーション実行部および前記トークン記憶部は、前記トークン取得部および前記ユーザ情報記憶部とは異なるコンテナに配置され、
    前記アプリケーション実行部は、前記ユーザ情報記憶部に対してアクセス不可であり、
    前記トークン取得部が、
    所定周期で前記認可サーバからアクセストークンを取得し、取得したアクセストークンを前記トークン記憶部へ格納し、
    前記アプリケーション実行部が、
    前記アプリケーションが前記外部サービスを利用する際に、前記トークン記憶部からアクセストークンを取得し、取得したアクセストークンを用いて、前記連携部に対して前記アプリケーションと前記外部サービスとの連携を要求する
    ことを特徴とする認証認可方法。
JP2019220470A 2019-12-05 2019-12-05 認証認可システムおよび認証認可方法 Active JP7262378B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019220470A JP7262378B2 (ja) 2019-12-05 2019-12-05 認証認可システムおよび認証認可方法
US17/017,960 US11627127B2 (en) 2019-12-05 2020-09-11 Authentication and authorization system and authentication and authorization method using access tokens

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019220470A JP7262378B2 (ja) 2019-12-05 2019-12-05 認証認可システムおよび認証認可方法

Publications (2)

Publication Number Publication Date
JP2021089657A JP2021089657A (ja) 2021-06-10
JP7262378B2 true JP7262378B2 (ja) 2023-04-21

Family

ID=76210748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019220470A Active JP7262378B2 (ja) 2019-12-05 2019-12-05 認証認可システムおよび認証認可方法

Country Status (2)

Country Link
US (1) US11627127B2 (ja)
JP (1) JP7262378B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7435170B2 (ja) * 2020-03-31 2024-02-21 ブラザー工業株式会社 画像処理装置及び画像処理システム
US20220321346A1 (en) * 2021-03-31 2022-10-06 Microsoft Technology Licensing, Llc Token management for asynchronous request-reply
US11973755B1 (en) * 2021-07-30 2024-04-30 Wells Fargo Bank, N.A. Apparatuses, methods, and computer program products for offline authentication
KR102697250B1 (ko) * 2022-07-22 2024-08-20 오명재 전자상품권을 이용한 상품 거래 시스템

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132730A (ja) 2000-10-20 2002-05-10 Hitachi Ltd 個人情報の信頼度および開示度による認証またはアクセス管理システム、および管理方法
JP2016004307A (ja) 2014-06-13 2016-01-12 キヤノン株式会社 システム、方法、サーバーシステム、およびプログラム
US20170111338A1 (en) 2015-10-19 2017-04-20 Ricoh Company, Ltd. Accessing Network Services Using a Network Access Service
JP2017151859A (ja) 2016-02-26 2017-08-31 沖電気工業株式会社 情報処理装置およびプログラム
JP2019008525A (ja) 2017-06-23 2019-01-17 株式会社 みずほ銀行 サービス管理システム及びサービス管理方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070248232A1 (en) * 2006-04-10 2007-10-25 Honeywell International Inc. Cryptographic key sharing method
US8862874B2 (en) * 2008-05-09 2014-10-14 International Business Machines Corporation Certificate distribution using secure handshake
US8799994B2 (en) * 2011-10-11 2014-08-05 Citrix Systems, Inc. Policy-based application management
US9723058B2 (en) * 2013-05-28 2017-08-01 Vmware, Inc. Dynamic registration of an application with an enterprise system
US10244463B2 (en) * 2013-12-20 2019-03-26 Orange System and method for application based selection of a radio network
US9608970B1 (en) * 2014-01-16 2017-03-28 Microstrategy Incorporated Sharing keys
US20150341347A1 (en) * 2014-05-23 2015-11-26 Google Inc. Methods and systems of issuing, transmitting and managing tokens using a low-latency session syndication framework
US9754093B2 (en) * 2014-08-28 2017-09-05 Ncr Corporation Methods and a system for automated authentication confidence
US10791110B2 (en) * 2015-07-09 2020-09-29 Cloudflare, Inc. Certificate authority framework
US9894051B2 (en) * 2015-12-14 2018-02-13 International Business Machines Corporation Extending shrouding capability of hosting system
US10594684B2 (en) * 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10462124B2 (en) * 2016-12-30 2019-10-29 Google Llc Authenticated session management across multiple electronic devices using a virtual session manager
JP2019139621A (ja) 2018-02-14 2019-08-22 日本電信電話株式会社 認証認可情報統合装置及び認証認可情報統合方法
CN111386676B (zh) * 2018-03-21 2022-01-21 华为技术有限公司 应用编程接口api网关集群的控制方法和api网关集群
EP3553718B1 (en) * 2018-04-11 2024-08-07 Barclays Execution Services Limited System for efficient management and storage of access tokens
US10673840B2 (en) * 2018-05-10 2020-06-02 Jayant Shukla Cloud-based identity management and authentication system for containers and applications
US11303627B2 (en) * 2018-05-31 2022-04-12 Oracle International Corporation Single Sign-On enabled OAuth token
EP3817278A4 (en) * 2018-06-26 2022-03-16 Japan Communications Inc. ONLINE SERVICE DELIVERY SYSTEM AND APPLICATION PROGRAM
US11146543B2 (en) * 2018-07-12 2021-10-12 Vmware, Inc. Contact consolidation across multiple services
US11720660B2 (en) * 2019-01-28 2023-08-08 EMC IP Holding Company LLC Temporary partial authentication value provisioning for offline authentication
US10878119B2 (en) * 2019-04-22 2020-12-29 Cyberark Software Ltd. Secure and temporary access to sensitive assets by virtual execution instances
US20200364354A1 (en) * 2019-05-17 2020-11-19 Microsoft Technology Licensing, Llc Mitigation of ransomware in integrated, isolated applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132730A (ja) 2000-10-20 2002-05-10 Hitachi Ltd 個人情報の信頼度および開示度による認証またはアクセス管理システム、および管理方法
JP2016004307A (ja) 2014-06-13 2016-01-12 キヤノン株式会社 システム、方法、サーバーシステム、およびプログラム
US20170111338A1 (en) 2015-10-19 2017-04-20 Ricoh Company, Ltd. Accessing Network Services Using a Network Access Service
JP2017151859A (ja) 2016-02-26 2017-08-31 沖電気工業株式会社 情報処理装置およびプログラム
JP2019008525A (ja) 2017-06-23 2019-01-17 株式会社 みずほ銀行 サービス管理システム及びサービス管理方法

Also Published As

Publication number Publication date
US11627127B2 (en) 2023-04-11
US20210176237A1 (en) 2021-06-10
JP2021089657A (ja) 2021-06-10

Similar Documents

Publication Publication Date Title
JP7262378B2 (ja) 認証認可システムおよび認証認可方法
US11122028B2 (en) Control method for authentication/authorization server, resource server, and authentication/authorization system
US10944574B2 (en) Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them
US11146589B2 (en) Out-of-band challenge in a computer system
US9948610B2 (en) Method and apparatus for accessing third-party resources
US20180115551A1 (en) Proxy system for securely provisioning computing resources in cloud computing environment
US20200067910A1 (en) Privacy-aware id gateway
CN103262466A (zh) 认证系统、认证服务器、服务提供服务器、认证方法和计算机可读记录介质
US20230353367A1 (en) Single-use authorization codes in self-contained format
US10037418B2 (en) Pre-boot authentication credential sharing system
US11568596B2 (en) Non-blocking token authentication cache
US10826886B2 (en) Techniques for authentication using push notifications
US11606349B2 (en) Authentication token refresh
US20180152434A1 (en) Virtual content repository
JPWO2017208305A1 (ja) サーバ装置、サービス方法、プログラム、ならびに、非一時的なコンピュータ読取可能な情報記録媒体
CN109088858B (zh) 一种基于权限管理的医疗系统及方法
JP2020030759A (ja) 権限委譲システム、情報処理装置およびその制御方法、並びにプログラム。
US11818267B1 (en) Multi-level access distributed ledger system
JP2011215688A (ja) データベースアクセスシステム及び方法
KR20150116537A (ko) 가상 사설 클라우드 시스템에서의 사용자 인증 방법 및 가상 사설 클라우드 서비스 제공 장치
CN109313681B (zh) 具有审计功能的虚拟智能卡
Huang et al. Research on Single Sign-on Technology for Educational Administration Information Service Platform
JP2004355332A (ja) ログイン管理システムおよびその方法
EP3690694A1 (en) Information linkage system and information linkage method
JP6815922B2 (ja) 業務連携システムおよび業務連携方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230329

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230411

R150 Certificate of patent or registration of utility model

Ref document number: 7262378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150