(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-25
(45)【発行日】2024-12-03
(54)【発明の名称】認証システム
(51)【国際特許分類】
G06F 21/45 20130101AFI20241126BHJP
G06F 21/31 20130101ALI20241126BHJP
【FI】
G06F21/45
G06F21/31
(21)【出願番号】P 2024029684
(22)【出願日】2024-02-29
(62)【分割の表示】P 2021070925の分割
【原出願日】2021-04-20
【審査請求日】2024-04-11
(73)【特許権者】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(73)【特許権者】
【識別番号】506350610
【氏名又は名称】トヨタファイナンシャルサービス株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】岡 尚哉
(72)【発明者】
【氏名】景山 均
(72)【発明者】
【氏名】許 峰
(72)【発明者】
【氏名】佐々木 大
(72)【発明者】
【氏名】テ ヴェ バラト
【審査官】塩澤 如正
(56)【参考文献】
【文献】特開2012-164191(JP,A)
【文献】特開2008-242684(JP,A)
【文献】特開2006-011989(JP,A)
【文献】国際公開第2010/110182(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/45
G06F 21/31
(57)【特許請求の範囲】
【請求項1】
第1サーバと、
第2サーバと、
前記第1サーバと前記第2サーバの間で情報を中継する
ように構成されたプラットフォームと、
を備える認証システムであって、
前記第1サーバと前記第2サーバは直接通信を行わず、
前記第1サーバは、ユーザに対して第1サービスを提供しており、
前記第2サーバは、ユーザに対して第2サービスを提供しており、
前記プラットフォームは、前記第1サーバに関する第1対応情報及び前記第2サーバに関する第2対応情報が記憶されており、
前記第1対応情報は、前記第1サービスと前記第1サーバとを対応付ける情報であって、
前記第2対応情報は、前記第2サービスと前記第2サーバとを対応付ける情報であって、
ユーザが操作する端末装置から前記第2サーバへのユーザ認証要求がなされると、前記第2サーバに前記ユーザに関するユーザ情報が記憶されていない場合、
前記プラットフォームは、
前記第1対応情報に基づいて、前記認証要求を前記第2サーバから前記第1サーバへ中継し、
更に、前記プラットフォームは、前記認証要求に対する前記第1サーバの認証結果を、前記第1サーバから前記第2サーバへ中継するように構成されている、認証システム。
【請求項2】
前記認証システムは、
認証を受けるための画面であって、第1ボタンと第2ボタンを含む画面を前記端末装置に表示させ、
前記端末装置から前記第2サーバへのユーザ認証要求として前記第1ボタンが押されると、前記第2サーバに前記ユーザに関するユーザ情報が記憶されている場合は、前記第2サーバで前記ユーザの認証が行われ、
前記端末装置から前記第2サーバへのユーザ認証要求として前記第2ボタンが押されると、前記第1サーバに前記ユーザ情報が記憶されている場合は、前記プラットフォームにより前記認証要求が前記第2サーバから前記第1サーバへ中継されて、前記第1サーバで前記ユーザの認証が行われる、請求項1に記載の認証システム。
【請求項3】
前記第1サーバは、前記ユーザに関するユーザ情報を記憶しており、前記第2サーバは、
前記ユーザ情報を記憶していない場合、前記認証結果が認証成功を示すものであるとき、前記プラットフォームは、前記第2サーバへ前記ユーザ情報を共有することの同意を求める同意要求を前記端末装置に送信し、
前記端末装置から前記同意要求への同意が得られた場合、前記プラットフォームは、前記ユーザ情報を前記第1サーバから前記第2サーバへ中継する、請求項1または請求項2に記載の認証システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、認証システムに関する。
【背景技術】
【0002】
特開2020-36234号公報(特許文献1)には、認証認可サーバと、Webサービスを提供するリソースサーバと、クライアント装置とを含む認可システムが開示されている。この認可システムでは、クライアントは、認証認可サーバから取得したアクセストークンを用いて、リソースサーバからWebサービスの提供を受ける。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
近年では、ネットワーク上の複数のサービスに、1つのIDを使用してログインできるようにするID連携が注目されている。ID連携は、たとえば、OIDC(OpenID Connect)等のプロトコルが用いて実現される。
【0005】
ID連携されるサービスが多数になると、各サービスサーバに対応する認証サーバの数も多数になる。そのため、認証サーバ同士をOIDCのプロトコルを用いて連携させようとすると、システムが複雑化してしまう可能性がある。システムの複雑化は、システムの開発および維持に要する時間およびコストの増加を招いてしまう。
【0006】
本開示は、上記課題を解決するためになされたものであり、本開示の目的は、認証サーバ間の連携を比較的容易な構成で実現することである。
【課題を解決するための手段】
【0007】
(1)本開示のある局面に係る認証システムは、ユーザが操作する端末装置と、ユーザを識別するための情報を記憶する第1サーバと、上記情報を記憶していない第2サーバと、第1サーバおよび第2サーバの間で情報を中継するプラットフォームとを備える。端末装置から第2サーバへユーザの認証要求があった場合、プラットフォームは、認証要求を第2サーバから第1サーバへ中継し、認証要求に対する第1サーバの認証結果を、第1サーバから第2サーバへ中継する。
【0008】
上記構成によれば、プラットフォームが、第1サーバおよび第2サーバの間の情報のやり取りを中継する。そのため、第1サーバおよび第2サーバの各々が、プラットフォームと情報のやり取りをできるシステムを構築すればよい。よって、サーバ同士が情報をやり取りするシステムを構築する場合に比べて、認証システムを容易な構成にすることができる。
【0009】
(2)ある実施の形態においては、端末装置は、表示部を備える。端末装置は、認証を受けるための画面を表示部に表示させる。上記画面には、第1ボタンと第2ボタンとが表示される。第1ボタンが押された場合には、第2サーバでユーザの認証が行なわれる。第2ボタンが押された場合には、プラットフォームにより認証要求が第2サーバから第1サーバへ中継され、第1サーバでユーザの認証が行なわれる。
【0010】
上記構成によれば、端末装置の表示部に、第2サーバで直接認証を受けるための第1ボタンと、プラットフォームの情報の中継により第1サーバで認証を受けるための第2ボタンとが表示される。ユーザは、2つの認証方法があることを視覚的に認識することができ、ユーザの利便性を向上させることができる。
【0011】
(3)ある実施の形態においては、第1サーバは、ユーザに関するユーザ情報を記憶している。第2サーバは、ユーザ情報を記憶していない。認証結果が認証成功を示すものである場合、プラットフォームは、第2サーバへユーザ情報を共有することの同意を求める同意要求を端末装置に送信し、端末装置から同意要求への同意が得られた場合、ユーザ情報を第1サーバから第2サーバへ中継する。
【0012】
上記構成によれば、ユーザ情報の送信もプラットフォームが中継する。第1サーバおよび第2サーバの間でやり取りされる情報をプラットフォームが中継する構成とすることで、サーバ同士が情報をやり取りするシステムを構築する場合に比べて、認証システムを容易な構成にすることができる。
【0013】
(4)ある実施の形態においては、端末装置から同意要求への同意が得られた場合、第2サーバは、端末装置に認可コードを送信する。
【0014】
(5)ある実施の形態においては、端末装置は、認可コードを第2サーバに送信して、第2サーバからトークンを取得する。トークンには、少なくともアクセストークンおよびIDトークンが含まれる。
【発明の効果】
【0015】
本開示によれば、認証サーバ間の連携を比較的容易な構成で実現することができる。
【図面の簡単な説明】
【0016】
【
図1】実施の形態に係る認証システムの概略的な構成を示す図である。
【
図2】認証サーバ11の構成を説明するための図である。
【
図3】認証サーバ21の構成を説明するための図である。
【
図4】第1サービス(バックエンドサーバ)へのログイン処理の手順を示すフローチャート(その1)である。
【
図5】第1サービス(バックエンドサーバ)へのログイン処理の手順を示すフローチャート(その2)である。
【
図6】端末装置に表示される第1サービスのログイン画面の一例を示す図である。
【
図7】グローバルログインの処理の手順を示すフローチャート(その1)である。
【
図8】グローバルログインの処理の手順を示すフローチャート(その2)である。
【
図9】グローバルログインの処理の手順を示すフローチャート(その3)である。
【
図10】端末装置に表示される第3サービスのログイン画面の一例を示す図である。
【
図11】端末装置に表示される選択画面の一例を示す図である。
【
図12】変形例1に係るサービス提供システムの構成を概略的に示す図である。
【発明を実施するための形態】
【0017】
以下、本開示の実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付して、その説明は繰り返さない。
【0018】
図1は、本実施の形態に係る認証システム1の概略的な構成を示す図である。本実施の形態に係る認証システム1は、異なる国で運営されているサービス間でID(ユーザID)を連携するためのシステムである。認証システム1は、異なる国の認証サーバ同士が共通のプラットフォームを介して情報を交換することにより、比較的容易な構成でIDの連携を可能とする。
【0019】
図1を参照して、認証システム1は、サービス提供システム10~40と、グローバルIDプラットフォーム50と、ユーザ71が所有する端末装置70とを備える。サービス提供システム10~40、グローバルIDプラットフォーム50および端末装置70は、インターネット等のネットワーク60を介して互いに通信可能に接続されている。
【0020】
サービス提供システム10~40は、それぞれ、A~D国において自動車に関するサービスを提供するシステムである。
【0021】
サービス提供システム10は、A国において自動車に関するサービスを提供する。本実施の形態においては、サービス提供システム10は、第1サービスおよび第2サービスの2種類のサービスを提供する。第1サービスは、ユーザが毎月定額を支払うことで契約期間の間、車両を使用することができるサブスクリプションサービスである。第1サービスの定額料金には、たとえば、車両のメンテナンス費用および自動車保険料も含まれている。第2サービスは、会員間で特定の車両を共同で利用するカーシェアリングサービスである。なお、サービス提供システム10が提供するサービスは、上記の第1サービスおよび第2サービスに限られるものではない。サービス提供システム10は、第1サービスおよび第2サービスに加えて、第1サービスおよび第2サービスに代えて、あるいは、第1サービスおよび第2サービスのいずれかに代えて、他のサービスを提供してもよい。
【0022】
サービス提供システム10は、認証サーバ11と、バックエンドサーバ12,13とを含む。認証サーバ11は、第1サービスおよび/または第2サービスに会員登録しているユーザの認証を行なうサーバである。認証サーバ11は、オープンIDプロバイダとしての機能を有する。認証サーバ11の詳細な構成については、後に
図2を用いて説明する。なお、認証サーバ11は、本開示に係る「第1サーバ」の一例に相当する。
【0023】
バックエンドサーバ12は、第1サービスを提供するサーバである。バックエンドサーバ12のサービスプロバイダ(図示せず)は、マーケットプレイス等において、第1サービスの提供を受けるためのアプリケーション73を提供している。バックエンドサーバ12は、アプリケーション73をインストールした端末装置(たとえばスマートフォンやパーソナルコンピュータ等)から、アプリケーション73を介したユーザ操作を受け付け、当該操作に応じたサービスを提供するための処理を実行する。
【0024】
バックエンドサーバ13は、第2サービスを提供するサーバである。バックエンドサーバ13のサービスプロバイダ(図示せず)は、マーケットプレイス等において、第2サービスの提供を受けるためのアプリケーション(図示せず)を提供している。バックエンドサーバ13は、第2サービスの提供を受けるためのアプリケーションをインストールした端末装置から、当該アプリケーションを介したユーザ操作を受け付け、当該操作に応じたサービスを提供するための処理を実行する。
【0025】
端末装置70は、ユーザ71が所有するスマートフォンである。なお、端末装置70は、スマートフォンに限られるものではなく、たとえば、デスクトップ型のPC(Personal Computer)、ノート型のPC、タブレット端末、または、通信機能を有するその他の情報処理端末であってもよい。本実施の形態に係る端末装置70には、第1サービスを利用するためのアプリケーション73がインストールされている。
【0026】
ユーザ71は、バックエンドサーバ12が提供する第1サービスに会員登録しているユーザである。ユーザ71は、第1サービスにログインするためのID(ユーザID)およびパスワードを有している。パスワードは、たとえば、第1サービスへの会員登録時にユーザ71が設定したものである。ユーザ71は、端末装置70においてアプリケーション73を立ち上げて、第1サービス(バックエンドサーバ12)へのログイン画面を表示させ、表示されたログイン画面でユーザIDおよびパスワードを入力する。この入力情報は、認証サーバ11に送られる。認証サーバ11において、ユーザIDの認証の処理が行なわれ、認証が成功すると、ユーザ71は、バックエンドサーバ12から第1サービスの提供を受けることが可能となる。
【0027】
サービス提供システム20は、B国において自動車に関するサービスを提供する。本実施の形態においては、サービス提供システム20は、第3サービス、第4サービスおよび第5サービスの3種類のサービスを提供する。第3サービスは、第1サービスと同様のサブスクリプションサービスである。第4サービスは、第2サービスと同様のカーシェアリングサービスである。第5サービスは、通勤時等に1台の車両に複数人を相乗りさせるカープールサービスである。なお、サービス提供システム20が提供するサービスは、上記の第3サービス、第4サービスおよび第5サービスに限られるものではない。サービス提供システム10は、第3サービス、第4サービスおよび第5サービスに加えて、第3サービス、第4サービスおよび第5サービスに代えて、あるいは、第3サービス、第4サービスおよび第5サービスのいずれかに代えて、他のサービスを提供してもよい。
【0028】
サービス提供システム20は、認証サーバ21と、バックエンドサーバ22,23,24とを含む。認証サーバ21は、第3サービス、第4サービスおよび/または第5サービスに会員登録しているユーザの認証を行なうサーバである。認証サーバ21は、オープンIDプロバイダとしての機能を有する。認証サーバ21の詳細な構成については、後に
図3を用いて説明する。なお、認証サーバ21は、本開示に係る「第2サーバ」の一例に相当する。
【0029】
バックエンドサーバ22は、第3サービスを提供するサーバである。バックエンドサーバ22のサービスプロバイダ(図示せず)は、マーケットプレイス等において、第3サービスの提供を受けるためのアプリケーション74を提供している。バックエンドサーバ22は、アプリケーション74をインストールした端末装置から、アプリケーション74を介したユーザ操作を受け付け、当該操作に応じたサービスを提供するための処理を実行する。
【0030】
バックエンドサーバ23は、第4サービスを提供するサーバである。バックエンドサーバ23のサービスプロバイダ(図示せず)は、マーケットプレイス等において、第4サービスの提供を受けるためのアプリケーション(図示せず)を提供している。バックエンドサーバ23は、第4サービスの提供を受けるためのアプリケーションをインストールした端末装置から、当該アプリケーションを介したユーザ操作を受け付け、当該操作に応じたサービスを提供するための処理を実行する。
【0031】
バックエンドサーバ24は、第5サービスを提供するサーバである。バックエンドサーバ24のサービスプロバイダ(図示せず)は、マーケットプレイス等において、第5サービスの提供を受けるためのアプリケーション(図示せず)を提供している。バックエンドサーバ24は、第5サービスの提供を受けるためのアプリケーションをインストールした端末装置から、当該アプリケーションを介したユーザ操作を受け付け、当該操作に応じたサービスを提供するための処理を実行する。
【0032】
サービス提供システム30は、C国において自動車に関するサービスを提供する。サービス提供システムは、いずれも図示しないが、認証サーバと、少なくとも1つのバックエンドサーバとを有する。
【0033】
サービス提供システム40は、D国において自動車に関するサービスを提供する。サービス提供システムは、いずれも図示しないが、認証サーバと、少なくとも1つのバックエンドサーバとを有する。
【0034】
図2は、認証サーバ11の構成を説明するための図である。
図2を参照して、認証サーバ11は、制御装置111と、ROM(Read Only Memory)112と、RAM(Random Access Memory)113と、通信装置114と、記憶装置115とを含む。制御装置111、ROM112、RAM113、通信装置114、および、記憶装置115は、バス117に接続されている。
【0035】
制御装置111は、たとえば、CPU(Central Processing Unit)を含む集積回路によって構成される。制御装置111は、ROM112に格納されている各種プログラムをRAM113に展開して実行する。各種プログラムには、オペレーティングシステム等が含まれる。RAM113は、ワーキングメモリとして機能し、各種プログラムの実行に必要な各種データを一時的に格納する。制御装置111は、たとえば、第1サービスまたは第2サービスに会員登録したユーザに関する情報(以下「ユーザ情報」とも称する)を管理したり、認証処理をしたり、認可処理をしたりする。
【0036】
通信装置114は、ネットワーク60に接続するためのインターフェースを含み、ネットワーク60を介した外部の機器との通信が可能に構成される。外部の機器は、たとえば、グローバルIDプラットフォーム50および端末装置70等を含む。
【0037】
記憶装置115は、たとえば、ハードディスクまたはフラッシュメモリ等の記憶媒体を含んで構成される。記憶装置115は、ユーザ情報1151,1152を記憶する。ユーザ情報1151は、第1サービスに会員登録したユーザに関する情報である。ユーザ情報1152は、第2サービスに会員登録したユーザに関する情報である。ユーザ情報1151には、第1サービスに会員登録した際に割り当てられたユーザIDと、会員登録時にユーザが入力した個人情報とが含まれる。個人情報には、たとえば、氏名、メールアドレス、電話番号、住所、パスワード等の情報が含まれる。パスワードは、たとえば、会員登録時にユーザが設定したり、制御装置111が設定したりする。ユーザ情報1152には、第2サービスに会員登録した際に割り当てられたユーザIDと、会員登録時にユーザが入力した個人情報とが含まれる。なお、ユーザ情報1151を記憶する記憶装置と、ユーザ情報1152を記憶する記憶装置とが別個に設けられてもよい。
【0038】
制御装置111は、ユーザ情報管理部1111と、認証認可部1112と、グローバル認証部1113とを含む。制御装置111は、たとえば、ROM112に記憶されたプログラムを実行することにより、ユーザ情報管理部1111、認証認可部1112、および、グローバル認証部1113として機能する。なお、ユーザ情報管理部1111、認証認可部1112、および、グローバル認証部1113は、たとえば、専用のハードウェア(電子回路)により実現されてもよい。
【0039】
ユーザ情報管理部1111は、第1サービスまたは第2サービスに会員登録したユーザに、会員登録したサービス(第1サービスまたは第2サービス)に応じたユーザIDを割り当てる。詳細には、ユーザ情報管理部1111は、第1サービスに会員登録したユーザには、第1サービスのユーザIDを割り当てる。ユーザ情報管理部1111は、割り当てられた第1サービスのユーザIDと、入力された個人情報とを、ユーザ情報1151として記憶装置115に記憶させる。ユーザ情報管理部1111は、第2サービスに会員登録したユーザには、第2サービスのユーザIDを割り当てる。ユーザ情報管理部1111は、割り当てられた第2サービスのユーザIDと、入力された個人情報とを、ユーザ情報1152として記憶装置115に記憶させる。
【0040】
ユーザが第1サービスに会員登録したか、第2サービスに登録したかについては、ユーザ情報管理部1111は、第1サービスに対応するアプリケーション73および第2サービスに対応するアプリケーションのいずれを介して会員登録が行なわれたかにより判断する。たとえば、ユーザ情報管理部1111は、第1サービスに対応するアプリケーション73を介して会員登録が行なわれた場合には、第1サービスへの会員登録と判断し、入力された情報をユーザ情報1151として記憶させる。なお、アプリケーションとサービスとの対応関係を判断するために、第1サービスおよび第2サービスを識別するためのサービスIDを導入し、アプリケーション、サービスおよびユーザ情報にサービスIDを割り当てておいてもよい。この場合、ユーザ情報管理部1111は、会員登録に用いられたアプリケーションに割り当てられたサービスIDにより、会員登録の対象となるサービスを特定すればよい。
【0041】
認証認可部1112は、対応するアプリケーションを介して第1サービスまたは第2サービスへのログイン操作が行なわれた場合に、入力されたユーザIDの有効性を検証する。たとえば、認証認可部1112は、ユーザ71の端末装置70(ブラウザ)からアプリケーション73を介して第1サービスへのログイン要求を受けた場合、端末装置70に第1サービスへのログイン画面を表示させる。ログイン画面においてユーザIDおよびパスワードが入力されると、認証認可部1112は、ユーザIDおよびパスワードを記憶装置115に記憶されているユーザ情報1151に照会させて、ユーザ71(ユーザID)の認証を行なう。なお、認証認可部1112は、ユーザ71により操作されたアプリケーション73に基づいてサービスIDを特定することにより、照会させるユーザ情報が、ユーザ情報1151であることを認識してもよい。
【0042】
認証認可部1112は、ユーザIDの有効性を確認すると、端末装置70に認可コードを返す。認証認可部1112は、認可コードを添えたトークンリクエストを端末装置70から受けると、トークンをアプリケーションに返す。このトークンには、たとえば、アクセストークン、IDトークンおよびリフレッシュトークンが含まれる。たとえば、トークンを受けたアプリケーション73は、アクセストークンおよびIDトークンを用いて、バックエンドサーバ12にアクセスすることができる。これにより、ユーザ71は、第1サービスの提供を受けることができる。
【0043】
グローバル認証部1113は、サービス提供システム10が提供するサービス(第1サービスまたは第2サービス)と、他のサービス提供システム20~40が提供するサービスとの間でID連携するために機能する。詳細は後述するが、グローバル認証部1113は、サービス提供システム10が提供するサービス(第1サービスまたは第2サービス)のユーザIDを用いた、他のサービス提供システム20~40が提供するサービスへのログイン要求があった際に、ユーザIDの有効性を検証する。なお、以下においては、あるサービス提供システムが提供するサービスのユーザIDを用いた、他のサービス提供システムが提供するサービスへのログインを「グローバルログイン」とも称する。
【0044】
図3は、認証サーバ21の構成を説明するための図である。
図3を参照して、認証サーバ21は、制御装置211と、ROM212と、RAM213と、通信装置214と、記憶装置215とを含む。制御装置211、ROM212、RAM213、通信装置214、および、記憶装置215は、バス217に接続されている。制御装置211、ROM212、RAM213、通信装置214、および、記憶装置215は、記憶装置215に記憶される情報を除き、それぞれ、認証サーバ11の制御装置111、ROM112、RAM113、通信装置114、および、記憶装置115と基本的に同様であるため、その説明は繰り返さない。
【0045】
記憶装置215は、ユーザ情報2151,2152,2153を記憶する。ユーザ情報2151は、第3サービスに会員登録したユーザに関する情報である。ユーザ情報2152は、第4サービスに会員登録したユーザに関する情報である。ユーザ情報2153は、第5サービスに会員登録したユーザに関する情報である。
【0046】
なお、サービス提供システム30,40の認証サーバについても、基本的にはサービス提供システム10,20の認証サーバ11,21と同様の構成を有する。そのため、サービス提供システム30,40の認証サーバの詳細な説明は繰り返さない。
【0047】
次に、第1サービスに会員登録しているユーザ71の第1サービスへのログイン手順について説明する。ユーザ71は、アプリケーション73がインストールされている端末装置70において、アプリケーション73を立ち上げて、第1サービスへログインを行なう。
【0048】
図4および
図5は、第1サービス(バックエンドサーバ12)へのログイン処理の手順を示すフローチャートである。
図4および
図5のフローチャートの処理は、端末装置70においてユーザ71がアプリケーション73を立ち上げた際に開始される。
図4および
図5に示すフローチャートの各ステップ(以下ステップを「S」と略す)は、端末装置70、認証サーバ11(ユーザ情報管理部1111および認証認可部1112)およびバックエンドサーバ12によるソフトウェア処理によって実現される場合について説明するが、その一部あるいは全部が端末装置70内、認証サーバ11内およびバックエンドサーバ12内に作製されたハードウェア(電子回路)によって実現されてもよい。
【0049】
S1において、ユーザ71が端末装置70を操作してアプリケーション73を立ち上げて、端末装置70の表示画面上でログイン画面(認証要求を送信するための画面)を表示させるための操作を行なう。アプリケーション73は、当該操作を受け付ける。
【0050】
S2およびS3において、ログイン画面を表示させるための操作を受け付けると、アプリケーション73は、端末装置70のブラウザを介して、認証サーバ11にログイン画面の表示をリクエストする。具体的には、S2において、アプリケーション73は、端末装置70のブラウザを起動させ、ブラウザを認証サーバ11の認可エンドポイントにリダイレクトする。S3において、ブラウザは、認証サーバ11の認可エンドポイントにログイン画面の表示をリクエストする。
【0051】
S4において、認証サーバ11は、リクエストの内容を検証し、ブラウザへログイン画面を返却する。これによって、ブラウザに第1サービス(バックエンドサーバ12)へのログイン画面が表示される。
【0052】
S5において、ユーザ71は、ログイン画面に対してユーザIDおよびパスワードを入力し、ログインボタンを押す。これにより、ユーザIDおよびパスワードとともに、認証要求がブラウザから認証サーバ11に送られる。
【0053】
図6は、端末装置70に表示される第1サービスのログイン画面の一例を示す図である。端末装置70の表示部80には、ユーザID入力欄81と、パスワード入力欄82と、ログインボタン83と、グローバルログインボタン84とが表示されている。ユーザ71は、ユーザID入力欄81およびパスワード入力欄82に、ユーザIDおよびパスワードをそれぞれ入力し、ログインボタン83を押す。これにより、入力されたユーザIDおよびパスワードとともに、認証要求がブラウザから認証サーバ11に送られる。すなわち、ログインボタン83は、認証サーバ11で直接認証を受けるためのボタンである。
【0054】
グローバルログインボタン84は、第1サービス以外の他のサービスのユーザIDを用いた、第1サービスへのログインを要求する場合に使用される。グローバルログインボタン84の詳細については後述する。すなわち、グローバルログインボタン84は、認証サーバ11以外の認証サーバで認証を受けるためのボタンである。なお、ログインボタン83は、本開示に係る「第1ボタン」の一例に相当する。また、グローバルログインボタン84は、本開示に係る「第2ボタン」の一例に相当する。
【0055】
再び
図4および
図5を参照して、S6において、認証サーバ11は、入力されたユーザIDおよびパスワードを検証する。検証の結果、ユーザIDおよびパスワードのうちの少なくとも一方に誤りがある場合には、S7の処理が実行される。検証の結果、ユーザIDおよびパスワードに誤りがなければS8の処理が実行される。
【0056】
S7において、認証サーバ11は、ユーザIDおよびパスワードのうちの少なくとも一方に誤りがあることを示す画面をブラウザに返却する。当該画面がブラウザに表示されることにより、ユーザ71は入力の誤りを認識することができる。
【0057】
S8において、認証サーバ11は、認可コードを添えて、ブラウザをコールバックURLへリダイレクトする。コールバックURLの遷移先はアプリケーション73である。
【0058】
S9において、ブラウザは、コールバックURLの遷移先であるアプリケーション73に認可コードを添えてアクセスする。これにより、アプリケーション73に認可コードが渡る。
【0059】
S10において、アプリケーション73は、S9で受け取った認可コードを添えて、認証サーバ11のトークンエンドポイントにトークンリクエストを送る。
【0060】
S11において、認証サーバ11は、トークンリクエストの内容を検証し、トークンをアプリケーション73に送信する。認証サーバ11からアプリケーション73に送られるトークンには、たとえば、アクセストークン、IDトークンおよびリフレッシュトークンが含まれる。
【0061】
S12において、アプリケーション73は、アクセストークンおよびIDトークンを添えて、バックエンドサーバ12に第1サービスの提供をリクエストする。
【0062】
S13において、バックエンドサーバ12は、アクセストークンおよびIDトークンを受けると、アクセストークンおよびIDトークンを認証サーバ11のユーザ情報エンドポイントに送信する。
【0063】
S14において、認証サーバ11は、アクセストークンおよびIDトークンを検証し、ユーザ情報をバックエンドサーバ12に返す。
【0064】
S15において、バックエンドサーバ12は、ユーザ71へのサービスの提供を開始する。
【0065】
上記のようにして認証サーバ11から認証を受けることで、ユーザ71は、会員登録している第1サービスにログインし、バックエンドサーバ12から第1サービスの提供を受けることができる。
【0066】
再び
図1を参照して、グローバルIDプラットフォーム50は、国を跨いだ複数のサービス間でIDを連携するためのプラットフォームである。グローバルIDプラットフォーム50は、情報を中継する機能を有する。グローバルIDプラットフォーム50には、サービス(バックエンドサーバ)と認証サーバとを対応付けた対応情報が記憶されている。対応情報は、サービスと、当該サービスへログイン要求したユーザを認証する認証サーバとを対応付けた情報である。具体的には、対応情報では、第1サービスと認証サーバ11とが対応付けられている。また、対応情報では、第2サービスと認証サーバ11とが対応付けられている。また、対応情報では、第3サービスと認証サーバ21とが対応付けられている。また、対応情報では、第4サービスと認証サーバ21とが対応付けられている。また、対応情報では、第5サービスと認証サーバ21とが対応付けられている。グローバルIDプラットフォーム50は、対応情報に基づいて、情報の中継先を特定する。
【0067】
グローバルIDプラットフォーム50は、各サービス提供システム10~40および端末装置70の間の情報のやり取りを中継することで、あるサービス提供システムが提供するサービスのユーザIDを用いた、他のサービス提供システムが提供するサービスへのログイン(グローバルログイン)を可能にする。すなわち、ユーザ71は、あるサービス提供システムが提供する1つのサービスに会員登録しておけば、そのユーザIDを用いて、他のサービス提供システムが提供するサービスに会員登録することなく、他のサービス提供システムが提供するサービスにアクセスして、当該サービスを利用することが可能となる。
【0068】
たとえば、ユーザ71がB国を訪れた際に、B国内においてサービス提供システム20が提供する第3サービスを利用するためには、ユーザ71は、第3サービスに対応するアプリケーション74を端末装置70にインストールし、会員登録ページでユーザ71の個人情報を入力して、第3サービスに会員登録する必要がある。利用するサービス毎に会員登録することは、ユーザ71にとっては手間であり、ユーザ71の利便性を損ねてしまう。
【0069】
たとえば、OIDC等のプロトコルを用いて、各サービス提供システムの認証サーバの間でID連携するためのシステムを構築することで、各サービス提供システムの認証サーバ間でIDを連携させることも考えられる。しかしながら、連携する認証サーバが多数になると、システムが複雑化してしまう可能性がある。システムの複雑化は、システムの開発および維持に要する時間およびコストの増加を招いてしまう。
【0070】
そこで、本実施の形態に係る認証システム1では、情報を中継するグローバルIDプラットフォーム50を設けることで、認証サーバ間での直接の情報のやり取りを省略したグローバルログインを可能とした。これによって、あるサービス提供システムの認証サーバからすると、グローバルIDプラットフォーム50との間での情報処理によって、他の複数の認証サーバとのID連携が可能となる。すなわち、認証サーバとグローバルIDプラットフォーム50とで情報をやり取りできるシステムを構築すればよいので、各サービス提供システムの認証サーバ間で直接情報をやり取りしてID連携するシステムを構築する場合に比べ、システムの構成を簡素化することができる。以下、グローバルログインについて具体的に説明する。以下では、一例として、サービス提供システム20が提供する第3サービスに、第1サービスのユーザIDを用いてユーザ71がログインする例を想定する。ユーザ71は、第3サービスには会員登録をしていない。そのため、ユーザ71には、第3サービスのユーザIDが発行されていない。
【0071】
まず、ユーザ71は、端末装置70に第3サービスを利用するためのアプリケーション74をインストールする。そして、端末装置70においてユーザ71がアプリケーション74を立ち上げると、
図7~
図9に示す処理が開始される。
【0072】
図7~
図9は、グローバルログインの処理の手順を示すフローチャートである。
図7~
図9のフローチャートの処理は、端末装置70においてユーザ71がアプリケーション74を立ち上げた際に開始される。
図7~
図9に示すフローチャートの各ステップは、端末装置70、認証サーバ11(ユーザ情報管理部1111および認証認可部1112)、認証サーバ21(グローバル認証部2113)、バックエンドサーバ22およびグローバルIDプラットフォーム50によるソフトウェア処理によって実現される場合について説明するが、その一部あるいは全部が端末装置70内、認証サーバ11内、認証サーバ21内、バックエンドサーバ22内およびグローバルIDプラットフォーム50内に作製されたハードウェア(電子回路)によって実現されてもよい。
【0073】
S20において、ユーザ71が端末装置70を操作してアプリケーション74を立ち上げて、端末装置70の表示画面上でログイン画面を表示させるための操作を行なう。アプリケーション74は、当該操作を受け付ける。
【0074】
S21およびS22において、ログイン画面を表示させるための操作を受け付けると、アプリケーション74は、端末装置70のブラウザを介して、サービス提供システム20の認証サーバ21にログイン画面の表示をリクエストする。具体的には、S21において、アプリケーション74は、端末装置70のブラウザを起動させ、ブラウザを認証サーバ21の認可エンドポイントにリダイレクトする。S22において、ブラウザは、認証サーバ21の認可エンドポイントにログイン画面の表示をリクエストする。
【0075】
S23において、認証サーバ21は、リクエストの内容を検証し、ブラウザへログイン画面を返却する。
【0076】
S24において、ユーザ71がログイン画面においてグローバルログインボタン88を選択する。これにより、グローバルログインのリクエストがブラウザから認証サーバ21に送られる。
【0077】
図10は、端末装置70に表示される第3サービスのログイン画面の一例を示す図である。本実施の形態では、第3サービスのログイン画面の表示構成は、第1サービスのログイン画面の表示構成と基本的に同様である。端末装置70の表示部80には、ユーザID入力欄85と、パスワード入力欄86と、ログインボタン87と、グローバルログインボタン88とが表示されている。ユーザID入力欄85、パスワード入力欄86、および、ログインボタン87は、
図6での説明と同様であり、第3サービスを利用するために発行されたユーザIDおよびパスワードを用いて第3サービスにログインする場合に使用される。第3サービスに会員登録している場合には、ユーザID入力欄85およびパスワード入力欄86に第3サービスのユーザIDおよびパスワードをそれぞれ入力してログインボタン87を押す。すなわち、ログインボタン87は、認証サーバ21で直接認証を受けるためのボタンである。
【0078】
グローバルログインボタン88は、ID連携により第3サービスにログインするためのボタンである。すなわち、グローバルログインボタン88は、第3サービス以外の他のサービスのユーザIDを使用して、第3サービスにログインするためのボタンである。換言すれば、グローバルログインボタン88は、認証サーバ21以外の認証サーバで認証を受けるためのボタンである。グローバルログインボタン88は、本例のように、第3サービスに会員登録していないユーザ71が第3サービスにログインしようとする際に使用される。なお、ログインボタン87は、本開示に係る「第1ボタン」の一例に相当する。また、グローバルログインボタン88は、本開示に係る「第2ボタン」の一例に相当する。
【0079】
再び
図7~
図9を参照して、S25において、認証サーバ21は、グローバルログインのリクエストを受けると、ブラウザをグローバルIDプラットフォーム50のグローバルログインエンドポイントにリダイレクトする。
【0080】
S26において、ブラウザは、グローバルIDプラットフォーム50のグローバルログインエンドポイントにグローバルログインをリクエストする。
【0081】
S27において、グローバルIDプラットフォーム50は、リクエストの内容を検証し、ブラウザへ選択画面を返却する。選択画面は、グローバルログインに用いるユーザIDを選択するための画面である。本実施の形態では、ユーザ71は、第1サービスのユーザIDを用いるので、選択画面において、「A国」および「第1サービス」を選択する。
【0082】
図11は、端末装置70に表示される選択画面の一例を示す図である。端末装置70の表示部80には、国選択欄91と、サービス選択欄92と、選択(決定)ボタン93とが表示されている。ユーザ71は、いずれのサービスのユーザIDを用いてグローバルログインを行なうかを選択する。ここでは、ユーザ71は、A国の第1サービスのユーザIDを用いて第3サービスにグローバルログインを行なうので、国選択欄91にはA国を、サービス選択欄92には第1サービスを選択し、選択ボタン93を押す。
【0083】
再び
図7~
図9を参照して、S28において、ユーザ71が入力した情報(A国および第1サービス)がグローバルIDプラットフォーム50にリクエストとして送られる。
【0084】
S29において、リクエストを受けると、グローバルIDプラットフォーム50は、リクエストの内容に基づいて、グローバルログインに使用されるユーザIDの認証を行なう認証サーバを特定し、当該認証サーバにブラウザをリダイレクトする。具体的には、グローバルIDプラットフォーム50は、「A国」および「第1サービス」という情報から、第1サービスを提供するバックエンドサーバ12を含むサービス提供システム10の認証サーバ11を特定する。グローバルIDプラットフォーム50は、認証サーバ11にブラウザをリダイレクトする。たとえば、グローバルIDプラットフォーム50は、対応情報を用いて認証サーバを特定してもよい。
【0085】
S30において、ブラウザは、認証サーバ11に第1サービスのログイン画面の表示をリクエストする。
【0086】
S31において、認証サーバ11は、リクエストの内容を検証し、ブラウザへ第1サービスのログイン画面を返却する。
【0087】
S32において、ユーザ71は、ログイン画面において、第1サービスのユーザIDおよびパスワードを入力する。ログイン画面としては、たとえば、
図6の画面が表示されてもよいし、グローバルログインのための他の画面が表示されてもよい。
【0088】
S33において、認証サーバ11は、入力されたユーザIDおよびパスワードを検証する。検証の結果、ユーザIDおよびパスワードに誤りがないことが確認されると、認証サーバ11は、検証の結果をグローバルIDプラットフォーム50に返却する。具体的には、認証サーバ11は、ブラウザをグローバルIDプラットフォーム50にリダイレクトする。
【0089】
S34において、ブラウザは、検証の結果を添えてグローバルIDプラットフォーム50にアクセスする。
【0090】
なお、S33において、ユーザIDおよびパスワードのうちの少なくとも一方に誤りがある場合には、認証サーバ11は、ユーザIDおよびパスワードのうちの少なくとも一方に誤りがあることを示す検証の結果をグローバルIDプラットフォーム50に返却する。
【0091】
S35において、グローバルIDプラットフォーム50は、認証サーバ11から認証サーバ21へのユーザ情報1151の転送に同意を求めるリクエストをユーザ71(ブラウザ)に送信する。これにより、たとえば、端末装置70の表示部80に、ユーザ情報1151の転送の権限を求める画面が表示される。ユーザ71は、表示部80に表示された同意ボタン(図示せず)を押すことによって、ユーザ情報1151の転送に同意することができる。
【0092】
S36において、ユーザ71は、ユーザ情報の転送に同意し、端末装置70の表示部80に表示された同意ボタン(図示せず)を押す。これにより、ブラウザからグローバルIDプラットフォーム50にユーザ71の同意情報が送られる。
【0093】
S37およびS38において、グローバルIDプラットフォーム50は、認証サーバ21に同意情報を送信する。具体的には、S37において、グローバルIDプラットフォーム50は、ブラウザを認証サーバ21にリダイレクトする。S38において、ブラウザは、同意情報を添えて認証サーバ21にアクセスする。
【0094】
S39において、認証サーバ21は、認可コードを添えて、ブラウザをコールバックURLへリダイレクトする。コールバックURLの遷移先はアプリケーション74である。
【0095】
S40において、ブラウザは、コールバックURLの遷移先であるアプリケーション74に認可コードを添えてアクセスする。これにより、アプリケーション74に認可コードが渡る。
【0096】
S41において、アプリケーション74は、S40で受け取った認可コードを添えて、トークンリクエストを認証サーバ21のトークンエンドポイントに送る。
【0097】
S42において、認証サーバ21は、トークンリクエストの内容を検証し、トークンをアプリケーション74に送信する。認証サーバ21からアプリケーション74に送られるトークンには、たとえば、アクセストークン、IDトークンおよびリフレッシュトークンが含まれる。
【0098】
S43において、アプリケーション74は、アクセストークンおよびIDトークンを添えて、バックエンドサーバ22に第3サービスの提供をリクエストする。
【0099】
S44において、バックエンドサーバ22は、アクセストークンおよびIDトークンを受けると、アクセストークンおよびIDトークンを認証サーバ21のユーザ情報エンドポイントに送信する。
【0100】
S45において、認証サーバ21は、アクセストークンおよびIDトークンを検証し、ユーザ71のユーザ情報1151をバックエンドサーバ22に返す。
【0101】
S46において、バックエンドサーバ22は、ユーザ71へのサービスの提供を開始する。このようにして、第3サービスに会員登録していないユーザ71が、会員登録している第1サービスのユーザIDを使用して第3サービスにログインすることができる。
【0102】
ユーザ71のユーザ情報1151は、S36の処理の実行後からS44の実行前の間に、S50~S52の処理により、グローバルIDプラットフォーム50を介して認証サーバ21に共有されている。S36の処理の実行後からS44の実行前の間に、グローバルIDプラットフォーム50は、認証サーバ11からユーザ71のユーザ情報1151を取得し、取得されたユーザ71のユーザ情報1151を認証サーバ21に送信する。
【0103】
S50において、ユーザ71の同意情報が得られると、グローバルIDプラットフォーム50は、ユーザ71のユーザ情報1151の送信を認証サーバ11にリクエストする。
【0104】
S51において、認証サーバ11は、記憶装置115からユーザ71のユーザ情報1151を読み出し、読み出されたユーザ71のユーザ情報1151をグローバルIDプラットフォーム50に送信する。
【0105】
S52において、グローバルIDプラットフォーム50は、ユーザ71のユーザ情報1151を認証サーバ21に送信する。
【0106】
なお、S50~S52の処理は、S36の処理の実行後からS44の実行前までの間に実行されればよい。S50~S52の処理の実行タイミングは、
図7~
図9に示すタイミングに限られるものではない。
【0107】
以上のように、本実施の形態に係る認証システム1は、情報を中継するグローバルIDプラットフォーム50を備えることにより、認証サーバ間での直接の情報のやり取りを省略したグローバルログインが可能となっている。これにより、認証サーバとグローバルIDプラットフォーム50とで情報をやり取りできるシステムを構築すればよいので、各サービス提供システムの認証サーバ間で直接情報をやり取りしてID連携するシステムを構築する場合に比べ、システムの構成を簡素化することができる。
【0108】
また、端末装置70の表示部80に表示される各サービス(たとえば第1サービスや第3サービス)へのログイン画面には、ログインボタン(たとえばログインボタン83、87)とグローバルログインボタン(たとえばグローバルログインボタン84,88)とが表示される。2つのボタンが表示されることにより、ユーザ71は、会員登録しているサービスにログインする場合にはログインボタンを、会員登録していないサービスにグローバルログインする場合にはグローバルログインボタンを押すことを視覚的に認識することができる。ログイン画面にログインボタンおよびグローバルログインボタンが表示されることにより、ユーザ71の利便性を向上させることができる。
【0109】
[変形例1]
実施の形態では、認証サーバがユーザ情報を記憶して管理する例について説明した。しかしながら、ユーザ情報を管理する機能は、認証サーバとは別個のサーバに持たせることも可能である。
【0110】
図12は、変形例1に係るサービス提供システム10Aの構成を概略的に示す図である。サービス提供システム10Aは、実施の形態のサービス提供システム10に代わるものである。なお、以下では、サービス提供システム10Aの構成について代表的に説明するが、B国~D国のサービス提供システムについても同様の構成を採用することができる。
【0111】
サービス提供システム10Aは、情報管理サーバ11Aと、認証サーバ11Bと、バックエンドサーバ12,13とを含む。
【0112】
情報管理サーバ11Aは、制御装置111Aと、ROMと、RAMと、通信装置と、記憶装置115Aとを含む。なお、
図12では、ROM、RAMおよび通信装置の図示は省略している。
【0113】
制御装置111Aは、ユーザ情報管理部1111Aを有する。制御装置111Aは、たとえば、ROMに記憶されたプログラムを実行することにより、ユーザ情報管理部1111Aとして機能する。なお、ユーザ情報管理部1111Aは、たとえば、専用のハードウェア(電子回路)により実現されてもよい。
【0114】
ユーザ情報管理部1111Aは、実施の形態のユーザ情報管理部1111と同様の機能を有する。
【0115】
記憶装置115Aは、実施の形態の記憶装置115と同様である。記憶装置115Aは、ユーザ情報1151,1152を記憶する。
【0116】
認証サーバ11Bは、制御装置111Bと、ROMと、RAMと、通信装置と、記憶装置とを含む。なお、
図12では、ROM、RAM、通信装置および記憶装置の図示は省略している。認証サーバ11B記憶装置には、ユーザ情報1151,1152は記憶されていない。
【0117】
制御装置111Bは、認証認可部1112Bおよびグローバル認証部1113Bを有する。制御装置111Bは、たとえば、ROMに記憶されたプログラムを実行することにより、認証認可部1112Bおよびグローバル認証部1113Bとして機能する。なお、認証認可部1112Bおよびグローバル認証部1113Bは、たとえば、専用のハードウェア(電子回路)により実現されてもよい。
【0118】
認証認可部1112Bおよびグローバル認証部1113Bは、実施の形態の認証認可部1112およびグローバル認証部1113と同様の機能を有する。
【0119】
認証システム1において、サービス提供システム10Aの構成を採用しても、実施の形態と同様の効果を奏することができる。
【0120】
[変形例2]
実施の形態では、複数のバックエンドサーバ(たとえば、バックエンドサーバ12,13)に対して1つの認証サーバ(たとえば、認証サーバ11)が設けられる例について説明したが、バックエンドサーバ毎に認証サーバが設けられてもよい。この場合においても、各認証サーバがグローバルIDプラットフォームを介して、他の認証サーバとの間で情報をやり取りすることにより、実施の形態と同様の効果を奏することができる。
【0121】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0122】
1 認証システム、10,10A,20,30,40 サービス提供システム、11,11B,21 認証サーバ、11A 情報管理サーバ、12,13,22,23,24 バックエンドサーバ、50 プラットフォーム、60 ネットワーク、70 端末装置、71 ユーザ、73,74 アプリケーション、80 表示部、81,85 ID入力欄、82,86 パスワード入力欄、83,87 ログインボタン、84,88 グローバルログインボタン、91 国選択欄、92 サービス選択欄、93 選択ボタン、111,111A,111B,211 制御装置、112,212 ROM、113,213 RAM、114,214 通信装置、115,115A,215 記憶装置、117,217 バス、1111,1111A,2111 ユーザ情報管理部、1112,1112B,2112 認証認可部、1113,1113B,2113 グローバル認証部、1151,1152,2151,2152,2153 ユーザ情報。