JP2016009299A - Single sign-on system, terminal device, control method and computer program - Google Patents

Single sign-on system, terminal device, control method and computer program Download PDF

Info

Publication number
JP2016009299A
JP2016009299A JP2014129086A JP2014129086A JP2016009299A JP 2016009299 A JP2016009299 A JP 2016009299A JP 2014129086 A JP2014129086 A JP 2014129086A JP 2014129086 A JP2014129086 A JP 2014129086A JP 2016009299 A JP2016009299 A JP 2016009299A
Authority
JP
Japan
Prior art keywords
authentication
authorization
module
token
server
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
JP2014129086A
Other languages
Japanese (ja)
Inventor
勇人 松ヶ下
Isato Matsugashita
勇人 松ヶ下
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 JP2014129086A priority Critical patent/JP2016009299A/en
Publication of JP2016009299A publication Critical patent/JP2016009299A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a single sign-on system which allows a terminal user to achieve single sign-on to a server providing various functions with one login operation to a terminal without installing an authentication server separately.SOLUTION: An information processor 400 transmits an authentication cooperation request to an authorization server 200 by receiving a login operation to the own device, transmits a second authentication request to a service provision server 300 due to reception of the first authentication request from the authorization server 200, transmits a third authentication request to the service provision server 300 due to a response to the second authentication request by the service provision server 300, receives a redirect instruction to an authorization server including an authorization code from the service provision server 300 responding to the third authentication request, and receives a response to the authentication cooperation request including an authentication token from the authorization server 200 generating the authentication token by using the authorization code included in the redirect.

Description

本発明は、端末およびサーバから構成されるシングルサインオンシステムに関する。より詳細には、端末への信頼に基づいて端末の認証方式を問わずに端末がサーバへシングルサインオンする方法およびコンピュータプログラムに関する。   The present invention relates to a single sign-on system including a terminal and a server. More specifically, the present invention relates to a method and a computer program in which a terminal performs single sign-on to a server regardless of a terminal authentication method based on trust in the terminal.

近年、企業内に設置された端末、例えば、PC、タブレットや画像形成装置が、インターネット上に展開された所謂クラウドサービスと連携し、ユーザに各種機能を提供するシステムが提供されている。各端末は、クラウドサービスと連携する事によって、端末自身が持つ機能だけではなく、クラウドサービスの機能をもユーザに提供する事が可能である。一般的に、企業内に設置された端末やインターネット上に展開されたクラウドサービスを利用するためには、不正利用の防止やユーザを識別するために、ユーザ認証が必要である。従って、ユーザには端末とクラウドサービスの両方への認証情報の入力が必要とされ、利便性にかけるという課題がある。   In recent years, a system has been provided in which terminals installed in a company, for example, a PC, a tablet, and an image forming apparatus cooperate with a so-called cloud service deployed on the Internet to provide various functions to a user. Each terminal can provide not only the function of the terminal itself but also the function of the cloud service to the user by cooperating with the cloud service. In general, in order to use a terminal installed in a company or a cloud service developed on the Internet, user authentication is necessary to prevent unauthorized use and to identify a user. Therefore, the user is required to input authentication information to both the terminal and the cloud service, and there is a problem in that it is convenient.

この課題を解決する手段として、複数の認証システムが連携することで、1度の認証の結果をもって、複数の認証を受ける事ができるシングルサインオン技術の利用が広がっている。例えば、Security Assertion Markup Language(以下SAML)プロトコルの技術が知られている。また、OpenID Foundation(http://openid.net/foundation/)が規定しているOpenID Connectといった技術が知られている。   As a means for solving this problem, the use of a single sign-on technology capable of receiving a plurality of authentications with a result of one authentication is spreading by cooperation of a plurality of authentication systems. For example, a Security Assession Markup Language (hereinafter, SAML) protocol technique is known. In addition, a technique called OpenID Connect defined by OpenID Foundation (http://openid.net/foundation/) is known.

また、端末とクラウドサービスにおいてシングルサインオンを実現するために特許文献1は以下のシングスサインオンシステムを開示している。特許文献1が開示するシングスサインオンシステムでは、利用者端末のOSにてユーザ認証するための認証サーバ装置と、クラウドサービス側に備えた認証連携基盤装置とが認証情報を共有することでシングルサインオンを実現している。   In order to realize single sign-on in a terminal and a cloud service, Patent Document 1 discloses the following single sign-on system. In the single sign-on system disclosed in Patent Document 1, an authentication server device for user authentication by an OS of a user terminal and an authentication cooperation infrastructure device provided on the cloud service side share a single sign. ON is realized.

上記従来技術では、端末でのユーザ認証を行うサーバ装置、つまり認証サーバが提供され、この認証サーバがクラウド−サービスとシングルサインオンをするための仕組みを提供する事で課題を解決している。つまり、端末は認証サーバが備える認証手段を用いてユーザ認証する必要がある。   In the above-described conventional technology, a server device that performs user authentication at a terminal, that is, an authentication server is provided, and this authentication server solves the problem by providing a mechanism for performing single sign-on with a cloud service. That is, the terminal needs to perform user authentication using an authentication unit provided in the authentication server.

一方、近年、セキュリティの確保およびユーザの利便性向上のために、ユーザを認証する手段として様々な手段が利用されている。例えば、指紋等の生体情報を利用する認証手段や、非接触型のICカードを利用する手段、さらには、複数の認証手段を組み合わせる多要素認証手段、等がある。これら認証手段を備えた端末を利用する場合、従来技術、つまり、端末での認証を認証サーバで行う場合は、認証サーバがこれら複数の認証手段に対応する必要がある。特に、新しい認証手段を備えた端末を利用する場合は、そのたびに、認証サーバが新しい認証手段に対応しなければならないという課題がある。   On the other hand, in recent years, various means have been used as means for authenticating users in order to ensure security and improve user convenience. For example, there are an authentication unit that uses biometric information such as fingerprints, a unit that uses a non-contact type IC card, and a multi-factor authentication unit that combines a plurality of authentication units. When using a terminal equipped with these authentication means, in the conventional technique, that is, when authentication at the terminal is performed by an authentication server, the authentication server needs to correspond to the plurality of authentication means. In particular, when using a terminal equipped with new authentication means, there is a problem that the authentication server must correspond to the new authentication means each time.

特開2013−8140号公報JP2013-8140A

従来技術により、端末の認証を行う認証サーバと、クラウドサービス間で連携する事によってシングルサインオンを実現する事は可能である。しかしながら、従来技術においては、端末と連携する認証サーバが必要であり、かつ、端末の認証手段として、認証サーバが対応可能な認証手段しか選択できないという課題がある。   With conventional technology, it is possible to realize single sign-on by linking between an authentication server for authenticating a terminal and a cloud service. However, the prior art requires an authentication server that cooperates with the terminal, and there is a problem that only an authentication means that can be supported by the authentication server can be selected as the authentication means of the terminal.

本発明は、認証サーバを別途設置することなく、端末への一度のログイン操作で端末利用者が各種機能を提供するサーバとシングルサインオンを実現することを可能とする仕組みを提供することを目的とする。   An object of the present invention is to provide a mechanism that enables a terminal user to realize a single sign-on with a server that provides various functions by a single login operation to a terminal without separately installing an authentication server. And

本発明の一実施形態の情報処理装置は、ユーザ認証を実行する認可サーバとウェブサービスを提供するサービス提供サーバとを備えるシステムを介して前記ウェブサービスを利用する。前記情報処理装置は、自装置に対するログイン操作を受け付けて前記認可サーバに認証情報を含む認証連携要求を送信する第1の送信手段と、前記認証連携要求に対し、前記認可サーバから第1の認証要求を受け付けたことに起因して、第2の認証要求を前記サービス提供サーバに送信する第2の送信手段と、前記サービス提供サーバによる、第1のIDトークンを含む前記第2の認証要求への応答に起因して、該第1のIDトークンを含む第3の認証要求を前記サービス提供サーバに送信する第3の送信手段と、前記第3の認証要求に応答した前記サービス提供サーバから、認可コードを含む前記認可サーバへのリダイレクト指示を受信する第1の受信手段と、前記リダイレクトに含まれる前記認可コードを用いて認証トークンを生成した前記認可サーバから、前記認証トークンを含む前記認証連携要求に対する応答を受信する第2の受信手段と、を備える。   An information processing apparatus according to an embodiment of the present invention uses the web service via a system including an authorization server that performs user authentication and a service providing server that provides a web service. The information processing apparatus receives a log-in operation on the self-apparatus and transmits an authentication cooperation request including authentication information to the authorization server; and the first authentication from the authorization server in response to the authentication cooperation request. Due to the acceptance of the request, the second transmitting means for transmitting a second authentication request to the service providing server, and the second authentication request including the first ID token by the service providing server. From the third transmission means for transmitting a third authentication request including the first ID token to the service providing server, and the service providing server responding to the third authentication request, An authentication token is generated using first receiving means for receiving a redirect instruction to the authorization server including an authorization code, and the authorization code included in the redirect From serial authorization server, and a second receiving means for receiving a response to the authentication collaboration request including the authentication token.

本発明によれば、認証サーバを別途設置することなく、端末への一度のログイン操作で端末利用者が各種機能を提供するサーバとシングルサインオンを実現することが可能となる。本発明においては、端末利用者が、端末からクラウドサービスを利用する際に、端末にて認証されている事をもってクラウドサービスに対してシングルサインオンが実現される。従って、認証サーバ装置を別途設ける必要がなく、また端末の認証手段に関して制限を設ける必要もないため、シングスサインオンシステムにおけるユーザの利便性が向上する。   According to the present invention, it is possible to realize single sign-on with a server in which a terminal user provides various functions by a single login operation to a terminal without separately installing an authentication server. In the present invention, when the terminal user uses the cloud service from the terminal, single sign-on is realized for the cloud service by being authenticated by the terminal. Therefore, it is not necessary to separately provide an authentication server device, and it is not necessary to limit the authentication means of the terminal, so that convenience for the user in the single sign-on system is improved.

シングルサインオンシステムの全体構成例を示す図である。It is a figure which shows the example of whole structure of a single sign-on system. 各装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of each apparatus. 各装置のソフトウェアモジュール構成例を示す図である。It is a figure which shows the example of a software module structure of each apparatus. 端末装置に表示される各種画面例を示す図である。It is a figure which shows the example of various screens displayed on a terminal device. クライアント登録のシーケンスを示す図である。It is a figure which shows the sequence of a client registration. シングルサインオン設定のシーケンスを示す図である。It is a figure which shows the sequence of a single sign-on setting. シングルサインオン設定のシーケンスを示す図である。It is a figure which shows the sequence of a single sign-on setting. 端末装置に表示される各種画面例を示す図である。It is a figure which shows the example of various screens displayed on a terminal device. シングルサインオンを行う際のシーケンスを示す図である。It is a figure which shows the sequence at the time of performing single sign-on. シングルサインオンを行う際のシーケンスを示す図である。It is a figure which shows the sequence at the time of performing single sign-on. 組織選択画面例を示す図である。It is a figure which shows the example of an organization selection screen.

以下、本発明を実施するための形態について図面を用いて説明する。本実施形態において、端末利用者が、端末からクラウドサービスを利用する際に、端末にて認証されている事をもってシングルサインオンを実現する。シングルサインオンを実現するためには、以下の処理が事前に必要となる。   Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings. In this embodiment, when the terminal user uses the cloud service from the terminal, single sign-on is realized by being authenticated by the terminal. In order to realize single sign-on, the following processing is required in advance.

まず、第一の設定として、端末の管理者が、クラウドサービスにてシングルサインオンをするための設定を実施する。これは、OpenID Connectでいうところの、OP(OpenID Provider)、およびRP(Relying Party)の設定である。本実施形態では、シングルサインオン技術として、OpenID Connectを利用して説明するが、プロトコルを限定するわけではない。例えば、シングルサインオン技術であれば、SAMLやOpenIDを用いる事も可能である。   First, as a first setting, the administrator of the terminal performs settings for single sign-on with the cloud service. This is the setting of OP (OpenID Provider) and RP (Relying Party) in terms of OpenID Connect. In the present embodiment, the OpenID Connect is used as a single sign-on technique, but the protocol is not limited. For example, with a single sign-on technology, SAML or OpenID can be used.

第二の設定として、端末をクラウドサービスに登録し、当該端末であることを証明するための情報を取得しておく必要がある。この情報は、OAuth 2.0の場合、端末を識別するための識別情報であるクライアントIDおよびクライアントシークレットである。本実施形態では、この端末登録の方法として、SSL/TLSのX.509証明書を用いたクライアント認証を用いて、端末自身が能動的に登録処理を実施し、クライアントID、クライアントシークレットを取得するフローで説明する。しかしながら、手段を限定するわけではない。例えば、端末がID、パスワード、何かしらのトークンを用いてクライアント認証をうけ、動的に登録処理するよう構成する事もできる。さらに、管理者が、別手段で取得したクライアントID、クライアントシークレットを端末に登録する構成でも登録を実現する事ができる。   As a second setting, it is necessary to register a terminal with the cloud service and acquire information for proving that the terminal is the terminal. In the case of OAuth 2.0, this information is a client ID and a client secret that are identification information for identifying a terminal. In the present embodiment, as the terminal registration method, the SSL / TLS X. A description will be given of a flow in which the terminal itself actively performs registration processing using client authentication using a 509 certificate and acquires a client ID and a client secret. However, the means are not limited. For example, the terminal may be configured to perform client registration using an ID, a password, or some token and dynamically perform registration processing. Furthermore, registration can be realized even in a configuration in which the administrator registers the client ID and client secret acquired by another means in the terminal.

そして、第三の設定として、端末の管理者が、端末がクラウドサービスとシングルサインオンする事を許可するための設定をする。ここで先ほど取得したクライアントID、クライアントシークレットを用いた、OAuth 2.0をプロトコルとして許可するための処理を説明するが、プロトコルを限定するわけではない。例えば、取得したクライアントID、クライアントシークレットを用いたBasic認証によって、端末自身が許可を得るよう構成する事も可能である。本実施の形態では、これら第一、第二、第三の設定を順次説明し、その後に、端末利用者によるシングルサインオン処理について説明する。   Then, as a third setting, the administrator of the terminal performs a setting for permitting the terminal to perform single sign-on with the cloud service. Here, a process for permitting OAuth 2.0 as a protocol using the client ID and client secret acquired earlier will be described, but the protocol is not limited. For example, the terminal itself can be configured to obtain permission through basic authentication using the acquired client ID and client secret. In the present embodiment, the first, second, and third settings will be sequentially described, and then the single sign-on process by the terminal user will be described.

図1は、本発明の一実施形態のシングルサインオンシステムの全体構成例を示す。シングルサインオンシステムは、認可サーバ200、シングルサインオンサーバ300、端末400、データベースサーバ500を備える。認可サーバ200、シングルサインオンサーバ300及びデータベースサーバ500は、LAN(Local Area Network)101により接続されている。認可サーバ200、シングルサインオンサーバ300及びデータベースサーバ500は単一のサーバから構成されてよく、その場合、複数のウェブサービスを提供するシステムとして機能する。また、端末400は、LAN101によりWAN(Wide Area Network)100に接続され、WAN100を介して各サーバと接続される。本発明ではWorld Wide Web(WWW)システムが構築されている。   FIG. 1 shows an overall configuration example of a single sign-on system according to an embodiment of the present invention. The single sign-on system includes an authorization server 200, a single sign-on server 300, a terminal 400, and a database server 500. The authorization server 200, the single sign-on server 300, and the database server 500 are connected by a LAN (Local Area Network) 101. The authorization server 200, the single sign-on server 300, and the database server 500 may be composed of a single server, and in that case, functions as a system that provides a plurality of web services. The terminal 400 is connected to a WAN (Wide Area Network) 100 via the LAN 101 and is connected to each server via the WAN 100. In the present invention, a World Wide Web (WWW) system is constructed.

認可サーバ200は、OAuth 2.0を実現するためのサーバである。シングルサインオンサーバ300は認可サーバ200とシングルサイオンを実現するためのサーバであり、ウェブサービスを提供するサービス提供サーバとして機能する場合もある。端末400は一つまたは複数の端末であり、PCや、スマートフォンやタブレットと呼ばれる携帯端末や、画像形成装置であり、端末利用者を認証するための認証モジュールを備える。この認証モジュールは不図示の認証サーバと通信することで端末利用者を認証するよう構成する事もできる。さらに、端末400は、Webブラウザと、アプリケーションモジュールとを備える。ユーザは、Webブラウザやアプリケーションモジュールを用いて認可サーバ200およびシングルサインオンサーバ300と通信する。   The authorization server 200 is a server for realizing OAuth 2.0. The single sign-on server 300 is a server for realizing single sign-on with the authorization server 200, and may function as a service providing server that provides a web service. The terminal 400 is one or a plurality of terminals, and is a PC, a mobile terminal called a smartphone or a tablet, or an image forming apparatus, and includes an authentication module for authenticating a terminal user. This authentication module can also be configured to authenticate the terminal user by communicating with an authentication server (not shown). Further, the terminal 400 includes a web browser and an application module. The user communicates with the authorization server 200 and the single sign-on server 300 using a Web browser or an application module.

データベースサーバ500は、後述の認可モジュール600やシングルサインオンモジュール700が利用するデータを格納する。なお、データベースサーバ500は、認可サーバ200用と、シングルサインオンサーバ300用で別サーバとして構成されてもよい。また、認可サーバ200、シングルサインオンサーバ300は同一のサーバ上に構成されていてもよい。また、データベースサーバ500についても、認可サーバ200、シングルサインオンサーバ300と同一のサーバ上に構成されてもよい。   The database server 500 stores data used by an authorization module 600 and a single sign-on module 700 described later. The database server 500 may be configured as a separate server for the authorization server 200 and the single sign-on server 300. The authorization server 200 and the single sign-on server 300 may be configured on the same server. The database server 500 may also be configured on the same server as the authorization server 200 and the single sign-on server 300.

本実施形態に係るシングルサインオンシステムは、図2に示すような構成のサーバおよび端末から成るシステム上に実現される。図2は、認可サーバ200、シングルサインオンサーバ300、端末400のハードウェア構成例を示す。図2に示されるハードウェアブロック図は一般的な情報処理装置のハードウェアブロック図に相当するものとし、本実施形態の各サーバおよび端末には一般的な情報処理装置のハードウェア構成を適用できる。   The single sign-on system according to the present embodiment is realized on a system including a server and a terminal configured as shown in FIG. FIG. 2 shows a hardware configuration example of the authorization server 200, the single sign-on server 300, and the terminal 400. The hardware block diagram shown in FIG. 2 corresponds to the hardware block diagram of a general information processing apparatus, and the hardware configuration of a general information processing apparatus can be applied to each server and terminal of this embodiment. .

図2に示すハードウェア構成は、CPU201乃至外部メモリ211を備える。CPU201は、システムバス204に接続された各処理部を統合的に制御する。CPU201は、ROM203のプログラム用ROMに記憶、またはハードディスク(HD)等の外部メモリ211からRAM202にロードされたOSやアプリケーション等のプログラムを実行する。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。ROM203は、フォントROM、プログラムROM、データROM等から構成される。CPU、ROMおよびRAMはそれぞれ、Central Processing Unit、Read Only Memory、Random Access Memoryの略称である。OSは、コンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSと呼ぶ。後述する各シーケンスの処理は、上述のプログラムをCPU201が実行することにより実現される。   The hardware configuration illustrated in FIG. 2 includes a CPU 201 to an external memory 211. The CPU 201 controls each processing unit connected to the system bus 204 in an integrated manner. The CPU 201 executes a program such as an OS or an application stored in the program ROM of the ROM 203 or loaded into the RAM 202 from the external memory 211 such as a hard disk (HD). The RAM 202 functions as a main memory, work area, and the like for the CPU 201. The ROM 203 includes a font ROM, a program ROM, a data ROM, and the like. CPU, ROM, and RAM are abbreviations for Central Processing Unit, Read Only Memory, and Random Access Memory, respectively. OS is an abbreviation for an operating system running on a computer, and the operating system is hereinafter referred to as OS. Processing of each sequence to be described later is realized by the CPU 201 executing the above-described program.

キーボードコントローラ(KBC)205は、キーボード209や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ210の表示を制御する。ディスクコントローラ(DKC)207は、各種データを記憶するハードディスク(HD)等の外部メモリ211に格納されたデータへのアクセスを制御する。ネットワークコントローラ(NC)208は、WAN100、LAN101、もしくは公衆回線102を介して接続された他の機器との通信制御処理を実行する。   A keyboard controller (KBC) 205 controls key input from a keyboard 209 or a pointing device (not shown). A CRT controller (CRTC) 206 controls display on the CRT display 210. A disk controller (DKC) 207 controls access to data stored in an external memory 211 such as a hard disk (HD) that stores various data. A network controller (NC) 208 executes communication control processing with other devices connected via the WAN 100, the LAN 101, or the public line 102.

尚、後述の全ての説明においては、特に断りのない限りサーバにおける実行のハード上の主体はCPU201であり、ソフトウェア上の主体は外部メモリ211にインストールされたアプリケーションプログラムである。   In all the descriptions below, unless otherwise specified, the hardware main body of execution in the server is the CPU 201, and the software main body is an application program installed in the external memory 211.

図3は、本実施形態に係る、認可サーバ200、シングルサインオンサーバ300、端末400それぞれのモジュール構成を示す図である。認可サーバ200は、認可モジュール600およびHTTPサーバモジュール610をアプリケーションプログラムとして備える。HTTPサーバモジュール610は、WAN100を介して接続する端末400とのHTTP通信を行うためのモジュールである。また、HTTPサーバモジュール610はSSL/TLSによる通信が可能に構成されており、不図示の証明書ストアを持つ。また、本実施形態では、後述するクライアント登録要求を受け付けるエンドポイントにて、要求元に対してX.509形式の証明書による認証を要求するよう構成している。   FIG. 3 is a diagram illustrating module configurations of the authorization server 200, the single sign-on server 300, and the terminal 400 according to the present embodiment. The authorization server 200 includes an authorization module 600 and an HTTP server module 610 as application programs. The HTTP server module 610 is a module for performing HTTP communication with the terminal 400 connected via the WAN 100. The HTTP server module 610 is configured to be able to communicate by SSL / TLS and has a certificate store (not shown). In the present embodiment, an X.P. It is configured to request authentication using a 509 format certificate.

認可モジュール600は、HTTPサーバモジュール610上で、またはHTTPサーバモジュール610と連携して動作するWebアプリケーションである。認可モジュール600はHTTPサーバモジュール610を介して端末400からの要求を受け付け、処理し、応答する。以後、本実施形態では、端末400からHTTPサーバモジュール610を介して認可モジュール600とHTTP通信する処理について、単に端末400から認可モジュール600への要求および応答として記載する。   The authorization module 600 is a Web application that operates on the HTTP server module 610 or in cooperation with the HTTP server module 610. The authorization module 600 accepts a request from the terminal 400 via the HTTP server module 610, processes it, and responds. Hereinafter, in the present embodiment, the process of performing HTTP communication with the authorization module 600 from the terminal 400 via the HTTP server module 610 is simply described as a request and response from the terminal 400 to the authorization module 600.

また、本実施形態では、HTTPサーバモジュール610は、後述するクライアント登録要求を受け付けた場合は、要求元にX.509証明書を用いたクライアント認証を要求するよう構成されている。そして、HTTPサーバモジュール610は、クライアント認証が成功した場合、受信したクライアント認証情報を認可モジュール600に通知するよう構成されている。   In the present embodiment, when the HTTP server module 610 receives a client registration request described later, the HTTP server module 610 sends an X. It is configured to request client authentication using a 509 certificate. Then, the HTTP server module 610 is configured to notify the authorization module 600 of the received client authentication information when the client authentication is successful.

また、認可モジュール600はOAuth 2.0に対応しており、端末400からのOAuth 2.0に関するリクエストを処理し、応答する機能を備える。その際、認可モジュール600は端末に対してユーザを認証するための画面を応答し、ユーザを認証する機能を備える。さらに認可モジュール600は、OpenID ConnectのRPの機能を備えており、後述するシングルサインオンサーバ300にて認証された情報をもって、シングルサインオンを受ける機能を備える。   The authorization module 600 corresponds to OAuth 2.0, and has a function of processing and responding to a request related to OAuth 2.0 from the terminal 400. At that time, the authorization module 600 has a function of responding a screen for authenticating the user to the terminal and authenticating the user. Further, the authorization module 600 has an RP function of OpenID Connect, and has a function of receiving single sign-on with information authenticated by a single sign-on server 300 described later.

シングルサインオンサーバ300は、シングルサインオンモジュール700およびHTTPサーバモジュール710をアプリケーションプログラムとして備える。HTTPサーバモジュール710はHTTPサーバモジュール610と同様の機能を持つ。シングルサインオンモジュール700は、HTTPサーバモジュール710上で、またはHTTPサーバモジュール710と連携して動作するWebアプリケーションである。シングルサインオンモジュール700は、HTTPサーバモジュール710を介して端末400からの要求を受け付け、処理し、応答する。以後、本実施形態では、端末400からHTTPサーバモジュール710を介してシングルサインオンモジュール700とHTTP通信する処理について、単に端末400からシングルサインオンモジュール700への要求および応答として記載する。また、シングルサインオンモジュール700はOpenID ConnectのOPの機能を備えており、端末400を介した認可サーバ200からのOpenID Connectに関するリクエストを処理し、応答する機能を備える。   The single sign-on server 300 includes a single sign-on module 700 and an HTTP server module 710 as application programs. The HTTP server module 710 has the same function as the HTTP server module 610. The single sign-on module 700 is a Web application that operates on the HTTP server module 710 or in cooperation with the HTTP server module 710. The single sign-on module 700 accepts a request from the terminal 400 via the HTTP server module 710, processes it, and responds. Hereinafter, in the present embodiment, the process of performing HTTP communication with the single sign-on module 700 from the terminal 400 via the HTTP server module 710 is simply described as a request and response from the terminal 400 to the single sign-on module 700. The single sign-on module 700 has an OpenID Connect OP function, and has a function of processing and responding to an OpenID Connect request from the authorization server 200 via the terminal 400.

端末400は、認証モジュール810、Webブラウザ820、およびアプリケーションモジュール800をアプリケーションプログラムとして備える。認証モジュール810は、端末400にて端末利用者を認証するための機能を備える。認証モジュール810が不図示の認証サーバと通信することで端末利用者を認証するよう構成する事もできる。本実施形態では、認証モジュール810は端末内で管理している端末ユーザ情報を用いて認証する。アプリケーションモジュール800は、端末400で動作するアプリケーションプログラムである。アプリケーションモジュール800は、後述する処理を行う事で、端末への認証を元に、認可モジュール600へのシングルサインオンを実現する。   The terminal 400 includes an authentication module 810, a web browser 820, and an application module 800 as application programs. The authentication module 810 has a function for authenticating a terminal user at the terminal 400. The authentication module 810 can also be configured to authenticate the terminal user by communicating with an authentication server (not shown). In this embodiment, the authentication module 810 performs authentication using terminal user information managed in the terminal. The application module 800 is an application program that runs on the terminal 400. The application module 800 realizes single sign-on to the authorization module 600 based on authentication to the terminal by performing processing described later.

Webブラウザ820は、端末400がWWWを利用するためのユーザエージェントである。また、アプリケーションモジュール800は、自身を証明するためのX.509形式の証明書およびその秘密鍵を保持している。そして、後述のHTTPサーバモジュール610との通信確立時に利用する事で、HTTPサーバモジュール610はアプリケーションモジュール800からの要求である事を証明する事ができる。   The web browser 820 is a user agent for the terminal 400 to use the WWW. In addition, the application module 800 has an X.X. It holds a 509 format certificate and its private key. The HTTP server module 610 can prove that it is a request from the application module 800 by using it when establishing communication with the HTTP server module 610 described later.

図4を用いて、第一の設定である、端末の管理者が認可モジュール600にシングルサインオンをするための設定を説明する。管理者は、端末400が備えるWebブラウザ820を用いて認可モジュール600のシングルサインオン設定画面にアクセスする。認可モジュール600はユーザが認証済みかどうかを検証し、未認証である場合はログイン画面を応答する。ユーザが認証済みかどうかを検証する方法としては、一般的には、認可モジュール600は、Webブラウザ820からリクエストされるHTTPヘッダーのCookie情報に認証トークンが含まれているかを確認する。そして、認可モジュール600は、認証トークンが含まれている場合は認証トークンが有効か、を検証する事によって行われる。   With reference to FIG. 4, the first setting, which is a setting for single sign-on to the authorization module 600 by the terminal administrator, will be described. The administrator accesses the single sign-on setting screen of the authorization module 600 using the Web browser 820 included in the terminal 400. The authorization module 600 verifies whether or not the user has been authenticated, and if not authenticated, responds with a login screen. As a method of verifying whether or not the user has been authenticated, generally, the authorization module 600 confirms whether or not an authentication token is included in the Cookie information of the HTTP header requested from the Web browser 820. Then, the authorization module 600 is performed by verifying whether the authentication token is valid when the authentication token is included.

図4(A)は、ログイン画面の例である。ログイン画面2000は、ユーザIDを入力するためのユーザID入力領域2001、パスワードを入力するためのパスワード入力領域2002、および入力したユーザID、パスワードを用いてユーザ認証を実行するためのログインボタン2003を備える。端末の管理者は、応答されたログイン画面2000にて、認可モジュール600へユーザ認証するためのユーザID、パスワードを入力し、ログインボタン2003を押下する。Webブラウザ820は、ログインボタン2003の押下を検知すると、ログイン要求として、ユーザID入力領域2001、パスワード入力領域2002に入力されている情報を認可モジュール600に送信する。認可モジュールのユーザテーブルに、認可モジュール600が保存しているユーザ情報の例を表1に示す。

Figure 2016009299
ログイン要求を受けた認可モジュール600は、受信したユーザID、パスワードの組が認可モジュールユーザテーブルに登録されている情報と合致するかを検証する事で、ユーザを認証する。例えば、認可モジュール600は、ユーザIDが「admin@xx.com」で、パスワードが「admin」であった場合、ユーザID「admin@xx.com」のユーザとして認証する。そして、認証された事を示す認証トークンを生成し、Cookieに設定し、認可モジュール600のシングルサインオン設定画面にリダイレクトされるよう応答する。認証トークンは、ユーザID、またはユーザをユニークに特定するためのUUIDと紐づけられ、認可モジュール600に保存される。ログイン要求の情報が合致しない場合は、不図示のログインエラー画面を応答する。 FIG. 4A is an example of a login screen. The login screen 2000 includes a user ID input area 2001 for inputting a user ID, a password input area 2002 for inputting a password, and a login button 2003 for executing user authentication using the input user ID and password. Prepare. The administrator of the terminal inputs a user ID and password for user authentication to the authorization module 600 on the response login screen 2000 and presses the login button 2003. When detecting that the login button 2003 is pressed, the Web browser 820 transmits information input in the user ID input area 2001 and the password input area 2002 to the authorization module 600 as a login request. Table 1 shows an example of user information stored in the authorization module 600 in the authorization module user table.
Figure 2016009299
Upon receiving the login request, the authorization module 600 authenticates the user by verifying whether the received combination of user ID and password matches the information registered in the authorization module user table. For example, when the user ID is “[email protected]” and the password is “admin”, the authorization module 600 authenticates the user with the user ID “[email protected]”. Then, an authentication token indicating that it has been authenticated is generated, set in Cookie, and responds to be redirected to the single sign-on setting screen of the authorization module 600. The authentication token is associated with the user ID or the UUID for uniquely identifying the user, and is stored in the authorization module 600. If the login request information does not match, a login error screen (not shown) is returned.

なお、本実施形態では、ユーザを認証するための情報として、ユーザIDとパスワードの組による手段を用いるが、この手段に限定するわけではない。例えば、SSL/TLSのクライアント証明書を利用する方法や、複数の認証情報を入力する事による多要素認証といった手段を用いる事も可能である。   In the present embodiment, as information for authenticating a user, means based on a combination of a user ID and a password is used. However, the present invention is not limited to this means. For example, it is possible to use a method such as a method using an SSL / TLS client certificate or multi-factor authentication by inputting a plurality of authentication information.

Webブラウザ820は、Cookieに設定された認証トークンを用いて、認可モジュール600のシングルサインオン設定画面へアクセスする。認可モジュール600は認証トークンを用いて、ユーザが認証済みかどうかを検証し、認証済みである場合は、認証トークンに紐づけられた情報からユーザを特定する。そして、認可モジュール600は、特定したユーザの権限情報が「管理者」である場合に、シングルサインオン設定画面を応答する。   The Web browser 820 accesses the single sign-on setting screen of the authorization module 600 using the authentication token set in Cookie. The authorization module 600 uses the authentication token to verify whether or not the user has been authenticated. If the user has already been authenticated, the authorization module 600 identifies the user from information associated with the authentication token. Then, the authorization module 600 responds with a single sign-on setting screen when the authority information of the identified user is “administrator”.

例えば、認証トークンに紐づけられた情報が「UUID:10000000」であった場合は、認可モジュールのユーザテーブルのUUID列を検索し、一致する「行1」のユーザである事を特定する。行1のユーザの権限情報列を参照すると「管理者」である事がわかる。認可モジュール600は、特定したユーザの権限情報が「管理者」ではなかった場合は、不図示の権限エラー画面をWebブラウザ820に応答する。   For example, if the information associated with the authentication token is “UUID: 10000000”, the UUID column in the user table of the authorization module is searched to identify that it is a matching “row 1” user. If the authority information column of the user in row 1 is referred to, it is understood that the user is an “administrator”. If the authority information of the identified user is not “administrator”, the authorization module 600 responds to the Web browser 820 with an authority error screen (not shown).

図4(B)は、シングルサインオン設定画面の例である。このシングルサインオン設定画面に対するユーザ操作により、テナント毎に複数の端末装置が紐付けて認可サーバに登録されることとなる。シングルサインオン設定画面2100は、シングルサインオン設定を有効化するための有効ボタン2101、無効化するための無効ボタン2102を備える。また、シングルサインオン設定が有効な場合は、ユーザマッピングを設定するための機能である、マッピング情報のダウンロードボタン2103、アップロードボタン2105、およびアップロードするマッピング情報を参照するための参照ボタン2104を備える。それぞれのボタン押下時の処理について説明する。   FIG. 4B is an example of a single sign-on setting screen. By a user operation on the single sign-on setting screen, a plurality of terminal devices are associated with each tenant and registered in the authorization server. The single sign-on setting screen 2100 includes a valid button 2101 for validating the single sign-on setting and an invalid button 2102 for invalidating. Further, when the single sign-on setting is valid, a mapping information download button 2103, an upload button 2105, and a reference button 2104 for referring to the mapping information to be uploaded, which are functions for setting user mapping, are provided. Processing when each button is pressed will be described.

シングルサインオン設定画面2100にて、端末の管理者が有効ボタン2101を押下すると、認可モジュール600へシングルサインオン有効化要求を通知する。認可モジュール600は、シングルサインオン有効化要求を受け付けると、シングルサインオンモジュール700へ、OPの有効化要求を行う。その際、認可モジュール600は、認証トークンから特定されたユーザのテナントIDを通知する。例えば、特定されたユーザが、認可モジュールのユーザテーブルの「admin@xx.com」であった場合は、テナントIDとして「100AA」が通知される。   When the terminal administrator presses the valid button 2101 on the single sign-on setting screen 2100, the authorization module 600 is notified of a single sign-on validation request. Upon receiving the single sign-on validation request, the authorization module 600 makes an OP validation request to the single sign-on module 700. At that time, the authorization module 600 notifies the tenant ID of the user specified from the authentication token. For example, when the specified user is “[email protected]” in the user table of the authorization module, “100AA” is notified as the tenant ID.

シングルサインオンモジュール700は、OPの有効化要求を受けると、OPを識別し、かつOPの認証要求URIを示すためのOPIDを生成し、X.509形式の証明書の鍵ペアを生成し、OPテーブルに情報を格納する。シングルサインオンモジュールのOPテーブルに、シングルサインオンモジュール700が保存するOP情報の例を表2に示す。なお、X.509形式の証明書については、ファイルの参照先として格納する例を示しているが、バイナリデータとして直接データを格納しても良い。なお、データ未格納なカラムについては後述する。

Figure 2016009299
シングルサインオンモジュール700は、生成したOPIDとX.509形式の証明書から公開鍵のみを抽出し、認可モジュール600へ応答する。応答を受けた認可モジュール600は、テナントIDと紐づけて、OPID、公開鍵をRPテーブルに保存する。認可モジュールのRPテーブルの例を表3に示す。
Figure 2016009299
認可モジュール600は、保存時にMAPIDを生成し、認可モジュールのユーザテーブル(表1)で保存されている、当該テナントIDの全ユーザ数分のマッピングデータを生成し、格納する。生成される認可モジュールのユーザマッピングテーブルの例を表4に示す。
Figure 2016009299
認可モジュール600は、端末の管理者の認証トークンから特定したテナントID「100AA」を用いて、テナントID「100AA」に紐付けられた全てのユーザID、およびUUIDを取得し、それぞれ格納する。その際、端末UUIDは未格納の状態となる。認可モジュール600は、ユーザマッピングテーブルを格納後、シングルサインオン有効化要求を終了し、シングルサインオン設定画面2100を応答する。 Upon receiving the OP validation request, the single sign-on module 700 generates an OPID for identifying the OP and indicating the OP authentication request URI. Generate a 509 certificate key pair and store the information in the OP table. Table 2 shows an example of OP information stored by the single sign-on module 700 in the OP table of the single sign-on module. X. An example of storing a certificate in 509 format as a file reference destination is shown, but data may be directly stored as binary data. A column in which no data is stored will be described later.
Figure 2016009299
The single sign-on module 700 generates the generated OPID and X.X. Only the public key is extracted from the certificate in the 509 format and responds to the authorization module 600. Upon receiving the response, the authorization module 600 stores the OPID and the public key in the RP table in association with the tenant ID. An example of the RP table of the authorization module is shown in Table 3.
Figure 2016009299
The authorization module 600 generates a MAPID at the time of saving, and generates and stores mapping data for the total number of users of the tenant ID stored in the authorization module user table (Table 1). Table 4 shows an example of the user mapping table of the generated authorization module.
Figure 2016009299
The authorization module 600 acquires all the user IDs and UUIDs associated with the tenant ID “100AA” using the tenant ID “100AA” specified from the authentication token of the terminal administrator, and stores them. At that time, the terminal UUID is not stored. After storing the user mapping table, the authorization module 600 ends the single sign-on validation request and responds with the single sign-on setting screen 2100.

次に、シングルサインオン設定画面2100にて、端末の管理者がダウンロードボタン2103を押下すると、Webブラウザ820は認可モジュール600へユーザマッピングデータのダウンロード要求を通知する。認可モジュール600は、ユーザマッピングデータのダウンロード要求を受け付けると、ユーザマッピングテーブルのユーザID、UUID、端末UUIDのユーザマッピング表を生成し、応答する。このユーザマッピング表は、例えば、CSV形式やXML形式のテキストファイルであり、ユーザが確認し編集可能な形式であれば良い。端末の管理者は、ダウンロードしたユーザマッピング表の内、未入力である端末UUIDにパラメーターを入力する。これは、端末400において、ユーザを一意に認識するためのIDである。ユーザマッピング表の例を表5に示す。

Figure 2016009299
端末の管理者は、シングルサインオン設定画面2100にて、参照ボタン2104を押下し、編集したユーザマッピング表を選択する。そして、端末の管理者がアップロードボタン2105を押下すると、認可モジュール600へユーザマッピング要求が通知される。その際、参照ボタン2104にて選択したユーザマッピング表が通知される。 Next, when the administrator of the terminal presses the download button 2103 on the single sign-on setting screen 2100, the Web browser 820 notifies the authorization module 600 of a user mapping data download request. Upon receiving a user mapping data download request, the authorization module 600 generates a user mapping table of user ID, UUID, and terminal UUID of the user mapping table and responds. This user mapping table is, for example, a text file in CSV format or XML format, and may be in a format that can be confirmed and edited by the user. The administrator of the terminal inputs parameters to the terminal UUID that has not been entered in the downloaded user mapping table. This is an ID for uniquely identifying the user in the terminal 400. An example of the user mapping table is shown in Table 5.
Figure 2016009299
The administrator of the terminal presses the reference button 2104 on the single sign-on setting screen 2100 and selects the edited user mapping table. When the administrator of the terminal presses the upload button 2105, a user mapping request is notified to the authorization module 600. At that time, the user mapping table selected by the reference button 2104 is notified.

ユーザマッピング要求を受け付けた認可モジュール600は、通知内容を認可モジュールのユーザマッピングテーブルに格納する。ユーザマッピング表の情報を反映した認可モジュールのユーザマッピングテーブルを表6に示す。

Figure 2016009299
以上が、第一の設定である、端末の管理者が認可モジュール600にて行うシングルサインオンをするための設定である。 Upon receiving the user mapping request, the authorization module 600 stores the notification content in the user mapping table of the authorization module. Table 6 shows the user mapping table of the authorization module reflecting the information of the user mapping table.
Figure 2016009299
The above is the first setting for single sign-on performed by the terminal administrator using the authorization module 600.

図5を用いて、第二の設定である、端末400を認可モジュール600に登録する処理(以後、クライアント登録処理と呼ぶ)に関するシーケンスを説明する。本シーケンスはユーザが端末400において、認可モジュール600に未登録であるアプリケーションモジュール800を利用する際のフローを示している。ユーザが端末400のアプリケーションモジュール800利用時に、認可モジュール600に未登録である、つまり後述するクライアントID、クライアントシークレットが未取得である場合に開始されるシーケンスである。   With reference to FIG. 5, a sequence relating to a second setting process for registering the terminal 400 in the authorization module 600 (hereinafter referred to as client registration process) will be described. This sequence shows a flow when the user uses the application module 800 that is not registered in the authorization module 600 in the terminal 400. This sequence is started when the user is not registered in the authorization module 600 when using the application module 800 of the terminal 400, that is, when a client ID and a client secret described later have not been acquired.

アプリケーションモジュール800は、自身が未登録であった場合、S11にて、認可モジュール600に対して、クライアント登録要求を行う。なお、アプリケーションモジュール800がクライアント登録要求を行うきっかけとして、本実施形態では、端末400にて、ユーザが当該アプリケーションモジュール800をインストールし、初めて起動したタイミングとして説明する。なお、他のタイミングとして、ユーザがアプリケーションモジュール800の機能を選択し、リソースサーバであるシングルサインオンサーバ300へのリソース要求が発生するタイミングが考えられる。また、アプリケーションモジュール800が明示的に開始する操作を備え、ユーザが端末400にて当該操作をしたタイミングが考えられる。   If the application module 800 is not registered, the application module 800 issues a client registration request to the authorization module 600 in S11. In the present embodiment, the timing when the user installs the application module 800 at the terminal 400 and activates it for the first time will be described as an opportunity for the application module 800 to make a client registration request. As another timing, a timing when a user selects a function of the application module 800 and a resource request to the single sign-on server 300 that is a resource server is generated can be considered. In addition, an operation that the application module 800 explicitly starts and a timing at which the user performs the operation on the terminal 400 can be considered.

なお、クライアント登録要求は、クライアント名や、リダイレクトURI等の、OAuthのAuthorization Code Grantを利用するための情報を含む。また、その他の情報として、クライアントを説明するための文字列や、説明が記載されるサイトのURI、等の付属情報を含むよう構成する事もできる。   The client registration request includes information for using the OAuth's Authorization Code Grant, such as a client name and a redirect URI. Further, as other information, it can be configured to include attached information such as a character string for explaining the client and a URI of a site where the explanation is described.

クライアント登録要求は、認可サーバ200のHTTPサーバモジュール610にて、クライアント認証が必要になるよう構成されているため、HTTPサーバモジュール610による、クライアント認証の処理が実施される。アプリケーションモジュール800からのクライアント登録要求を受け付けたHTTPサーバモジュール610は、SSL/TLS通信のネゴシエーションを開始する。HTTPサーバモジュール610は、アプリケーションモジュール800に対してクライアント認証を要求する。S12にて、HTTPサーバモジュール610は、不図示の証明書ストアにて設定されている証明書を用いて取得したクライアント認証情報を検証し、アプリケーションモジュール800をデバイス登録の要求元として認証する。   The client registration request is configured such that client authentication is required by the HTTP server module 610 of the authorization server 200, and therefore, client authentication processing by the HTTP server module 610 is performed. The HTTP server module 610 that has received the client registration request from the application module 800 starts negotiation of SSL / TLS communication. The HTTP server module 610 requests client authentication from the application module 800. In S12, the HTTP server module 610 verifies the client authentication information acquired using a certificate set in a certificate store (not shown), and authenticates the application module 800 as a device registration request source.

なお、本実施の形態では、クライアントの認証方法として、SSL/TLSのクライアント証明書による認証方式を用いるが、例えば、Basic認証やDigest認証といった、IDおよびパスワードを用いる方式等が用いられてよい。また、これら主体を認証する手段を経て、認証された主体に対してクライアントを登録するための認可トークンを発行する手段を設け、当該認可トークンを検証する事によってクライアント登録を受け付けるよう構成する事も可能である。   In this embodiment, an authentication method using an SSL / TLS client certificate is used as a client authentication method. For example, a method using an ID and a password, such as Basic authentication or Digest authentication, may be used. It is also possible to provide a means for issuing an authorization token for registering the client to the authenticated principal through the means for authenticating the principal, and to accept the client registration by verifying the authorization token. Is possible.

S13にて、HTTPサーバモジュール610は、アプリケーションモジュール800を認証した後に、認可モジュール600に対して、アプリケーションモジュール800から受信したクライアント登録要求を通知する。その際、認証したアプリケーションモジュール800を識別するためのクライアント認証情報も通知する。   In S13, after authenticating the application module 800, the HTTP server module 610 notifies the authorization module 600 of the client registration request received from the application module 800. At this time, client authentication information for identifying the authenticated application module 800 is also notified.

S14にて、認可モジュール600は、HTTPサーバモジュール610から通知されたクライアント認証情報を取得する。認可モジュール600にて管理されているクライアント認証情報テーブルの例を表7に示す。

Figure 2016009299
例えば、認可モジュール600が取得したクライアント認証情報が、「Issuer=xx.com, Subject=dev.xx.com」だった場合、クライアント登録する際の権限は「SSO可」となる。また、未登録だった場合は、認証エラーとなり、認可モジュール600はアプリケーションモジュール800に認証エラーを応答する。 In S14, authorization module 600 acquires the client authentication information notified from HTTP server module 610. An example of the client authentication information table managed by the authorization module 600 is shown in Table 7.
Figure 2016009299
For example, if the client authentication information acquired by the authorization module 600 is “Issuer = xx.com, Subject = dev.xx.com”, the authority at the time of client registration is “SSO allowed”. If it is not registered, an authentication error occurs, and the authorization module 600 returns an authentication error to the application module 800.

S15にて、認可モジュール600は、クライアントID、およびクライアントを認証するための秘匿情報であるシークレットを発行し、クライアント登録要求にて取得した情報と合わせてデータを格納する。認可モジュール600が格納する、認可モジュールのクライアントテーブルの例を表8に示す。

Figure 2016009299
上記登録が完了した後に、S16にて認可モジュール600は、発行したクライアントIDとシークレットを、アプリケーションモジュール800に応答する。アプリケーションモジュール800は、取得したクライアントIDおよびシークレットを保存する。その際、アプリケーションモジュール800は、認可モジュール600へ認可要求を行うためのURIである認可URIを格納する。この認可URIは、クライアント登録の応答として認可モジュール600へ応答するよう構成する事もできるし、アプリケーションモジュール800が設定として保持しておくこともできる。アプリケーションモジュールのクライアントテーブルの例を表9に示す。
Figure 2016009299
以上が、第二の設定であるクライアント登録処理である。このシーケンスによって、端末400が認可モジュール600に登録される。 In S15, authorization module 600 issues a client ID and secret, which is confidential information for authenticating the client, and stores the data together with the information acquired in the client registration request. Table 8 shows an example of an authorization module client table stored in the authorization module 600.
Figure 2016009299
After the registration is completed, the authorization module 600 returns the issued client ID and secret to the application module 800 in S16. The application module 800 stores the acquired client ID and secret. At that time, the application module 800 stores an authorization URI that is a URI for making an authorization request to the authorization module 600. This authorization URI can be configured to respond to the authorization module 600 as a response to client registration, or can be held by the application module 800 as a setting. An example of the application module client table is shown in Table 9.
Figure 2016009299
The above is the client registration process which is the second setting. By this sequence, the terminal 400 is registered in the authorization module 600.

図6および図7を用いて、第三の設定である、端末の管理者が端末400からシングルサインオンモジュール700を利用して、認可モジュール600とシングルサインオンする事を許可する処理のシーケンスを説明する。   6 and 7, a sequence of processing for allowing the terminal administrator to perform single sign-on with the authorization module 600 using the single sign-on module 700 from the terminal 400 is the third setting. explain.

S21にて、端末の管理者は、端末400にてログイン操作を行う。このログイン操作は、端末400が備える認証モジュール810が提供する認証手段によって行われる。本実施形態の特徴として、この認証手段はシングルサインオンシステムと関係する事なく選択する事ができる。認証手段としては、例えば、ユーザID、パスワードの組み合わせを検証する手段、指紋等の生体情報を利用する認証手段、非接触型のICカードを利用する手段、さらには、複数の認証手段を組み合わせる多要素認証手段等が考えられる。また、認証モジュール810が、不図示の認証サーバと通信することで端末利用者を認証するよう構成する事もできる。本実施形態では、ユーザID、パスワードの組み合わせを検証する手段を認証手段として説明する。本実施の形態における認証モジュールのユーザテーブルの例を表10に示す。

Figure 2016009299
認証モジュールのユーザテーブルにおいて、ユーザID、パスワードの組にてユーザ認証が行われる。また、UUIDは端末400のユーザを一意に識別するための情報である。このUUIDが、前述の端末の管理者によるシングルサインオン設定画面2100にてアップロードしたユーザマッピング表の端末UUIDに記載した情報と対応している。 In S <b> 21, the terminal administrator performs a login operation on terminal 400. This login operation is performed by an authentication unit provided by the authentication module 810 provided in the terminal 400. As a feature of the present embodiment, this authentication means can be selected regardless of the single sign-on system. As the authentication means, for example, a means for verifying a combination of a user ID and a password, an authentication means using biometric information such as a fingerprint, a means using a non-contact type IC card, and a combination of a plurality of authentication means. Factor authentication means can be considered. Further, the authentication module 810 can be configured to authenticate a terminal user by communicating with an unillustrated authentication server. In this embodiment, a means for verifying a combination of a user ID and a password will be described as an authentication means. Table 10 shows an example of the user table of the authentication module in the present embodiment.
Figure 2016009299
In the user table of the authentication module, user authentication is performed with a set of user ID and password. The UUID is information for uniquely identifying the user of the terminal 400. This UUID corresponds to the information described in the terminal UUID of the user mapping table uploaded on the single sign-on setting screen 2100 by the terminal administrator.

S22にて、認証モジュール810はユーザを認証する。例えば、ユーザIDが「admin@yy.device.com」で、パスワードが「admin」であった場合、ユーザID「admin@yy.device.com」のユーザとして認証する。S23にて、認証モジュール810は認証したユーザの認証情報を生成し保存する。この認証情報は、端末の管理者が不図示のログアウト操作を実施するか、設定された時刻が経過するまで有効な状態で保存される。認証情報には、認証したユーザのユーザID、UUID、および権限情報が格納されている。なお、認証情報としては、各情報を直接格納するのではなく、ユーザID、UUID、および権限情報とが参照可能に紐づけられたトークンでもよい。   In S22, authentication module 810 authenticates the user. For example, when the user ID is “[email protected]” and the password is “admin”, the user ID “[email protected]” is authenticated. In S23, authentication module 810 generates and stores authentication information of the authenticated user. This authentication information is stored in a valid state until the administrator of the terminal performs a logout operation (not shown) or until a set time elapses. The authentication information stores the user ID, UUID, and authority information of the authenticated user. Note that the authentication information may not be stored directly, but may be a token in which the user ID, UUID, and authority information are linked so that they can be referred to.

端末の管理者は、認証モジュール810での認証を受けたのちに、S24、S25にて、Webブラウザ820を用いてアプリケーションモジュール800にアクセスする。なお、アプリケーションモジュール800へのアクセスを開始するきっかけとしては、アプリケーションモジュール800へアクセスするためのブックマークが保存され、そのブックマークを選択した場合が考えられる。また、アプリケーションモジュール800が明示的に開始するための操作、および画面を備え、端末の管理者が、端末400にて当該操作をしたタイミングが考えられる。   After receiving authentication by the authentication module 810, the terminal administrator accesses the application module 800 using the Web browser 820 in S24 and S25. As a chance to start access to the application module 800, a case where a bookmark for accessing the application module 800 is saved and the bookmark is selected can be considered. In addition, an operation for explicitly starting the application module 800 and a screen are provided, and a timing at which the terminal administrator performs the operation on the terminal 400 is conceivable.

S26にてアプリケーションモジュール800は、Webブラウザ820に対して操作画面を応答する。図8(A)はアプリケーションモジュール800が応答する操作画面の例である。操作画面2200は、端末の管理者が認証連携を開始するための、認証連携ボタン2201と、後述するユーザが認可連携を開始するための認可連携ボタン2202から構成される。なお、本画面を応答する際に、アプリケーションモジュール800は、認証モジュール810から認証情報を取得し、権限情報が「管理者」の場合にのみ認証連携ボタン2201を表示するよう構成する事ができる。   In step S26, the application module 800 returns an operation screen to the web browser 820. FIG. 8A shows an example of an operation screen to which the application module 800 responds. The operation screen 2200 includes an authentication cooperation button 2201 for the terminal administrator to start authentication cooperation, and an authorization cooperation button 2202 for the user described later to start authorization cooperation. When responding to this screen, the application module 800 can be configured to acquire authentication information from the authentication module 810 and display the authentication cooperation button 2201 only when the authority information is “administrator”.

S27にて、端末の管理者はWebブラウザ820に表示された操作画面にて、認証連携ボタン2201を押下する。S28にて、Webブラウザ820は、アプリケーションモジュール800に対して認証連携要求を行う。S29にてアプリケーションモジュール800は、端末400を利用する複数のユーザがそれぞれ複数のテナントに所属する場合は、図8(B)に示す認証連携設定画面を応答するよう構成する事もできる。また、単数のテナントでの利用の場合は、図8(B)の認証連携設定画面をスキップし、S212に処理を移行する事もできる。その場合、後述の認証連携要求にて、デフォルトのOP名を利用しても良いし、操作画面2200にて通知するOP名を指定するための入力領域を備え、入力されたOP名を利用するよう構成してもよい。   In S27, the administrator of the terminal presses authentication authentication button 2201 on the operation screen displayed on Web browser 820. In S28, the Web browser 820 makes an authentication cooperation request to the application module 800. In S29, the application module 800 can be configured to respond to the authentication cooperation setting screen shown in FIG. 8B when a plurality of users using the terminal 400 belong to a plurality of tenants, respectively. Further, in the case of use by a single tenant, the authentication cooperation setting screen of FIG. 8B can be skipped, and the process can be shifted to S212. In this case, a default OP name may be used in an authentication cooperation request described later, or an input area for designating an OP name to be notified on the operation screen 2200 is provided, and the input OP name is used. You may comprise.

図8(B)は、認証連携ボタン2201の押下を受けて、アプリケーションモジュール800が応答する認証連携設定画面の例である。認証連携設定画面2300は、登録するOPのOP名を入力するためのOP名入力領域2301、OPの新規登録を開始する新規登録ボタン2302、および既存の登録済みのOPの情報を表示する登録済みOPリスト2303を備える。なお、認証連携設定画面2300は、既にOP名「組織B」、テナントID「102AA」のOPが登録済みである例を示している。   FIG. 8B is an example of an authentication collaboration setting screen to which the application module 800 responds when the authentication collaboration button 2201 is pressed. The authentication cooperation setting screen 2300 has an OP name input area 2301 for inputting an OP name of an OP to be registered, a new registration button 2302 for starting new registration of an OP, and registered information for displaying information on an existing registered OP. An OP list 2303 is provided. The authentication cooperation setting screen 2300 shows an example in which an OP with the OP name “Organization B” and the tenant ID “102AA” has already been registered.

S210にて、端末の管理者は、Webブラウザ820に表示された認証連携設定画面にてOP名を入力し、新規登録ボタン2302を押下する。ここで、OP名としては「組織A」が入力されているものとして説明する。なお、図8(B)では、既にテナントID「102AA」のOPについて登録済みの画面例を提示したが、以降の処理については、まだ未登録の状態で、初めて認証連携を実施した場合を例として説明する。   In S210, the terminal administrator inputs the OP name on the authentication cooperation setting screen displayed on Web browser 820, and presses new registration button 2302. Here, it is assumed that “organization A” is input as the OP name. In FIG. 8B, an example of a screen that has already been registered for the OP with the tenant ID “102AA” has been presented. However, the following processing is an example in which authentication linkage is performed for the first time in an unregistered state. Will be described.

S211にて、認証連携要求を受けたアプリケーションモジュール800は、認証連携処理フローを開始する。認証連携処理フローは以下のフローから構想される。一つ目は、アプリケーションモジュール800が、認可モジュール600に対してOAuth 2.0による、認可トークンを取得するフローである。二つ目は、アプリケーションモジュール800が、取得した認可トークンを用いて、シングルサインオンモジュール700に対して認証連携を要求するフローである。つまり、端末400は、認可モジュール600から取得した認可トークンを用いてシングルサインオンモジュール700との認証連携を確立する。ここで、OAuth 2.0による認可トークンを取得するフローとして、本実施形態ではOAuth 2.0に定義されているAuthorization Code Grantを用いて説明するが、フローはこれに限定されない。例えば、別の実施形態として、Implicit Grantを用いる事も可能である。   In S211, the application module 800 that has received the authentication cooperation request starts the authentication cooperation processing flow. The authentication linkage processing flow is envisioned from the following flow. The first flow is a flow in which the application module 800 acquires an authorization token from the authorization module 600 according to OAuth 2.0. The second is a flow in which the application module 800 requests authentication cooperation from the single sign-on module 700 using the acquired authorization token. That is, the terminal 400 uses the authorization token acquired from the authorization module 600 to establish authentication cooperation with the single sign-on module 700. Here, as a flow for obtaining an authorization token according to OAuth 2.0, in this embodiment, an explanation will be given using the Authentication Code Grant defined in OAuth 2.0, but the flow is not limited to this. For example, as another embodiment, it is possible to use Implicit Grant.

S212、S213にて、アプリケーションモジュール800は、Webブラウザ820を介して認可モジュール600へ認可要求を行う。この認可要求には、少なくとも、クライアント登録の結果取得したクライアントIDおよび登録したリダイレクトURI、そしてシングルサインオンモジュール700の認証連携を実施するためのリソース範囲を示すスコープを含む。認可要求を受けた認可モジュール600はユーザが認証済みかどうかを検証し、未認証である場合はS214にて、ログイン画面を応答する。S215、S216、S217にて行われる、認可モジュール600におけるユーザ認証処理については前述のとおりである。ユーザ認証処理の結果、認証トークンが生成される。   In S212 and S213, the application module 800 makes an authorization request to the authorization module 600 via the Web browser 820. This authorization request includes at least a client ID acquired as a result of client registration, a registered redirect URI, and a scope indicating a resource range for implementing authentication cooperation of the single sign-on module 700. Upon receiving the authorization request, the authorization module 600 verifies whether or not the user has been authenticated, and if unauthenticated, returns a login screen in S214. The user authentication process in the authorization module 600 performed in S215, S216, and S217 is as described above. As a result of the user authentication process, an authentication token is generated.

S218にて、認可モジュール600は、受信した認可要求のうち、クライアントIDとリダイレクトURIの組が正しいか検証する。より具体的には、認可要求に含まれるクライアントID、リダイレクトURIの組が、認可モジュールのクライアントテーブルに登録されているクライアントIDとリダイレクトURIの組が一致するか検証する。不一致の場合、認可モジュール600は不図示のエラー画面を、Webブラウザ820に応答する。一致した場合、認可モジュール600は認証トークンからユーザを特定する。特定したユーザの権限情報が「管理者」でない場合、認可モジュール600はWebブラウザ820を介してアプリケーションモジュール800に権限エラーを応答する。ユーザの権限情報が「管理者」である場合、認可モジュール600はS219にてWebブラウザ820に対して認可確認画面を応答する。   In S218, authorization module 600 verifies whether the combination of client ID and redirect URI is correct in the received authorization request. More specifically, it is verified whether the combination of the client ID and the redirect URI included in the authorization request matches the combination of the client ID and the redirect URI registered in the client table of the authorization module. If they do not match, the authorization module 600 responds to the web browser 820 with an error screen (not shown). If they match, the authorization module 600 identifies the user from the authentication token. If the authority information of the identified user is not “administrator”, the authorization module 600 returns an authority error to the application module 800 via the Web browser 820. If the user authority information is “administrator”, the authorization module 600 responds to the web browser 820 with an authorization confirmation screen in S219.

図8(C)は、Webブラウザ820に応答される認可確認画面の例である。認可確認画面2400は、後述する代理認証を実行させることを認可させるか否かを設定するための画面である。認可確認画面2400は、認可要求に含まれるクライアントIDを元に認可モジュールのクライアントテーブルから取得したクライアント名を表示する領域であるアクセス元表示領域2401を備える。また、認可要求に含まれるスコープの説明を表示する領域であるスコープ表示領域2402を備える。さらに、認可確認画面2400は、ユーザが上記情報の内容について認可操作を実行する許可ボタン2403、および拒否を実行する拒否ボタン2404を備える。ここで、ユーザが拒否ボタン2404を押下した場合は、認可モジュール600はWebブラウザ820を介してアプリケーションモジュール800に権限エラーを応答する。   FIG. 8C is an example of an authorization confirmation screen that is responded to the Web browser 820. The authorization confirmation screen 2400 is a screen for setting whether to authorize the execution of proxy authentication described later. The authorization confirmation screen 2400 includes an access source display area 2401 that is an area for displaying the client name acquired from the client table of the authorization module based on the client ID included in the authorization request. Further, a scope display area 2402 that is an area for displaying the description of the scope included in the authorization request is provided. Furthermore, the authorization confirmation screen 2400 includes a permission button 2403 for allowing the user to perform an authorization operation on the content of the information, and a rejection button 2404 for executing rejection. Here, when the user presses the reject button 2404, the authorization module 600 returns an authority error to the application module 800 via the Web browser 820.

S220にて、端末の管理者が認可確認画面2400にて、許可ボタン2403を押下、つまり認可操作を行った場合、Webブラウザ820を介し、S221にて認可モジュール600にアクセス許可が認可された事が通知される。S222にて、認可モジュール600は認可コードを発行する。具体的には、認可モジュール600はトークンIDを発行し、認可要求に含まれるスコープ、クライアントID、認証し、許可を得たユーザのUUIDを、トークンテーブルに登録する。その際、トークン種別は認可コードとし、有効期限に当該認可コードが有効である日時を登録する。認可モジュールのトークンテーブルの例を表11に示す。

Figure 2016009299
In S220, when the administrator of the terminal presses the permission button 2403 on the authorization confirmation screen 2400, that is, when an authorization operation is performed, access authorization is authorized to the authorization module 600 in S221 via the Web browser 820. Will be notified. In S222, authorization module 600 issues an authorization code. Specifically, the authorization module 600 issues a token ID, registers the scope, client ID, and authentication included in the authorization request, and registers the UUID of the authorized user in the token table. At that time, the token type is an authorization code, and the date and time when the authorization code is valid is registered in the expiration date. An example of the token table of the authorization module is shown in Table 11.
Figure 2016009299

図7のS223、S224にて、認可モジュール600は、発行した認可コードのトークンIDを付与してWebブラウザ820を介し、アプリケーションモジュール800に認可を応答する。具体的には、認可要求時に取得したリダイレクトURIに対してアプリケーションモジュール800にリダイレクトするようWebブラウザ820に指示する。   In S223 and S224 of FIG. 7, the authorization module 600 gives a token ID of the issued authorization code and responds authorization to the application module 800 via the Web browser 820. Specifically, the web browser 820 is instructed to redirect to the application module 800 with respect to the redirect URI acquired at the time of the authorization request.

S225にて、アプリケーションモジュール800は、認可モジュール600に対して認可トークンを要求する。この認可トークン要求には、少なくとも、取得した認可コード、保存しているクライアントID、シークレット、および認可要求時に送信したリダイレクトURIが含まれる。   In S225, the application module 800 requests the authorization module 600 for an authorization token. This authorization token request includes at least the acquired authorization code, the stored client ID, the secret, and the redirect URI transmitted at the time of the authorization request.

S226にて、認可モジュール600は取得したクライアントID、シークレットの組を用いてクライアントを認証する。具体的には、認可モジュールのクライアントテーブルに保存されたクライアントID、シークレットの組と一致するかを検証する。認可モジュール600は、クライアント認証に失敗した場合はアプリケーションモジュール800に認証エラーを応答する。認可モジュール600は、クライアント認証に成功した場合、認証したクライアントIDによって特定されるクライアントの権限情報を確認する。   In S226, authorization module 600 authenticates the client using the acquired client ID and secret pair. Specifically, it is verified whether the set of the client ID and secret stored in the client table of the authorization module matches. The authorization module 600 returns an authentication error to the application module 800 when the client authentication fails. When the client authentication is successful, the authorization module 600 confirms the authority information of the client specified by the authenticated client ID.

クライアントの権限情報が「SSO可」でない場合、認可モジュール600は、アプリケーションモジュール800に権限エラーを応答する。「SSO可」であった場合、認可モジュール600は、取得した認可コードを検証する。認可コードの検証としては、取得した認可コードのトークンIDが認可モジュールのトークンテーブルに登録されているか、登録されている場合は、有効期限の範囲内かを検証する。   When the authority information of the client is not “SSO allowed”, the authorization module 600 responds to the application module 800 with an authority error. If “SSO allowed”, the authorization module 600 verifies the obtained authorization code. As verification of the authorization code, it is verified whether the token ID of the acquired authorization code is registered in the token table of the authorization module or, if registered, within the valid period.

さらに、認可モジュール600は、認可トークン要求にて取得したリダイレクトURIが、トークンIDに紐づくクライアントIDのリダイレクトURIと一致するかを検証する。認可コード検証の結果が無効であった場合、認可モジュール600はアプリケーションモジュール800にトークン不正エラーを応答する。そして、認可コード検証の結果が有効であった場合、S227にて認可モジュール600は認可トークンを発行する。具体的には、認可モジュール600はトークンIDを発行し、認可コードに紐づくスコープ、ユーザのUUID、認証したクライアントIDを認可モジュールのトークンテーブルに登録する。その際、トークン種別は認可トークンとし、有効期限に当該認可トークンが有効である日時を登録する。また、検証した認可コードを削除するか、有効期限を過去の日時に更新する事で無効化する。認可モジュールのトークンテーブルの例を表12に示す。

Figure 2016009299
Furthermore, the authorization module 600 verifies whether the redirect URI acquired in the authorization token request matches the redirect URI of the client ID associated with the token ID. When the result of the authorization code verification is invalid, the authorization module 600 responds to the application module 800 with a token invalid error. If the result of the authorization code verification is valid, the authorization module 600 issues an authorization token in S227. Specifically, the authorization module 600 issues a token ID, and registers the scope associated with the authorization code, the user UUID, and the authenticated client ID in the token table of the authorization module. At that time, the token type is an authorization token, and the date and time when the authorization token is valid is registered as the validity period. Also, it is invalidated by deleting the verified authorization code or updating the expiration date to a past date. Table 12 shows an example of the token table of the authorization module.
Figure 2016009299

そして、S228にて、認可モジュール600は、発行した認可トークンのトークンIDをアプリケーションモジュール800に応答する。その際、認可トークンの有効期限を応答するよう構成する事もできる。本実施形態では、認可トークンを更新するためのリフレッシュトークンを発行しない例を説明したが、認可モジュールのトークンテーブルにて、リフレッシュトークンのトークンID、および有効期限を管理するよう構成する事もできる。その際、認可モジュール600は認可トークン発行時に同時にリフレッシュトークンも発行し、認可トークンの応答時に発行したリフレッシュトークンのトークンIDも含めて応答するよう構成する事もできる。   In S228, the authorization module 600 responds to the application module 800 with the token ID of the issued authorization token. At that time, it can be configured to respond with the expiration date of the authorization token. In this embodiment, an example in which a refresh token for updating an authorization token is not issued has been described. However, the token ID of the refresh token and the expiration date can be managed in the token table of the authorization module. At this time, the authorization module 600 can also be configured to issue a refresh token at the same time when the authorization token is issued, and to respond including the token ID of the refresh token issued when the authorization token is responded.

S229にて、認可トークンを取得したアプリケーションモジュール800は、取得した認可トークンを用いてシングルサインオンモジュール700に認証連携要求を行う。認証連携要求には、少なくとも、認可トークンのトークンIDとアプリケーションモジュールの端末認証要求URIを含む。端末認証要求URIについては後述するが、例えば、「https://local/auth」が通知された場合として説明する。S230にてシングルサインオンモジュール700は認証連携要求に含まれる認可トークンのトークンIDの検証を認可モジュール600に要求する。   In S229, the application module 800 that has acquired the authorization token makes an authentication cooperation request to the single sign-on module 700 using the acquired authorization token. The authentication cooperation request includes at least the token ID of the authorization token and the terminal authentication request URI of the application module. Although the terminal authentication request URI will be described later, for example, a case where “https: // local / auth” is notified will be described. In S230, the single sign-on module 700 requests the authorization module 600 to verify the token ID of the authorization token included in the authentication cooperation request.

S231にて、認可モジュール600は、検証要求された認可トークンのトークンIDを検証し、検証結果としてトークンに紐づく情報を取得する。具体的には、認可モジュールのトークンテーブルに登録されているか、かつ有効期限内かを検証し、結果が「利用不可」であれば、シングルサインオンモジュール700に検証エラー応答を返す。検証の結果が「利用可」であれば、認可モジュール600は特定された認可トークンに紐づく情報を認可トークン情報として取得する。この認可トークン情報としては、少なくとも、認可モジュールのトークンテーブルのクライアントID、UUID、およびUUIDから特定される認可モジュールのユーザテーブルのユーザID、テナントIDを含む。   In S231, the authorization module 600 verifies the token ID of the authorization token requested to be verified, and acquires information associated with the token as a verification result. Specifically, it is verified whether it is registered in the token table of the authorization module and within the expiration date. If the result is “unusable”, a verification error response is returned to the single sign-on module 700. If the verification result is “available”, the authorization module 600 acquires information associated with the identified authorization token as authorization token information. The authorization token information includes at least the client ID and UUID of the authorization module token table, and the user ID and tenant ID of the authorization module user table identified from the UUID.

なお、認可トークンの検証要求時にスコープを指定する事も出来る。その場合、認可モジュール600は、該認可トークンのトークンIDで特定される認可トークンのスコープに、指定のスコープが含まれているか否かを検証する。   Note that the scope can also be specified when requesting authorization token verification. In that case, the authorization module 600 verifies whether or not the specified scope is included in the scope of the authorization token specified by the token ID of the authorization token.

S232にて、認可トークンの検証結果が「利用可」であった場合、認可モジュール600は、認可トークン情報を認可トークン検証応答としてシングルサインオンモジュール700に応答する。S233にて、シングルサインオンモジュール700は、認証連携設定を行う。具体的には、認可トークン情報から得られたテナントID「100AA」を参照可能な形式で新たなテナントIDを発行し、OPテーブルに追加する。   If the verification result of the authorization token is “available” in S232, the authorization module 600 responds to the single sign-on module 700 with the authorization token information as an authorization token verification response. In S233, the single sign-on module 700 performs authentication cooperation setting. Specifically, a new tenant ID is issued in a format in which the tenant ID “100AA” obtained from the authorization token information can be referred to and added to the OP table.

本実施形態では、通知されたテナントIDが「100AA」だった場合に、「100AAR1」というテナントIDを発行するものとして説明する。しかし、テナントIDは発行せずに別途OPテーブルにカラムを追加し、その値にて参照可能なように構成する事もできる。そして、シングルサインオンモジュール700は、取得した端末認証要求URI「https://local/auth」をOPIDとしてOPテーブルに追加する。さらに、X.509の秘密鍵と公開鍵の鍵ペアを生成し、シングルサインオンモジュールのOPテーブルに追加する。シングルサインオンモジュールのOPテーブルに当該データを追加した例を表13に提示する。

Figure 2016009299
In the present embodiment, it is assumed that when the notified tenant ID is “100AA”, the tenant ID “100AAR1” is issued. However, it is also possible to add a column to the OP table separately without issuing the tenant ID, and to be able to refer to the value. Then, the single sign-on module 700 adds the acquired terminal authentication request URI “https: // local / auth” as an OPID to the OP table. Furthermore, X. A key pair of a private key and a public key 509 is generated and added to the OP table of the single sign-on module. An example of adding the data to the OP table of the single sign-on module is presented in Table 13.
Figure 2016009299

次に、シングルサインオンモジュール700は、RPを登録するためのURIであるRP登録URI「https://aa.com/reg」を取得する。このRP登録URIは、予めシングルサインオンモジュール700にて設定されているURIとして説明する。そして、当該URIに対してRP登録をするためのイニシャル認可トークンを生成し、シングルサインオンモジュールの認可テーブルに登録する。その際、新規に生成したテナントID「100AAR1」と紐づけて保存する事で、当該イニシャル認可トークンを利用してRPを登録した場合、テナントID「100AAR1」に紐づいて登録する事ができる。以下にシングルサインオンモジュールのトークンテーブルの例を提示する。

Figure 2016009299
S234にて、シングルサインオンモジュール700は、認可モジュール600にOP登録要求を行う。OP登録要求では、少なくとも、生成したテナントID「100AAR1」、鍵ペア「100AAR1.p12」から抽出した公開鍵、およびイニシャル認可トークン「i_000001」を通知する。また、OP登録要求では、RP登録URI「https://aa.com/reg」、およびOPID「https://local/auth」を通知する。 Next, the single sign-on module 700 acquires an RP registration URI “https://aa.com/reg”, which is a URI for registering an RP. The RP registration URI will be described as a URI set in advance in the single sign-on module 700. Then, an initial authorization token for RP registration with respect to the URI is generated and registered in the authorization table of the single sign-on module. At this time, by storing the new tenant ID “100AAR1” in association with the newly created tenant ID “100AAR1”, when the RP is registered using the initial authorization token, the tenant ID “100AAR1” can be registered. The following is an example of the token table for the single sign-on module.
Figure 2016009299
In S234, single sign-on module 700 makes an OP registration request to authorization module 600. In the OP registration request, at least the generated tenant ID “100AAR1”, the public key extracted from the key pair “100AAR1.p12”, and the initial authorization token “i — 000001” are notified. In the OP registration request, the RP registration URI “https://aa.com/reg” and the OPID “https: // local / auth” are notified.

S235にて、認可サーバモジュール600は、取得した情報を元に、RPテーブルにデータを登録する。その際、通知を受けたテナントID「100AAR1」から紐づくテナントID「100AA」に登録されているユーザマッピングテーブルのMAPID「1」を引き継いで登録する。さらに、認証要求の応答を受け付けるリダイレクトURI「https://100AA.xx/r1/res」、およびイニシャルログインURI「https://100AA.xx/r1/login」を生成し、格納する。イニシャルログインURIは、RP起点でシングルサインオン処理を開始するためのURIである。認可モジュールのRPテーブルの例を表15に示す。

Figure 2016009299
認可モジュール600は、取得した情報を用いてシングルサインオンモジュール700にRP登録要求を行う。RP登録要求には少なくとも、取得したイニシャル認可トークン「i_000001」、および、リダイレクトURI、イニシャルログインURIを含む。 In S235, authorization server module 600 registers data in the RP table based on the acquired information. At that time, the MAPID “1” of the user mapping table registered in the tenant ID “100AA” associated with the notified tenant ID “100AAR1” is taken over and registered. Further, a redirect URI “https: //100AA.xx/r1/res” for receiving a response to the authentication request and an initial login URI “https: //100AA.xx/r1/login” are generated and stored. The initial login URI is a URI for starting single sign-on processing at the RP starting point. Table 15 shows an example of the RP table of the authorization module.
Figure 2016009299
The authorization module 600 makes an RP registration request to the single sign-on module 700 using the acquired information. The RP registration request includes at least the acquired initial authorization token “i — 000001”, the redirect URI, and the initial login URI.

ステップS236にて、RP登録要求を受けたシングルサインオンモジュール700は、イニシャル認可トークン「i_000001」を検証し、検証結果としてトークンに紐づくテナントIDを取得する。そして、イニシャル認可トークンに紐づくテナントID「100AAR1」を取得する。次に、クライアントID、シークレットを発行し、要求に含まれる「リダイレクトURI」、「イニシャルログインURI」と合わせて、OPテーブルのテナントID「100AAR1」で特定される行にデータを追加する。以下に、シングルサインオンモジュールのRPテーブルの例を示す。

Figure 2016009299
S237にて、シングルサインオンモジュール700は、RP登録応答として発行したクライアントID「c001@aa.com」、シークレット「xxxxxxxx」を認可モジュール600に通知する。 In step S236, the single sign-on module 700 that has received the RP registration request verifies the initial authorization token “i — 000001”, and acquires a tenant ID associated with the token as a verification result. Then, the tenant ID “100AAR1” associated with the initial authorization token is acquired. Next, the client ID and secret are issued, and the data is added to the line specified by the tenant ID “100AAR1” in the OP table together with the “redirect URI” and “initial login URI” included in the request. An example of the RP table of the single sign-on module is shown below.
Figure 2016009299
In S237, the single sign-on module 700 notifies the authorization module 600 of the client ID “[email protected]” and the secret “xxxxxxxx” issued as the RP registration response.

S238にて、認可モジュール600は、取得したクライアントID、シークレットをRPテーブルのテナントID「100AR1」に追加する。以下に、認可モジュール600のRPテーブルの例を示す。

Figure 2016009299
S239にて、認可モジュール600は、OP登録応答をシングルサインオンモジュール700に応答する。 In S238, authorization module 600 adds the acquired client ID and secret to tenant ID “100AR1” of the RP table. An example of the RP table of the authorization module 600 is shown below.
Figure 2016009299
In S239, authorization module 600 returns an OP registration response to single sign-on module 700.

S240にて、シングルサインオンモジュール700は、アプリケーションモジュール800に対して、認証連携応答を通知する。認証連携応答には、少なくとも、シングルサインオンモジュールのRPテーブルの「行2」の情報であるテナントID、クライアントID、シークレット、OPID、リダイレクトURI、およびイニシャルログインURIの情報を含む。さらに、テナントID「100AAR1」に紐づくOP、より具体的にはRPテーブルの「行1」のOPID「https://100AA.aa/auth」を合わせて通知する。S241にて、アプリケーションモジュール800は、取得した情報をアプリケーションモジュールのOPテーブルに格納する。その際、Webブラウザ820から通知されたOP名「組織A」を格納する。以下、アプリケーションモジュールのOPテーブルの例を示す。

Figure 2016009299
S242にて、アプリケーションモジュール800は、Webブラウザ820に対して操作画面を応答し、処理を終了する。ここで操作画面は図8(A)にて説明した操作画面2200である。その際、認証連携ボタン2201は実行済みであるとして無効状態で表示されるよう構成してもよい。 In S240, single sign-on module 700 notifies authentication cooperation response to application module 800. The authentication cooperation response includes at least information of tenant ID, client ID, secret, OPID, redirect URI, and initial login URI, which are information of “row 2” of the RP table of the single sign-on module. Further, the OP associated with the tenant ID “100AAR1”, more specifically, the OPID “https: //100AA.aa/auth” of “Row 1” of the RP table is also notified. In S241, application module 800 stores the acquired information in the OP table of the application module. At this time, the OP name “organization A” notified from the Web browser 820 is stored. The following is an example of the OP table of the application module.
Figure 2016009299
In S242, application module 800 returns an operation screen to Web browser 820, and ends the process. Here, the operation screen is the operation screen 2200 described with reference to FIG. At this time, the authentication cooperation button 2201 may be displayed in an invalid state as being executed.

なお、本実施形態では、S230にて認証連携設定を実施したシングルサインオンモジュール700は、S234にて認可モジュールにOP登録要求を行うシーケンスで説明したが、以下のシーケンスでも実現できる。シーケンスとしては、シングルサインオンモジュール700はS234のOP登録要求を通知する前に、S236のRP登録のためのクライアントID、シークレットの発行を行う。そして、それらをS234のOP登録要求にてイニシャル認可トークンに代わって含めるよう構成する事もできる。そのシーケンスの場合、認可モジュール600はS235のRP登録要求をスキップする。そして、S239のOP登録応答時に認可モジュール600にて認証要求の認可応答を受け付けるリダイレクトURI、RP起点でシングルサインオン処理を開始する最初のログインURIであるイニシャルログインURIを含め応答する。そして、OP登録応答を受けたシングルサインオンモジュール700は、ここで、S236のRP登録処理を実施するよう構成する事もできる。   In the present embodiment, the single sign-on module 700 for which the authentication linkage setting has been performed in S230 has been described with reference to the sequence for performing an OP registration request to the authorization module in S234, but can also be realized with the following sequence. As a sequence, the single sign-on module 700 issues a client ID and secret for RP registration in S236 before notifying the OP registration request in S234. Then, they can be configured to be included in place of the initial authorization token in the OP registration request in S234. In the case of the sequence, the authorization module 600 skips the RP registration request in S235. In response to the OP registration response in S239, the authorization module 600 responds with a redirect URI that accepts the authorization response of the authentication request and an initial login URI that is the first login URI that starts the single sign-on process at the RP origin. Then, the single sign-on module 700 that has received the OP registration response can be configured to perform the RP registration process of S236.

以上が、第三の設定である、端末の管理者が、端末400がシングルサインオンモジュール700を利用して、認可モジュール600とシングルサインオンする事が許可される。以上の第一、第二、第三の設定を行う事で、その後に、端末利用者によるシングルサインオン処理を行う事が可能となる。   The above is the third setting, and the terminal administrator is permitted to use the single sign-on module 700 for the terminal 400 to perform single sign-on with the authorization module 600. By performing the above first, second, and third settings, it becomes possible to perform single sign-on processing by the terminal user thereafter.

図9、図10、図11を用いて、シングルサインオン処理の詳細について説明する。図9および図10は第一、第二、第三の設定がなされた端末400にて、端末利用者が不図示のクラウドサービスを利用するための認可トークンを取得するためのシーケンスである。より具体的には、端末400にログインした事で、認可モジュールに対してシングルサインオンし、OAuth 2.0の認可確認画面が提示されるまでのシーケンスである。   Details of the single sign-on process will be described with reference to FIGS. 9, 10, and 11. FIG. 9 and FIG. 10 show a sequence for the terminal user to obtain an authorization token for using a cloud service (not shown) at the terminal 400 having the first, second, and third settings. More specifically, this is a sequence from the login to the terminal 400 to single sign-on for the authorization module until the OAuth 2.0 authorization confirmation screen is presented.

S31にて、端末利用者は、端末400にてログイン操作を行う。このログイン操作は、端末400が備える認証モジュール810が提供する認証手段によって行われる。本実施の形態の特徴として、この認証手段はシングルサインオンシステムと関係する事なく選択する事ができる。認証手段としては、例えば、ユーザID、パスワードの組み合わせを検証する手段、指紋等の生体情報を利用する認証手段、非接触型のICカードを利用する手段、さらには、複数の認証手段を組み合わせる多要素認証手段、等が考えられる。また、認証モジュール810が、不図示の認証サーバと通信することで端末利用者を認証するよう構成する事もできる。本実施の形態では、ユーザID、パスワードの組み合わせを検証する手段を認証手段として説明する。ここで、本実施の形態における認証モジュールのユーザテーブルは上述の通りである。   In S <b> 31, the terminal user performs a login operation on terminal 400. This login operation is performed by an authentication unit provided by the authentication module 810 provided in the terminal 400. As a feature of this embodiment, this authentication means can be selected regardless of the single sign-on system. As the authentication means, for example, a means for verifying a combination of a user ID and a password, an authentication means using biometric information such as a fingerprint, a means using a non-contact type IC card, and a combination of a plurality of authentication means. Factor authentication means, etc. can be considered. Further, the authentication module 810 can be configured to authenticate a terminal user by communicating with an unillustrated authentication server. In this embodiment, a means for verifying a combination of a user ID and a password will be described as an authentication means. Here, the user table of the authentication module in the present embodiment is as described above.

認証モジュールのユーザテーブルにおいて、ユーザID、パスワードの組にてユーザ認証が行われる。また、UUIDは端末400のユーザを一意に識別するための情報である。このUUIDが、前述の端末の管理者によるシングルサインオン設定画面2100にてアップロードしたユーザマッピング表の端末UUIDに記載した情報と対応している。   In the user table of the authentication module, user authentication is performed with a set of user ID and password. The UUID is information for uniquely identifying the user of the terminal 400. This UUID corresponds to the information described in the terminal UUID of the user mapping table uploaded on the single sign-on setting screen 2100 by the terminal administrator.

S32にて、認証モジュール810はユーザを認証する。例えば、ユーザIDが「user@yy.device.com」で、パスワードが「user」であった場合、ユーザID「user@yy.device.com」のユーザとして認証する。   In S32, authentication module 810 authenticates the user. For example, when the user ID is “[email protected]” and the password is “user”, the user ID “[email protected]” is authenticated.

S33にて、認証モジュール810は認証したユーザの認証情報を生成し保存する。この認証情報は、端末の管理者が不図示のログアウト操作を実施するか、設定された時刻が経過するまで有効な状態で保存される。認証情報には、認証したユーザのユーザID、UUID、および権限情報が格納されている。なお、認証情報としては、各情報を直接格納するのではなく、ユーザID、UUID、および権限情報とが参照可能に紐づけられたトークンでもよい。   In S33, authentication module 810 generates and stores authentication information of the authenticated user. This authentication information is stored in a valid state until the administrator of the terminal performs a logout operation (not shown) or until a set time elapses. The authentication information stores the user ID, UUID, and authority information of the authenticated user. Note that the authentication information may not be stored directly, but may be a token in which the user ID, UUID, and authority information are linked so that they can be referred to.

端末利用者は、認証モジュール810で認証を受けたのちに、S34、S35にて、Webブラウザ820を用いてアプリケーションモジュール800にアクセスする。なお、アプリケーションモジュール800へのアクセスを開始するきっかけとしては、アプリケーションモジュール800へアクセスするためのブックマークが保存され、そのブックマークを選択した場合が考えられる。また、アプリケーションモジュール800が明示的に開始するための操作、および画面を備え、端末の管理者が、端末400にて当該操作をしたタイミングが考えられる。   After the terminal user is authenticated by the authentication module 810, the terminal user accesses the application module 800 using the Web browser 820 in S34 and S35. As a chance to start access to the application module 800, a case where a bookmark for accessing the application module 800 is saved and the bookmark is selected can be considered. In addition, an operation for explicitly starting the application module 800 and a screen are provided, and a timing at which the terminal administrator performs the operation on the terminal 400 is conceivable.

S36にて、アプリケーションモジュール800はWebブラウザ820に対して操作画面を応答する。操作画面の例は、図8(A)を用いて説明済みである。S37にて、端末利用者はWebブラウザ820に表示された操作画面にて、認可連携ボタン2202を押下する。S38にて、Webブラウザ820は、アプリケーションモジュール800に対して認可要求を行う。   In S 36, application module 800 returns an operation screen to Web browser 820. The example of the operation screen has been described with reference to FIG. In S37, the terminal user presses the authorization cooperation button 2202 on the operation screen displayed on the Web browser 820. In S38, the Web browser 820 makes an authorization request to the application module 800.

S39にて、アプリケーションモジュール800は登録されているOP情報を取得する。より具体的には、アプリケーションモジュールのOPテーブルに登録されている全ての情報を取得する。ここで、アプリケーションモジュール800は、登録されているOP情報が複数の場合は、S310にて図11で示す組織選択画面を応答する。また、単数の場合は図11の組織選択画面の応答をスキップし、S313に処理を移行する事もできる。その場合、後述の認証連携認可要求にて、取得した単数のOP名を利用して処理を実行する。さらに、アプリケーションモジュール800は、OP情報が未登録の場合は、S337まで処理をスキップし、認可モジュール600に対して認可要求を行うよう構成する事もできる。   In S39, the application module 800 acquires registered OP information. More specifically, all information registered in the OP table of the application module is acquired. Here, when there are a plurality of registered OP information, the application module 800 responds with an organization selection screen shown in FIG. 11 in S310. In the case of a singular number, the response on the organization selection screen in FIG. 11 can be skipped, and the process can be shifted to S313. In that case, processing is executed using the acquired single OP name in the authentication cooperation authorization request described later. Further, the application module 800 can be configured to skip the processing up to S337 and make an authorization request to the authorization module 600 when the OP information is not registered.

図11は、認可連携ボタン2202の押下を受けて、テナントが複数登録されている場合にアプリケーションモジュール800が応答する組織選択画面の例である。組織選択画面2500は、登録されているOPの情報を表示するためのOPリスト2501、各OPを利用して認可要求を開始する実行ボタン2502、および、実行する際に、どのOPを利用するかを選択する選択肢であるOP選択ボタン2503を備える。なお、組織選択画面2500では、OP名「組織A」、「組織B」のOPが登録済みである例が示されている。   FIG. 11 is an example of an organization selection screen to which the application module 800 responds when a plurality of tenants are registered in response to pressing of the authorization cooperation button 2202. The organization selection screen 2500 has an OP list 2501 for displaying registered OP information, an execution button 2502 for starting an authorization request using each OP, and which OP is to be used for execution. An OP selection button 2503 that is an option for selecting “” is provided. The organization selection screen 2500 shows an example in which OPs with OP names “organization A” and “organization B” have been registered.

S311にて、端末利用者はWebブラウザ820に表示された組織選択画面にて、自身が所属するOP選択ボタン2503にて選択状態にし、実行ボタン2502を押下する。なお、図11では、OP名「組織B」が登録されている画面例を提示したが、以降の処理については、「組織A」のみが登録されている状態で、認可連携を実施した場合を例として説明する。   In step S <b> 311, the terminal user selects an OP selection button 2503 to which the terminal user belongs on the organization selection screen displayed on the web browser 820 and presses the execution button 2502. In FIG. 11, the screen example in which the OP name “Organization B” is registered is presented. However, for the subsequent processing, a case where authorization cooperation is performed in a state where only “Organization A” is registered is shown. This will be described as an example.

S312にて認証連携要求を受けたアプリケーションモジュール800は、認証連携認可処理フローを開始する。認証連携認可処理フロー以下の3つのフローから構成される。一つ目は、アプリケーションモジュール800が、シングルサインオンモジュール700に対してIDトークン取得を行うフローである。二つ目は、アプリケーションモジュール800が、取得したIDトークンを用いて、シングルサインオンモジュール700を介して認可モジュール600に対してシングルサインオンを行うフローである。そして、三つ目は、アプリケーションモジュール800が、シングルサインオンをしたのちに、認可モジュール600に対してOAuth 2.0による認可トークン取得を行うフローからなる。   Upon receiving the authentication cooperation request in S312, the application module 800 starts the authentication cooperation authorization processing flow. Authentication cooperation authorization processing flow It consists of the following three flows. The first is a flow in which the application module 800 acquires an ID token from the single sign-on module 700. The second is a flow in which the application module 800 performs single sign-on to the authorization module 600 via the single sign-on module 700 using the acquired ID token. The third is a flow in which the application module 800 acquires an authorization token by OAuth 2.0 to the authorization module 600 after performing single sign-on.

S313、S314において、アプリケーションモジュール800はWebブラウザ820を介して認可モジュール600のイニシャルログインURIに対して認証連携要求を行う。イニシャルログインURIは、アプリケーションモジュールのOPテーブルに登録されている情報から、OP名「組織A」により特定されるイニシャルログインURI「https://100AA.xx/r1/login」を取得し、利用する。   In S <b> 313 and S <b> 314, the application module 800 issues an authentication cooperation request to the initial login URI of the authorization module 600 via the Web browser 820. The initial login URI obtains and uses the initial login URI “https: //100AA.xx/r1/login” specified by the OP name “organization A” from the information registered in the OP table of the application module. .

また、この認証連携要求には、少なくとも、アプリケーションモジュールのOPテーブルのOPID1「https://local/auth」、クライアントテーブルに格納している認可URI「https://xx/authz」を含む。さらに、認可URIのリクエストパラメーターは以下のパラメーターを含む。すなわち、認可モジュール600に対して認可要求するためのパラメーターである、クライアントID「c001@xx.com」、クライアント登録時に設定したリダイレクトURI「https://local/res」を含む。また、不図示のクラウドサービスを利用するための認可トークン取得であれば、そのサービスのリソース範囲を示すスコープを含むよう構成する事もできる。   The authentication cooperation request includes at least OPID1 “https: // local / auth” of the OP table of the application module and an authorization URI “https: // xx / authz” stored in the client table. Further, the request parameter of the authorization URI includes the following parameters. That is, it includes a client ID “[email protected]” and a redirect URI “https: // local / res” set at the time of client registration, which are parameters for making an authorization request to the authorization module 600. If an authorization token for using a cloud service (not shown) is acquired, a scope indicating the resource range of the service can be included.

S315にて、認証連携認可要求を受けた認可モジュール600は、アクセスを受けたイニシャルログインURIを用いて確認処理を行う。具体的には、認可モジュール600は、認可モジュールのRPテーブルに登録されているRP情報から特定されたOPID「https://local/auth」が通知されたOPIDと一致するか確認する。一致した場合に、認可モジュール600は要求に含まれる認可URI「https://xx/authz」、および付随するパラメーターを保存する。その際、認可モジュール600は、ランダムで重複しない値であるstateを生成し、紐づけて保存する。ここでは、stateとして「12345」を生成したとして説明する。表19は、認可モジュールのSTATEテーブルの例を示す。

Figure 2016009299
In S315, the authorization module 600 that has received the authentication cooperation authorization request performs a confirmation process using the received initial login URI. Specifically, the authorization module 600 confirms whether the OPID “https: // local / auth” specified from the RP information registered in the RP table of the authorization module matches the notified OPID. If there is a match, the authorization module 600 saves the authorization URI “https: // xx / authz” and accompanying parameters included in the request. At that time, the authorization module 600 generates a state that is a random and non-overlapping value, and stores the state in association with each other. Here, it is assumed that “12345” is generated as the state. Table 19 shows an example of the STATE table of the authorization module.
Figure 2016009299

次に、認可モジュール600は、OPID「https://local/auth」、つまりアプリケーションモジュール800のURLを宛先として、S316にてWebブラウザ820を介して認証要求を通知する。認証要求には、少なくとも、認可モジュールのRPテーブルに登録されているクライアントID「c001@aa.com」、およびリダイレクトURI「https://100AA.xx/r1/res」を含む。また、認証要求は、先ほど生成したSTATE「12345」、およびスコープとして「openid」を含む。   Next, the authorization module 600 notifies the authentication request via the Web browser 820 in step S316 with the OPID “https: // local / auth”, that is, the URL of the application module 800 as a destination. The authentication request includes at least the client ID “[email protected]” registered in the RP table of the authorization module and the redirect URI “https: //100AA.xx/r1/res”. Further, the authentication request includes the STATE “12345” generated earlier and “openid” as the scope.

S317にてアプリケーションモジュール800は、認証要求に含まれるパラメーターを検証する。より具体的には、通知されたクライアントID、リダイレクトURIがアプリケーションモジュールのOPテーブルに登録されている情報と一致するかを検証する。一致する場合は、OPテーブルからOPID2を取得する。本実施形態では、特定されるOPID2は「https://100AA.aa/auth」である。   In S317, the application module 800 verifies the parameters included in the authentication request. More specifically, it is verified whether the notified client ID and redirect URI match information registered in the OP table of the application module. If they match, OPID2 is acquired from the OP table. In the present embodiment, the identified OPID 2 is “https: //100AA.aa/auth”.

S318にて、アプリケーションモジュール800は、認証モジュール810に対して認証情報の取得を要求する。S319にて、認証モジュールは保存されている認証情報をアプリケーションモジュール800に応答する。本実施形態では、認証情報としてユーザID「user@yy.device.com」、UUID「AAAAAAB」が応答されるものとして説明する。   In S318, the application module 800 requests the authentication module 810 to acquire authentication information. In S319, the authentication module responds to the application module 800 with the stored authentication information. In the present embodiment, a description will be given assuming that a user ID “[email protected]” and a UUID “AAAAAAB” are returned as authentication information.

S320にて、アプリケーションモジュール800は、認可モジュール600から認証要求を受け付けたことに起因して、クライアント認証要求をシングルサインオンモジュール700に送信する。具体的には、アプリケーションモジュール800は、特定したOPID2「https://100AA.aa/auth」、つまりシングルサインオンモジュール700に対してクライアント認証要求を通知する。クライアント認証要求には、少なくともアプリケーションモジュールのOPテーブルに格納されているクライアントID「c001@aa.com」、シークレット「xxxxxxxx」、およびスコープとして「openid」が含まれる。   In S 320, application module 800 transmits a client authentication request to single sign-on module 700 due to reception of the authentication request from authorization module 600. Specifically, the application module 800 notifies the specified OPID 2 “https: //100AA.aa/auth”, that is, the single sign-on module 700 of a client authentication request. The client authentication request includes at least the client ID “[email protected]” stored in the OP table of the application module, the secret “xxxxxxxx”, and “openid” as the scope.

S321にて、シングルサインオンモジュール700はクライアントを認証する。より具体的には、受信したクライアントID、シークレットの組が、シングルサイオンモジュールのOPテーブルに格納されている組と一致するかを検証する。一致した場合は、シングルサインオンモジュール700は、S322にてIDトークンを生成する保存する。   In S321, single sign-on module 700 authenticates the client. More specifically, it is verified whether the combination of the received client ID and secret matches the combination stored in the OP table of the single scion module. If they match, the single sign-on module 700 generates and stores an ID token in S322.

IDトークンは、発行者情報iss、Subject識別子sub、この場合は認証したクライアントを一意に識別するためのクライアントIDを含む。さらには、OpenID ConnectのIDトークンとして定義された、IDトークンの対象を示すaud、IDトークンの有効期限であるexp、IDトークンを発行した日時iatを含む事ができる。   The ID token includes issuer information iss, a subject identifier sub, and in this case, a client ID for uniquely identifying the authenticated client. Furthermore, it is possible to include an aud that is defined as an ID token of the OpenID Connect, indicating an ID token target, exp that is the expiration date of the ID token, and date and time iat when the ID token is issued.

また、IDトークンはOpenID Connectの定義に従いJWT(JSON Web Token)形式の文字列として生成され、さらに、JWS(JSON Web Signature)で定義された署名が付与される。署名には、シングルサインモジュールのOPオンテーブルにて、クライアントIDにて特定される鍵ペアを用いる。さらには、JWE(JSON Web Encryption)で定義された暗号化手段により暗号化が施される事もある。暗号化には、例えば、クライアントのシークレットを用いてもよい。また、署名と同じ鍵ペアを用いても良い。また、さらには、認可モジュール600からRP登録要求を受ける際に共通鍵を指定されるよう構成してもよい。その場合は、シングルサインオンモジュール700は、認証連携応答としてアプリケーションモジュール800に共通鍵を応答するよう構成する。以下に、シングルサインオンモジュールのIDトークンテーブルの例を示す。

Figure 2016009299
The ID token is generated as a character string in JWT (JSON Web Token) format in accordance with the definition of OpenID Connect, and further, a signature defined in JWS (JSON Web Signature) is given. For the signature, the key pair specified by the client ID in the OP on table of the single sign module is used. Further, encryption may be performed by encryption means defined by JWE (JSON Web Encryption). For encryption, for example, a client secret may be used. Also, the same key pair as the signature may be used. Furthermore, a common key may be specified when receiving an RP registration request from the authorization module 600. In that case, the single sign-on module 700 is configured to return a common key to the application module 800 as an authentication cooperation response. An example of the ID token table of the single sign-on module is shown below.
Figure 2016009299

図10のS323にて、シングルサインオンモジュール700は生成したIDトークンをアプリケーションモジュール800に応答する。その際、IDトークンはJWTで定義された文字列として応答される。   In S323 of FIG. 10, the single sign-on module 700 responds to the application module 800 with the generated ID token. At that time, the ID token is returned as a character string defined by JWT.

S324、S325にて、Webブラウザ820は、シングルサインオンモジュール700による、クライアント認証要求への応答に起因して、代理認証要求をングルサインオンモジュール700に送信する。具体的には、アプリケーションモジュール800は、Webブラウザ820を介してOPID2「https://100AA.aa/auth」つまり、シングルサインオンモジュール700に対して代理認証要求を行う。代理認証要求は、ユーザに再度のログインを求めることなく端末が動的にシングルサインオンモジュールへのログインを代理する要求である。この代理認証要求には、少なくとも、アプリケーションモジュールのOPテーブルに格納されているクライアントID「c001@aa.com」、およびリダイレクトURI「https://100AA.xx/r1/res」が含まれる。また、代理認証要求は、生成したstate「12345」、およびスコープとして「openid」も含まれる。さらに、少なくとも、認証モジュール810から認証情報として取得したUUID「AAAAAAB」、先ほどシングルサインオンモジュール700から取得したIDトークンを含む。これら、UUID、IDトークンを格納する方法として、例えば、OpenID Connectで定義されている、login_hint にUUIDを、id_token_hintにIDトークンを格納してもよい。さらに、OpenID Connectで定義されているpromptパラメーターとしてnoneを指定してもよい。   In S 324 and S 325, the Web browser 820 transmits a proxy authentication request to the guru sign-on module 700 due to the response to the client authentication request by the single sign-on module 700. Specifically, the application module 800 makes a proxy authentication request to the single sign-on module 700 via the Web browser 820 with OPID 2 “https: //100AA.aa/auth”. The proxy authentication request is a request for the terminal to proxy the login to the single sign-on module dynamically without requiring the user to log in again. This proxy authentication request includes at least the client ID “[email protected]” and the redirect URI “https: //100AA.xx/r1/res” stored in the OP table of the application module. The proxy authentication request also includes the generated state “12345” and “openid” as the scope. Furthermore, at least the UUID “AAAAAAB” acquired as authentication information from the authentication module 810 and the ID token acquired from the single sign-on module 700 earlier are included. As a method for storing these UUID and ID token, for example, UUID may be stored in login_hint and ID token may be stored in id_token_hint defined in OpenID Connect. Furthermore, “none” may be specified as the prompt parameter defined in OpenID Connect.

S326にて、シングルサインオンモジュール700は代理認証要求を検証する。具体的には、シングルサインオンモジュールのOPテーブルのクライアントID、リダイレクトURIの組が、通知されたクライアントID、リダイレクトURIの組と一致するか検証する。次に、シングルサインオンモジュール700は、シングルサインオンモジュールのIDトークンテーブルに登録されているIDトークンと通知されたIDトークンが一致するかを検証する。   In S326, single sign-on module 700 verifies the proxy authentication request. Specifically, it is verified whether the combination of the client ID and redirect URI in the OP table of the single sign-on module matches the notified client ID and redirect URI. Next, the single sign-on module 700 verifies whether the notified ID token matches the ID token registered in the ID token table of the single sign-on module.

次に、シングルサインオンモジュール700はIDトークンに含まれるsub「c001@aa.com」がシングルサインオンモジュールのOPテーブルに登録されているクライアントIDからテナントID、OPIDを取得する。本実施形態では、テナントID「100AAR1」、OPID「https://local/auth」となる。   Next, the single sign-on module 700 acquires the tenant ID and OPID from the client ID registered in the OP table of the single sign-on module with the sub “[email protected]” included in the ID token. In this embodiment, the tenant ID is “100AAR1” and the OPID is “https: // local / auth”.

この時、テナントIDおよびOPIDが代理認証要求を受けたURLと違う場合、かつUUIDが通知されている場合は、代理認証要求であるとして処理を行う。OpenID Connectの場合、通常、認証要求を受けると、ユーザの認証後、認可確認画面を応答し、ユーザの許可を得て処理をすすめるが、代理認証要求の場合、認可確認画面は応答しないよう構成される。これにより、ユーザの操作を簡易化することが可能となる。   At this time, if the tenant ID and the OPID are different from the URL for which the proxy authentication request has been received, and if the UUID has been notified, the processing is performed as a proxy authentication request. In the case of OpenID Connect, normally, when an authentication request is received, an authorization confirmation screen is returned after user authentication, and processing is performed with the user's permission, but in the case of a proxy authentication request, the authorization confirmation screen is not responded. Is done. As a result, the user's operation can be simplified.

S327にて、シングルサインオンモジュール700は代理認証処理として認可コードを生成する。より具体的には、トークンIDを発行し、テナントID、クライアントID、通知されたUUIDを、トークンテーブルに登録する。その際、トークン種別は認可コードとし、有効期限に当該認可コードが有効である日時を登録する。以下にシングルサインオンモジュールのトークンテーブルの例を示す。

Figure 2016009299
In S327, single sign-on module 700 generates an authorization code as a proxy authentication process. More specifically, a token ID is issued, and the tenant ID, client ID, and notified UUID are registered in the token table. At that time, the token type is an authorization code, and the date and time when the authorization code is valid is registered in the expiration date. The following is an example of the token table for the single sign-on module.
Figure 2016009299

S328、S329にて、シングルサインオンモジュールはWebブラウザ820を介して、リダイレクトURI「https://100AA.xx/r1/res」、つまり認可モジュール600に対して生成した認可コードを応答する。その際、通知されたstate「12345」を付与して応答する。換言すれば、シングルサインオンモジュール700は、代理認証要求に含まれるリダイレクトURI「https://100AA.xx/r1/res」を用いて、Webブラウザに認可モジュール600に認可応答するようリダイレクト指示を送信する。   In S328 and S329, the single sign-on module responds with the redirect URI “https: //100AA.xx/r1/res”, that is, the generated authorization code to the authorization module 600 via the Web browser 820. At that time, it responds with the notified state “12345”. In other words, the single sign-on module 700 uses the redirect URI “https: //100AA.xx/r1/res” included in the proxy authentication request to instruct the web browser to redirect the authorization to the authorization module 600. Send.

S330にて、認可モジュール600は、取得した認可コードを用いてシングルサインオンモジュール700に対してトークン取得要求を通知する。このトークン取得要求には、少なくとも認可モジュールのRPテーブルにてリダイレクトURIにて特定されたクライアントID、シークレット、リダイレクトURI、および取得した認可コードを含む。   In S330, authorization module 600 notifies token acquisition request to single sign-on module 700 using the obtained authorization code. This token acquisition request includes at least the client ID specified by the redirect URI in the RP table of the authorization module, the secret, the redirect URI, and the acquired authorization code.

S331にて、シングルサインオンモジュール700は、トークン取得要求を検証する。具体的には、シングルサイオンモジュールのトークンテーブルにて認可コードが登録されているか、有効期限内かを検証する。そして、認可コードにて特定されるクライアントIDを取得する。次に、取得したクライアントIDを用いてシングルサイオンモジュールのOPテーブルに格納されているクライアントID、シークレット、リダイレクトURIの組が通知されたクライアントID、シークレット、リダイレクトURIの組と一致するかを検証する。   In S331, the single sign-on module 700 verifies the token acquisition request. Specifically, it is verified whether the authorization code is registered in the token table of the single scion module or whether it is within the expiration date. Then, the client ID specified by the authorization code is acquired. Next, using the acquired client ID, it is verified whether the set of the client ID, secret, and redirect URI stored in the OP table of the single scion module matches the notified client ID, secret, and redirect URI. .

S332にて、シングルサインオンモジュール700は、取得した認可コードを元にIDトークンを生成し保存する。IDトークンは、発行者情報iss、Subject識別子sub、この場合は認可コードに紐づくUUIDを含む。このとき、発行者情報issには、認可トークンから特定されたテナントIDに紐づくOPIDとなる。具体的には、シングルサインオンモジュールのOPテーブルから、テナントID「100AAR1」に紐づくOPID「https://local/auth」となる。さらに、OpenID ConnectのIDトークンとして定義された、IDトークンの対象を示すaud、この場合は認可コードに紐づくクライアントIDを含む。さらに、IDトークンは、IDトークンの有効期限であるexp、IDトークンを発行した日時iatを含む事ができる。   In S332, single sign-on module 700 generates and stores an ID token based on the acquired authorization code. The ID token includes issuer information iss, a Subject identifier sub, and in this case, a UUID associated with an authorization code. At this time, the issuer information iss is an OPID associated with the tenant ID specified from the authorization token. Specifically, the OPID “https: // local / auth” associated with the tenant ID “100AAR1” is obtained from the OP table of the single sign-on module. Furthermore, it includes an aud that is defined as an ID token of the OpenID Connect and indicates an ID token target, in this case, a client ID associated with an authorization code. Further, the ID token can include exp, which is the expiration date of the ID token, and date / time iat when the ID token is issued.

また、IDトークンはOpenID Connectの定義に従いJWT(JSON Web Token)形式の文字列として生成され、さらに、JWS(JSON Web Signature)で定義された署名が付与される。署名には、シングルサインモジュールのOPオンテーブルにて、クライアントIDにて特定される鍵ペアを用いる。さらには、JWE(JSON Web Encryption)で定義された暗号化手段により暗号化が施される事もある。暗号化には、例えば、クライアントのシークレットを用いてもよい。また、署名と同じ鍵ペアを用いても良い。また、さらには、認可モジュール600からRP登録要求を受ける際に共通鍵を指定されるよう構成してもよい。以下に、シングルサインオンモジュールのIDトークンテーブルの例を示す。

Figure 2016009299
The ID token is generated as a character string in JWT (JSON Web Token) format in accordance with the definition of OpenID Connect, and further, a signature defined in JWS (JSON Web Signature) is given. For the signature, the key pair specified by the client ID in the OP on table of the single sign module is used. Further, encryption may be performed by encryption means defined by JWE (JSON Web Encryption). For encryption, for example, a client secret may be used. Also, the same key pair as the signature may be used. Furthermore, a common key may be specified when receiving an RP registration request from the authorization module 600. An example of the ID token table of the single sign-on module is shown below.
Figure 2016009299

S333にて、シングルサインオンモジュール700は生成したIDトークンを認可モジュール600に応答する。その際、IDトークンはJWTで定義された文字列として応答される。なお、本実施形態では、生成されるトークンをIDトークンのみとして説明したが別途認可トークンも生成して応答してもよい。   In S333, single sign-on module 700 responds to authorization module 600 with the generated ID token. At that time, the ID token is returned as a character string defined by JWT. In the present embodiment, the generated token is described as only the ID token. However, an authorization token may be separately generated and responded.

S334にて、認可モジュール600は、IDトークンを検証する。より具体的には、IDトークンが暗号化されている場合は、予め取り決められて手段にて復号する。次に、IDトークンに含まれる発行元であるissが、認可モジュールのRPテーブルに登録されているOPIDと一致するかを検証する。   In S334, authorization module 600 verifies the ID token. More specifically, when the ID token is encrypted, it is decided in advance and decrypted by means. Next, it is verified whether or not the iss included in the ID token matches the OPID registered in the RP table of the authorization module.

次に、IDトークンに署名が付与されている場合は、認可モジュールのRPテーブルに格納されている情報を、IDトークンに含まれるissのOPIDとして特定し、その情報に含まれる公開鍵にて署名検証を行う。なお、署名検証については、IDトークン取得要求の通信が十分に安全である事が検証される場合は、省略してもよい。例えば、通信がSSL/TLSで暗号化されており、その際に取得されるシングルサイオンサーバ300のサーバ証明書が信頼できるものであった場合は、省略可能である。   Next, when the signature is given to the ID token, the information stored in the RP table of the authorization module is specified as the iss OPID included in the ID token, and the signature is signed with the public key included in the information. Perform verification. The signature verification may be omitted if it is verified that the communication of the ID token acquisition request is sufficiently secure. For example, if the communication is encrypted by SSL / TLS and the server certificate of the single scion server 300 acquired at that time is reliable, it can be omitted.

次に、認可モジュール600は、IDトークンに含まれるIDトークンの有効期限であるexpが、現在の日時範囲内であるかを検証する。そして、IDトークンの対象であるaudに、認可モジュールのRPテーブルに登録されているクライアントIDが含まれているかを検証する。その他、OpenID Connectで定義されているオプションを用いて検証項目を増やす事も可能である。   Next, the authorization module 600 verifies whether exp, which is the expiration date of the ID token included in the ID token, is within the current date and time range. Then, it is verified whether or not the client ID registered in the RP table of the authorization module is included in the “aud” subject to the ID token. In addition, it is possible to increase the number of verification items by using options defined in OpenID Connect.

S335にて、認可モジュール600はIDトークンに含まれるユーザを一意に識別するIDであるUUIDを用いて認証トークンを生成する。具体的には、IDトークンに含まれるissを用いて、認可モジュールのRPテーブルからOPIDを特定する。次に、特定したOPIDのMAPIDを取得する。本実施形態では、OPID「https://local/auth」からMAPID「1」が取得される。   In S335, authorization module 600 generates an authentication token using a UUID that is an ID for uniquely identifying a user included in the ID token. Specifically, the OPID is specified from the RP table of the authorization module using the iss included in the ID token. Next, the MAPID of the specified OPID is acquired. In the present embodiment, the MAPID “1” is acquired from the OPID “https: // local / auth”.

次に、認可モジュールのユーザマッピングテーブルから、MAPID「1」およびIDトークンに含まれるUUIDの組から、ユーザID、UUIDを特定する。本実施形態では、UUID「AAAAAAB」かつ、MAPID「1」であるため、ユーザID「user@xx.com」、UUID「10000001」が取得される。そして、認証トークンは、取得したユーザIDまたはUUIDと紐づけられ、認可モジュール600にて保存される。   Next, the user ID and UUID are specified from the set of MAPID “1” and the UUID included in the ID token from the user mapping table of the authorization module. In the present embodiment, since the UUID “AAAAAAB” and the MAPID “1”, the user ID “[email protected]” and the UUID “10000001” are acquired. The authentication token is associated with the acquired user ID or UUID and stored in the authorization module 600.

S336にて、認可モジュール600は認証連携応答として、Webブラウザ820に対して、生成した認証トークンをCookieに設定し、認可モジュール600のURIにリダイレクトするよう応答する。ここで、認可モジュール600のURIは、認可モジュールのSTATEテーブルにて、state「12345」で特定されるURIとなる。結果として、S337にてWebブラウザ820は、設定されたCookie情報を付与した状態で、認可モジュール600に対して認可要求する事となる。   In S336, the authorization module 600 responds to the Web browser 820 as an authentication cooperation response by setting the generated authentication token to Cookie and redirecting to the URI of the authorization module 600. Here, the URI of the authorization module 600 is the URI specified by state “12345” in the STATE table of the authorization module. As a result, in step S337, the web browser 820 issues an authorization request to the authorization module 600 with the set cookie information added.

S338にて、認可モジュール600は、Cookieとして受信した認証トークンを用いて、ユーザが認証済みかどうかを検証し、認証済みである場合は、認証トークンに紐づけられた情報をもってユーザを特定する。S339にて、認可モジュール600は、受信した認可要求のうち、クライアントIDとリダイレクトURIの組が正しいか検証する。具体的には、認可要求に含まれるクライアントID、リダイレクトURIの組が、認可モジュールのクライアントテーブルに登録されているクライアントIDとリダイレクトURIの組が一致するか検証する。不一致の場合、認可モジュール600は不図示のエラー画面を、Webブラウザ820に応答する。一致する場合、認可モジュール600は、S340にてWebブラウザ820に対して認可確認画面を応答する。認可確認画面の例としては、図8(C)の認可確認画面2400において、認可要求に含まれるスコープの説明を表示する領域であるスコープ表示領域2402が、認可要求に含まれるスコープに対応した内容に変更された画面が応答される。   In S338, authorization module 600 verifies whether or not the user has been authenticated using the authentication token received as Cookie. If the user has been authenticated, the authorization module 600 identifies the user with information associated with the authentication token. In S339, authorization module 600 verifies whether the combination of client ID and redirect URI is correct in the received authorization request. Specifically, it is verified whether the combination of the client ID and the redirect URI included in the authorization request matches the combination of the client ID and the redirect URI registered in the client table of the authorization module. If they do not match, the authorization module 600 responds to the web browser 820 with an error screen (not shown). If they match, the authorization module 600 returns an authorization confirmation screen to the web browser 820 in S340. As an example of the authorization confirmation screen, in the authorization confirmation screen 2400 of FIG. 8C, a scope display area 2402 that is an area for displaying a description of the scope included in the authorization request is a content corresponding to the scope included in the authorization request. The screen changed to is responded.

以下の認可フローについては、図6および図7で説明したシーケンスと同様であるため、説明を省略する。以上の処理により、認証サーバを別途設置することなく、端末への一度のログイン操作で端末利用者が各種機能を提供するサーバとシングルサインオンを実現することが可能となる。本発明においては、端末利用者が、端末からクラウドサービスを利用する際に、端末にて認証されている事をもってクラウドサービスに対してシングルサインオンが実現される。従って、認証サーバ装置を別途設ける必要がなく、また端末の認証手段に関して制限を設ける必要もないため、シングスサインオンシステムにおけるユーザの利便性が向上する。   The following authorization flow is the same as the sequence described in FIG. 6 and FIG. With the above processing, it is possible to realize single sign-on with a server in which a terminal user provides various functions with a single login operation to the terminal without separately installing an authentication server. In the present invention, when the terminal user uses the cloud service from the terminal, single sign-on is realized for the cloud service by being authenticated by the terminal. Therefore, it is not necessary to separately provide an authentication server device, and it is not necessary to limit the authentication means of the terminal, so that convenience for the user in the single sign-on system is improved.

(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そしてそのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
(Other embodiments)
The present invention can also be realized by executing the following processing. That is, software (computer program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media. Then, the computer (or CPU, MPU, etc.) of the system or apparatus reads out and executes the program. In this case, the program and the storage medium storing the program constitute the present invention.

200 認可サーバ
300 シングルサインオンサーバ
400 端末
200 Authorization server 300 Single sign-on server 400 Terminal

Claims (9)

ユーザ認証を実行する認可サーバとウェブサービスを提供するサービス提供サーバとを備えるシステムを介して前記ウェブサービスを利用する情報処理装置であって、
自装置に対するログイン操作を受け付けて前記認可サーバに認証情報を含む認証連携要求を送信する第1の送信手段と、
前記認証連携要求に対し、前記認可サーバから第1の認証要求を受け付けたことに起因して、第2の認証要求を前記サービス提供サーバに送信する第2の送信手段と、
前記サービス提供サーバによる、第1のIDトークンを含む前記第2の認証要求への応答に起因して、該第1のIDトークンを含む第3の認証要求を前記サービス提供サーバに送信する第3の送信手段と、
前記第3の認証要求に応答した前記サービス提供サーバから、認可コードを含む前記認可サーバへのリダイレクト指示を受信する第1の受信手段と、
前記リダイレクトに含まれる前記認可コードを用いて認証トークンを生成した前記認可サーバから、前記認証トークンを含む前記認証連携要求に対する応答を受信する第2の受信手段と、を備える
ことを特徴とする情報処理装置。
An information processing apparatus that uses the web service via a system including an authorization server that performs user authentication and a service providing server that provides a web service,
First transmission means for accepting a login operation to the own device and transmitting an authentication cooperation request including authentication information to the authorization server;
A second transmission means for transmitting a second authentication request to the service providing server due to accepting the first authentication request from the authorization server in response to the authentication cooperation request;
A third authentication request including the first ID token is transmitted to the service providing server in response to a response to the second authentication request including the first ID token by the service providing server. Means for sending
First receiving means for receiving a redirect instruction to the authorization server including an authorization code from the service providing server responding to the third authentication request;
Second receiving means for receiving a response to the authentication cooperation request including the authentication token from the authorization server that has generated an authentication token using the authorization code included in the redirect. Processing equipment.
前記第2の認証要求は、前記情報処理装置を前記サービス提供サーバが認証を行う要求であり、前記サービス提供サーバによるシングルサインオン設定において前記サービス提供サーバにより発行された少なくとも情報処理装置の識別情報およびシークレットを含む
ことを特徴とする請求項1に記載の情報処理装置。
The second authentication request is a request for the service providing server to authenticate the information processing apparatus, and at least information processing apparatus identification information issued by the service providing server in a single sign-on setting by the service providing server The information processing apparatus according to claim 1, further comprising: a secret.
前記第3の認証要求は、ユーザによる操作なしに前記サービス提供サーバにログインするための代理認証要求である
ことを特徴とする請求項1または2に記載の情報処理装置。
The information processing apparatus according to claim 1, wherein the third authentication request is a proxy authentication request for logging in to the service providing server without an operation by a user.
ユーザ操作を受け付けて複数の情報処理装置をテナント毎に紐付けて前記認可サーバに登録要求を行う登録手段をさらに備える
ことを特徴とする請求項1乃至3のいずれか一項に記載の情報処理装置。
The information processing according to any one of claims 1 to 3, further comprising: a registration unit that accepts a user operation and associates a plurality of information processing apparatuses for each tenant and makes a registration request to the authorization server. apparatus.
前記登録要求に応答した前記認可サーバから、前記代理認証を実行させることを認可させる認可確認画面を受信して表示する表示手段を備え、
前記認可確認画面に対するユーザ操作の結果、前記認可サーバと前記サービス提供サーバとの間では、前記代理認証を実現させる設定が実行される
ことを特徴とする請求項4に記載の情報処理装置。
From the authorization server that responded to the registration request, comprising a display means for receiving and displaying an authorization confirmation screen that authorizes the execution of the proxy authentication
The information processing apparatus according to claim 4, wherein a setting for realizing the proxy authentication is executed between the authorization server and the service providing server as a result of a user operation on the authorization confirmation screen.
前記表示手段は、前記テナントが複数登録されている場合は、前記設定画面に前記複数のテナントのいずれか一つを選択するための選択肢をさらに表示する
ことを特徴とする請求項4または5に記載の情報処理装置。
6. The display unit according to claim 4, wherein when the plurality of tenants are registered, the display unit further displays an option for selecting any one of the plurality of tenants on the setting screen. The information processing apparatus described.
ユーザ認証を実行する認可サーバと、ウェブサービスを提供するサービス提供サーバと、前記ウェブサービスを利用する情報処理装置を備えるシングルサインオンシステムであって、
前記情報処理装置は、
前記サービス提供サーバに対するログイン操作を受け付けて前記認可サーバに認証情報を含む認証連携要求を送信する第1の送信手段と、
前記認証連携要求に対し、前記認可サーバから第1の認証要求を受け付けたことに起因して、第2の認証要求を前記サービス提供サーバに送信する第2の送信手段と、
前記サービス提供サーバによる、第1のIDトークンを含む前記第2の認証要求への応答に起因して、該第1のIDトークンを含む第3の認証要求を前記サービス提供サーバに送信する第3の送信手段と、
前記第3の認証要求に応答した前記サービス提供サーバから、認可コードを含む前記認可サーバへのリダイレクト指示を受信する第1の受信手段と、
前記リダイレクトに含まれる前記認可コードを用いて認証トークンを生成した前記認可サーバから、前記認証トークンを含む前記認証連携要求に対する応答を受信する第2の受信手段とを備え、
前記認可サーバは、
前記認可コードを受信して該認可コードを送信することにより第2のIDトークンを前記サービス提供サーバから受信し、該第2のIDトークンを用いて前記認証トークンを生成する生成手段を備え、
前記サービス提供装置は、
前記第1および第2のIDトークンを生成する生成手段を備える
ことを特徴とする情報処理装置。
A single sign-on system comprising an authorization server that performs user authentication, a service providing server that provides a web service, and an information processing apparatus that uses the web service,
The information processing apparatus includes:
First transmitting means for receiving a login operation to the service providing server and transmitting an authentication cooperation request including authentication information to the authorization server;
A second transmission means for transmitting a second authentication request to the service providing server due to accepting the first authentication request from the authorization server in response to the authentication cooperation request;
A third authentication request including the first ID token is transmitted to the service providing server in response to a response to the second authentication request including the first ID token by the service providing server. Means for sending
First receiving means for receiving a redirect instruction to the authorization server including an authorization code from the service providing server responding to the third authentication request;
Second receiving means for receiving a response to the authentication cooperation request including the authentication token from the authorization server that has generated an authentication token using the authorization code included in the redirect;
The authorization server is
Receiving the authorization code and transmitting the authorization code to receive a second ID token from the service providing server, and generating means for generating the authentication token using the second ID token,
The service providing apparatus includes:
An information processing apparatus comprising: generating means for generating the first and second ID tokens.
ユーザ認証を実行する認可サーバとウェブサービスを提供するサービス提供サーバとを備えるシステムを介して前記ウェブサービスを利用する情報処理装置の制御方法であって、
前記情報処理装置に対するログイン操作を受け付けて前記認可サーバに認証情報を含む認証連携要求を送信する送信工程と、
前記認証連携要求に対し、前記認可サーバから第1の認証要求を受け付けたことに起因して、第2の認証要求を前記サービス提供サーバに送信する送信工程と、
前記サービス提供サーバによる、第1のIDトークンを含む前記第2の認証要求への応答に起因して、該第1のIDトークンを含む第3の認証要求を前記サービス提供サーバに送信する送信工程と、
前記第3の認証要求に応答した前記サービス提供サーバから、認可コードを含む前記認可サーバへのリダイレクト指示を受信する受信工程と、
前記リダイレクトに含まれる前記認可コードを用いて認証トークンを生成した前記認可サーバから、前記認証トークンを含む前記認証連携要求に対する応答を受信する第2の受信工程と、を有する
ことを特徴とする制御方法。
A method for controlling an information processing apparatus that uses a web service via a system including an authorization server that performs user authentication and a service providing server that provides a web service,
A transmission step of accepting a login operation to the information processing apparatus and transmitting an authentication cooperation request including authentication information to the authorization server;
In response to receiving the first authentication request from the authorization server in response to the authentication cooperation request, a transmission step of transmitting a second authentication request to the service providing server;
A transmission step of transmitting a third authentication request including the first ID token to the service providing server due to a response to the second authentication request including the first ID token by the service providing server. When,
Receiving a redirect instruction to the authorization server including an authorization code from the service providing server in response to the third authentication request;
A second reception step of receiving a response to the authentication cooperation request including the authentication token from the authorization server that has generated an authentication token using the authorization code included in the redirect. Method.
請求項8に記載の制御方法をコンピュータにより実行させることを特徴とするコンピュータプログラム。   A computer program for causing a computer to execute the control method according to claim 8.
JP2014129086A 2014-06-24 2014-06-24 Single sign-on system, terminal device, control method and computer program Pending JP2016009299A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014129086A JP2016009299A (en) 2014-06-24 2014-06-24 Single sign-on system, terminal device, control method and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014129086A JP2016009299A (en) 2014-06-24 2014-06-24 Single sign-on system, terminal device, control method and computer program

Publications (1)

Publication Number Publication Date
JP2016009299A true JP2016009299A (en) 2016-01-18

Family

ID=55226825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014129086A Pending JP2016009299A (en) 2014-06-24 2014-06-24 Single sign-on system, terminal device, control method and computer program

Country Status (1)

Country Link
JP (1) JP2016009299A (en)

Cited By (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018142332A (en) * 2016-05-11 2018-09-13 オラクル・インターナショナル・コーポレイション Multi-tenant identity and data security management cloud service
US10200358B2 (en) 2016-05-11 2019-02-05 Oracle International Corporation Microservices based multi-tenant identity and data security management cloud service
US10218705B2 (en) 2016-05-11 2019-02-26 Oracle International Corporation Multi-tenant identity and data security management cloud service
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
US10263947B2 (en) 2016-08-05 2019-04-16 Oracle International Corporation LDAP to SCIM proxy service
US10341354B2 (en) 2016-09-16 2019-07-02 Oracle International Corporation Distributed high availability agent architecture
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
CN109995699A (en) * 2017-12-29 2019-07-09 上海智显光电科技有限公司 Management of multimedia equipment system and management method
US10348858B2 (en) 2017-09-15 2019-07-09 Oracle International Corporation Dynamic message queues for a microservice based cloud service
JP2019139520A (en) * 2018-02-09 2019-08-22 キヤノン株式会社 Information processing system, control method thereof, and program
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10454915B2 (en) 2017-05-18 2019-10-22 Oracle International Corporation User authentication using kerberos with identity cloud service
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10505941B2 (en) 2016-08-05 2019-12-10 Oracle International Corporation Virtual directory system for LDAP to SCIM proxy service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10530578B2 (en) 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
JP2020053100A (en) * 2019-12-27 2020-04-02 キヤノン株式会社 Information processing system, control method thereof and program
US10616224B2 (en) 2016-09-16 2020-04-07 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10693861B2 (en) 2016-05-11 2020-06-23 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
JP2020119015A (en) * 2019-01-18 2020-08-06 キヤノン株式会社 System, method, and program
US10764273B2 (en) 2018-06-28 2020-09-01 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
CN111611550A (en) * 2019-02-22 2020-09-01 横河电机株式会社 Computer system, computer device and authorization management method
JP2020149121A (en) * 2019-03-11 2020-09-17 Necソリューションイノベータ株式会社 Personal authentication device, personal authentication method, program, and recording medium
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US10798165B2 (en) 2018-04-02 2020-10-06 Oracle International Corporation Tenant data comparison for a multi-tenant identity cloud service
US10831789B2 (en) 2017-09-27 2020-11-10 Oracle International Corporation Reference attribute query processing for a multi-tenant cloud service
US10834137B2 (en) 2017-09-28 2020-11-10 Oracle International Corporation Rest-based declarative policy management
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
US10931656B2 (en) 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US11012444B2 (en) 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
CN113742705A (en) * 2021-08-30 2021-12-03 北京一砂信息技术有限公司 Method and system for realizing IFAA (Interface authentication and Access Association) number based authentication service
US11258775B2 (en) 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
US11271969B2 (en) 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
CN114338078A (en) * 2021-11-19 2022-04-12 奇安信科技集团股份有限公司 CS client login method and device
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11356454B2 (en) 2016-08-05 2022-06-07 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11550671B2 (en) 2020-09-18 2023-01-10 Fujitsu Limited Backup management device, backup management method, and information processing system
US11611548B2 (en) 2019-11-22 2023-03-21 Oracle International Corporation Bulk multifactor authentication enrollment
US11651357B2 (en) 2019-02-01 2023-05-16 Oracle International Corporation Multifactor authentication without a user footprint
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11693835B2 (en) 2018-10-17 2023-07-04 Oracle International Corporation Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration

Cited By (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10425386B2 (en) 2016-05-11 2019-09-24 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10200358B2 (en) 2016-05-11 2019-02-05 Oracle International Corporation Microservices based multi-tenant identity and data security management cloud service
US10218705B2 (en) 2016-05-11 2019-02-26 Oracle International Corporation Multi-tenant identity and data security management cloud service
JP2018142332A (en) * 2016-05-11 2018-09-13 オラクル・インターナショナル・コーポレイション Multi-tenant identity and data security management cloud service
US10878079B2 (en) 2016-05-11 2020-12-29 Oracle International Corporation Identity cloud service authorization model with dynamic roles and scopes
US11088993B2 (en) 2016-05-11 2021-08-10 Oracle International Corporation Policy enforcement point for a multi-tenant identity and data security management cloud service
US10848543B2 (en) 2016-05-11 2020-11-24 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US10341410B2 (en) 2016-05-11 2019-07-02 Oracle International Corporation Security tokens for a multi-tenant identity and data security management cloud service
US10693861B2 (en) 2016-05-11 2020-06-23 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service
US10581820B2 (en) 2016-05-11 2020-03-03 Oracle International Corporation Key generation and rollover
US10454940B2 (en) 2016-05-11 2019-10-22 Oracle International Corporation Identity cloud service authorization model
US10721237B2 (en) 2016-08-05 2020-07-21 Oracle International Corporation Hierarchical processing for a virtual directory system for LDAP to SCIM proxy service
US10585682B2 (en) 2016-08-05 2020-03-10 Oracle International Corporation Tenant self-service troubleshooting for a multi-tenant identity and data security management cloud service
US10255061B2 (en) 2016-08-05 2019-04-09 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US11356454B2 (en) 2016-08-05 2022-06-07 Oracle International Corporation Service discovery for a multi-tenant identity and data security management cloud service
US11601411B2 (en) 2016-08-05 2023-03-07 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10505941B2 (en) 2016-08-05 2019-12-10 Oracle International Corporation Virtual directory system for LDAP to SCIM proxy service
US10530578B2 (en) 2016-08-05 2020-01-07 Oracle International Corporation Key store service
US10263947B2 (en) 2016-08-05 2019-04-16 Oracle International Corporation LDAP to SCIM proxy service
US10579367B2 (en) 2016-08-05 2020-03-03 Oracle International Corporation Zero down time upgrade for a multi-tenant identity and data security management cloud service
US10735394B2 (en) 2016-08-05 2020-08-04 Oracle International Corporation Caching framework for a multi-tenant identity and data security management cloud service
US10484382B2 (en) 2016-08-31 2019-11-19 Oracle International Corporation Data management for a multi-tenant identity cloud service
US11258797B2 (en) 2016-08-31 2022-02-22 Oracle International Corporation Data management for a multi-tenant identity cloud service
US10846390B2 (en) 2016-09-14 2020-11-24 Oracle International Corporation Single sign-on functionality for a multi-tenant identity and data security management cloud service
US10594684B2 (en) 2016-09-14 2020-03-17 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US11258786B2 (en) 2016-09-14 2022-02-22 Oracle International Corporation Generating derived credentials for a multi-tenant identity cloud service
US10511589B2 (en) 2016-09-14 2019-12-17 Oracle International Corporation Single logout functionality for a multi-tenant identity and data security management cloud service
US10616224B2 (en) 2016-09-16 2020-04-07 Oracle International Corporation Tenant and service management for a multi-tenant identity and data security management cloud service
US10445395B2 (en) 2016-09-16 2019-10-15 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10341354B2 (en) 2016-09-16 2019-07-02 Oracle International Corporation Distributed high availability agent architecture
US10567364B2 (en) 2016-09-16 2020-02-18 Oracle International Corporation Preserving LDAP hierarchy in a SCIM directory using special marker groups
US11023555B2 (en) 2016-09-16 2021-06-01 Oracle International Corporation Cookie based state propagation for a multi-tenant identity cloud service
US10791087B2 (en) 2016-09-16 2020-09-29 Oracle International Corporation SCIM to LDAP mapping using subtype attributes
US10484243B2 (en) 2016-09-16 2019-11-19 Oracle International Corporation Application management for a multi-tenant identity cloud service
US10904074B2 (en) 2016-09-17 2021-01-26 Oracle International Corporation Composite event handler for a multi-tenant identity cloud service
US10261836B2 (en) 2017-03-21 2019-04-16 Oracle International Corporation Dynamic dispatching of workloads spanning heterogeneous services
US10454915B2 (en) 2017-05-18 2019-10-22 Oracle International Corporation User authentication using kerberos with identity cloud service
US10348858B2 (en) 2017-09-15 2019-07-09 Oracle International Corporation Dynamic message queues for a microservice based cloud service
US11308132B2 (en) 2017-09-27 2022-04-19 Oracle International Corporation Reference attributes for related stored objects in a multi-tenant cloud service
US10831789B2 (en) 2017-09-27 2020-11-10 Oracle International Corporation Reference attribute query processing for a multi-tenant cloud service
US10834137B2 (en) 2017-09-28 2020-11-10 Oracle International Corporation Rest-based declarative policy management
US11271969B2 (en) 2017-09-28 2022-03-08 Oracle International Corporation Rest-based declarative policy management
US10705823B2 (en) 2017-09-29 2020-07-07 Oracle International Corporation Application templates and upgrade framework for a multi-tenant identity cloud service
CN109995699A (en) * 2017-12-29 2019-07-09 上海智显光电科技有限公司 Management of multimedia equipment system and management method
US10715564B2 (en) 2018-01-29 2020-07-14 Oracle International Corporation Dynamic client registration for an identity cloud service
US11463488B2 (en) 2018-01-29 2022-10-04 Oracle International Corporation Dynamic client registration for an identity cloud service
JP2019139520A (en) * 2018-02-09 2019-08-22 キヤノン株式会社 Information processing system, control method thereof, and program
US11528262B2 (en) 2018-03-27 2022-12-13 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US10931656B2 (en) 2018-03-27 2021-02-23 Oracle International Corporation Cross-region trust for a multi-tenant identity cloud service
US11165634B2 (en) 2018-04-02 2021-11-02 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US11652685B2 (en) 2018-04-02 2023-05-16 Oracle International Corporation Data replication conflict detection and resolution for a multi-tenant identity cloud service
US10798165B2 (en) 2018-04-02 2020-10-06 Oracle International Corporation Tenant data comparison for a multi-tenant identity cloud service
US11258775B2 (en) 2018-04-04 2022-02-22 Oracle International Corporation Local write for a multi-tenant identity cloud service
US11012444B2 (en) 2018-06-25 2021-05-18 Oracle International Corporation Declarative third party identity provider integration for a multi-tenant identity cloud service
US11411944B2 (en) 2018-06-28 2022-08-09 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
US10764273B2 (en) 2018-06-28 2020-09-01 Oracle International Corporation Session synchronization across multiple devices in an identity cloud service
US11693835B2 (en) 2018-10-17 2023-07-04 Oracle International Corporation Dynamic database schema allocation on tenant onboarding for a multi-tenant identity cloud service
US11321187B2 (en) 2018-10-19 2022-05-03 Oracle International Corporation Assured lazy rollback for a multi-tenant identity cloud service
JP7337504B2 (en) 2019-01-18 2023-09-04 キヤノン株式会社 System, method and program
JP2020119015A (en) * 2019-01-18 2020-08-06 キヤノン株式会社 System, method, and program
US11651357B2 (en) 2019-02-01 2023-05-16 Oracle International Corporation Multifactor authentication without a user footprint
US11061929B2 (en) 2019-02-08 2021-07-13 Oracle International Corporation Replication of resource type and schema metadata for a multi-tenant identity cloud service
US11321343B2 (en) 2019-02-19 2022-05-03 Oracle International Corporation Tenant replication bootstrap for a multi-tenant identity cloud service
US11669321B2 (en) 2019-02-20 2023-06-06 Oracle International Corporation Automated database upgrade for a multi-tenant identity cloud service
CN111611550B (en) * 2019-02-22 2024-03-22 横河电机株式会社 Computer system, computer device and authorization management method
CN111611550A (en) * 2019-02-22 2020-09-01 横河电机株式会社 Computer system, computer device and authorization management method
US11423111B2 (en) 2019-02-25 2022-08-23 Oracle International Corporation Client API for rest based endpoints for a multi-tenant identify cloud service
US11792226B2 (en) 2019-02-25 2023-10-17 Oracle International Corporation Automatic api document generation from scim metadata
JP2020149121A (en) * 2019-03-11 2020-09-17 Necソリューションイノベータ株式会社 Personal authentication device, personal authentication method, program, and recording medium
US11870770B2 (en) 2019-09-13 2024-01-09 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration
US11687378B2 (en) 2019-09-13 2023-06-27 Oracle International Corporation Multi-tenant identity cloud service with on-premise authentication integration and bridge high availability
US11611548B2 (en) 2019-11-22 2023-03-21 Oracle International Corporation Bulk multifactor authentication enrollment
JP2020053100A (en) * 2019-12-27 2020-04-02 キヤノン株式会社 Information processing system, control method thereof and program
JP7043480B2 (en) 2019-12-27 2022-03-29 キヤノン株式会社 Information processing system and its control method and program
US11550671B2 (en) 2020-09-18 2023-01-10 Fujitsu Limited Backup management device, backup management method, and information processing system
CN113742705A (en) * 2021-08-30 2021-12-03 北京一砂信息技术有限公司 Method and system for realizing IFAA (Interface authentication and Access Association) number based authentication service
CN114338078A (en) * 2021-11-19 2022-04-12 奇安信科技集团股份有限公司 CS client login method and device
CN114338078B (en) * 2021-11-19 2024-03-22 奇安信科技集团股份有限公司 CS client login method and device

Similar Documents

Publication Publication Date Title
JP2016009299A (en) Single sign-on system, terminal device, control method and computer program
US20240080311A1 (en) Managing security credentials
JP6198477B2 (en) Authority transfer system, authorization server system, control method, and program
JP6668183B2 (en) Communication device, communication method, communication system and program
JP6904857B2 (en) Delegation system, control method, and program
US9571494B2 (en) Authorization server and client apparatus, server cooperative system, and token management method
JP6727799B2 (en) Authority delegation system, information processing device, authorization server, control method and program
CN110138718B (en) Information processing system and control method thereof
US8819795B2 (en) Presenting managed security credentials to network sites
CA2896169C (en) Method and apparatus for single sign-on collaboration among mobile devices
JP6061633B2 (en) Device apparatus, control method, and program thereof.
JP6141041B2 (en) Information processing apparatus, program, and control method
US10362019B2 (en) Managing security credentials
JP2017107342A (en) Authentication cooperation system, authentication cooperation method, authorization server, application server, and program
US20120311331A1 (en) Logon verification apparatus, system and method for performing logon verification
JP7030476B2 (en) Image processor, image processor control method, program, system, and system control method
US11924211B2 (en) Computerized device and method for authenticating a user
WO2020070807A1 (en) Identification system, identification method, application providing device, identification device, and identification program
US9838387B2 (en) Security token with embedded data
JP2017220113A (en) Authorization server, control method and program
JP6465426B1 (en) Electronic signature system, certificate issuing system, key management system, and electronic certificate issuing method
JP2016009466A (en) Web service system, authentication approval device, information processing device, information processing method, and program
JP2016115260A (en) Authority transfer system, authorization server used for authority transfer system, resource server, client, mediation device, authority transfer method and program
WO2022103823A1 (en) Efficient transfer of authentication credentials between client devices
JP2016139910A (en) Authentication system, authentication key management device, authentication key management method and authentication key management program