JP2018018157A - Information processing equipment for service provider side, information processing method and program - Google Patents

Information processing equipment for service provider side, information processing method and program Download PDF

Info

Publication number
JP2018018157A
JP2018018157A JP2016145632A JP2016145632A JP2018018157A JP 2018018157 A JP2018018157 A JP 2018018157A JP 2016145632 A JP2016145632 A JP 2016145632A JP 2016145632 A JP2016145632 A JP 2016145632A JP 2018018157 A JP2018018157 A JP 2018018157A
Authority
JP
Japan
Prior art keywords
address
authentication
information processing
single sign
service provider
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
JP2016145632A
Other languages
Japanese (ja)
Inventor
小林 真琴
Makoto Kobayashi
真琴 小林
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 JP2016145632A priority Critical patent/JP2018018157A/en
Publication of JP2018018157A publication Critical patent/JP2018018157A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

PROBLEM TO BE SOLVED: To realize a consistent IP address restriction, as well as to prevent unnecessary processing.SOLUTION: Information processing equipment includes: receiving means configured to receive an authentication message from a client device; and control means configured to omit restriction processing of the IP address if it is determined as single sign-on according to the authentication message, and to execute restriction processing of the IP address if it is determined as not single sign-on according to the authentication message.SELECTED DRAWING: Figure 6

Description

本発明は、サービスプロバイダー側の情報処理装置、情報処理方法及びプログラムに関する。   The present invention relates to an information processing apparatus, an information processing method, and a program on a service provider side.

現在WebブラウザーからRESTを用いたAPIアクセスでクラウドサービスを利用する形態がデファクトスタンダードになりつつある。この背景としては、モバイルの普及やブラウザーOSの登場といったトレンドが影響している。
ビジネス利用のクラウドサービスの場合、社内アクセスは可だが社外からのアクセスは禁止したい、要望がある。この場合、IPアドレスによるアクセス禁止手段が考えられる。従来、ネットワークアクセスに対するシングルサインオン(SSO)を確立すると共に、ネットワークにおけるアクセス制限を行うが提案されている(特許文献1)。シングルサインオンの際のIPアドレスによるアクセス制限方法では、IDプロバイダー(IdP)とサービスプロバイダー(SP)との両者でIPアドレスによるアクセス制限をした際の一貫したアクセス制限の挙動を可能にする。
Currently, the form of using cloud services by API access using REST from a web browser is becoming the de facto standard. This is influenced by trends such as the spread of mobile and the appearance of browser OS.
In the case of cloud services for business use, there is a request that internal access is possible but access from outside the company is prohibited. In this case, access prohibition means using an IP address can be considered. Conventionally, it has been proposed to establish single sign-on (SSO) for network access and to restrict access in the network (Patent Document 1). The access restriction method based on the IP address at the time of single sign-on enables a consistent access restriction behavior when both the ID provider (IdP) and the service provider (SP) restrict access by the IP address.

特開2008−219266号公報JP 2008-219266 A

シングルサインオン(SSO)設定を行い、IDプロバイダー(IdP)側のIPアドレス制限が掛かっている場合に、サービスプロバイダー(SP)側でもIPアドレス制限をしたとする。この場合、SSO時に2回、IPアドレス制限のチェックが必要になる。
本発明は、整合性のあるIPアドレス制限を実現すると共に無駄な処理を防止することを目的とする。
It is assumed that the IP address is restricted on the service provider (SP) side when the single sign-on (SSO) setting is performed and the IP address restriction on the ID provider (IdP) side is applied. In this case, it is necessary to check the IP address restriction twice during SSO.
An object of the present invention is to realize consistent IP address restriction and prevent wasteful processing.

本発明のサービスプロバイダー側の情報処理装置は、認証メッセージをクライアント装置より受信する受信手段と、前記認証メッセージに基づいてシングルサインオンであると判定された場合、IPアドレスの制限処理を省略し、前記認証メッセージに基づいてシングルサインオンでないと判定された場合、IPアドレスの制限処理を実行する制御手段と、を有する。   The information processing device on the service provider side of the present invention omits the IP address restriction process when it is determined that the single sign-on is based on the receiving means that receives the authentication message from the client device and the authentication message, And a control unit that executes IP address restriction processing when it is determined that the single sign-on is not performed based on the authentication message.

本発明によれば、整合性のあるIPアドレス制限を実現すると共に無駄な処理を防止することができる。   According to the present invention, it is possible to realize consistent IP address restriction and prevent wasteful processing.

SSOシステムのシステム構成の一例を示す図である。It is a figure which shows an example of the system configuration | structure of an SSO system. クライアントPCのハードウェア構成の一例を示す図である。It is a figure which shows an example of the hardware constitutions of client PC. ソフトウェア構成の一例を示す図である。It is a figure which shows an example of a software structure. SSOの際の情報処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the information processing in the case of SSO. IdP側ログイン処理の一例を示すフローチャートである。It is a flowchart which shows an example of an IdP side login process. 実施形態1のSP側ログイン処理の一例を示すフローチャートである。4 is a flowchart illustrating an example of SP-side login processing according to the first embodiment. ログインシーケンス図である。It is a login sequence diagram. 実施形態2のSP側ログイン処理の一例を示すフローチャートである。10 is a flowchart illustrating an example of SP-side login processing according to the second embodiment.

以下、本発明の実施形態について図面に基づいて説明する。
以下に示す実施形態のシングルサインオンシステムは、SAML2.0仕様に従ったシングルサインオン(以下、SSOという)設定を行い、SSOを行う。この際、IDプロバイダー(以下、IdPという)においては、アクセス元IPアドレスを判定してIPアドレスによるアクセス制限を行うことができる。また同様に、本実施形態のサービスプロバイダー(以下、SPという)においてもIdPと同様のアクセス元IPアドレス判定によるアクセス制限を行うことができる。
ところが、もしIPアドレス制限の設定がIdP側とSP側とで各々異なる場合、即ちSSO設定を行っているユーザーが、IdP側とSP側とで異なるIPアドレスの制限をかけた場合、使用者が混乱する可能性がある。例えば、SPでIPアドレス制限をかけてIdPでIPアドレス制限をかけていない場合、IdPの認証は成功したにもかからず、SSOの過程においてSPでIPアドレス制限されてしまうことになる。また逆に、IdPでIPアドレス制限をかけてSPで制限をかけていない場合、以下のような問題が生じ得る。即ち、直接、SPにログインした際のサービス利用は制限されなくてもWebブラウザー等でログイン(SSO)してからSPを利用しようとすると、IdPの認証時点でIPアドレス制限にかかってしまう問題である。
このように、SSO時にIdP及びSPで個別にIPアドレス制限が可能であるようなSSOシステムにおいて、IdP側とSP側とで各々異なるIPアドレス制限を行うと、利用者から見てIPアドレス制限について一貫した挙動を示さない場合がある。
以下に示す実施形態のSSOシステムは、IdP及びSPで個別にIPアドレス制限をした場合、利用者から見てSSO時のIPアドレス制限について一貫した挙動をする。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
The single sign-on system of the embodiment described below performs single sign-on (hereinafter referred to as SSO) setting according to the SAML 2.0 specification, and performs SSO. At this time, an ID provider (hereinafter referred to as IdP) can determine an access source IP address and perform access restriction based on the IP address. Similarly, the service provider (hereinafter referred to as SP) of the present embodiment can perform access restriction based on access source IP address determination similar to IdP.
However, if the IP address restriction settings are different on the IdP side and the SP side, that is, if the user performing the SSO settings places different IP address restrictions on the IdP side and the SP side, the user May be confused. For example, when the IP address is restricted by the SP and the IP address is not restricted by the IdP, the IP address is restricted by the SP during the SSO process even though the IdP authentication is successful. Conversely, if IP addresses are restricted by IdP but not by SP, the following problems may occur. In other words, even if the service use when logging in directly to the SP is not restricted, if you try to use the SP after logging in (SSO) with a Web browser or the like, the IP address restriction will be imposed at the time of IdP authentication. is there.
In this way, in an SSO system in which IP address restrictions can be made individually at the IdP and SP during SSO, if IP address restrictions differ between the IdP side and the SP side, the IP address restriction is viewed from the user's perspective. May not show consistent behavior.
The SSO system of the embodiment described below behaves consistently with respect to IP address restriction at the time of SSO when viewed from the user when IP address restriction is performed individually for IdP and SP.

図1は、SSOシステムのシステム構成の一例を示す図である。
WAN100は、Wide Area Networkであり、本明細書ではWorld Wide Web(WWW)システムが構築されている。LAN101、102、103は、各構成要素を接続するLocal Area Networkである。
クライアントPC200は、ユーザーが操作するクライアントPCである。またIDプロバイダー300は、SSOのユーザー認証処理を行うIDプロバイダーである。更にサービスプロバイダー400は、SSO等でログインした−ユーザーにサービスを提供するサービスプロバイダーである。サービスプロバイダー400は、例えば、クラウド上で帳票作成サービスや印刷データ生成サービスを行う。なお、IDプロバイダー300は、IDプロバイダー側の情報処理装置の一例である。また、サービスプロバイダー400は、サービスプロバイダー側の情報処理装置の一例である。
またクライアントPC200、IDプロバイダー300、サービスプロバイダー400はそれぞれWAN100及びLAN101、LAN102、LAN103を介して接続されている。クライアントPC200及びIDプロバイダー300のID認証サービスやサービスプロバイダー400の帳票生成や印刷データ生成サービス等のそれぞれのサービスはそれぞれ個別のLAN上に構成されていてもよいし同一のLAN上に構成されていてもよい。また、同一のPC上に構成されていてもよい。
IDプロバイダー300とサービスプロバイダー400とは、Security Assertion Markup Language 2.0 (SAML 2.0)仕様に従うシングルサインオン動作を行う。SAMLとは、非営利国際コンソーシアムOASISで策定されたインターネット上でIDやパスワード等を交換するためのXML仕様である。OASISは、Organization for the Advancement of Structured Information Standardsの略である。
本実施形態においては、IDプロバイダー300とサービスプロバイダー400との両者で、各々のサーバへのログイン、シングルサインオン時のアクセス元IPアドレスによるサーバへのアクセス制限機能を有する。またサービスプロバイダー400は、SSO以外にサービスプロバイダー400への直接のログイン機能を有している。
FIG. 1 is a diagram illustrating an example of a system configuration of an SSO system.
The WAN 100 is a Wide Area Network, and in this specification, a World Wide Web (WWW) system is constructed. LANs 101, 102, and 103 are local area networks that connect each component.
The client PC 200 is a client PC operated by the user. The ID provider 300 is an ID provider that performs SSO user authentication processing. Furthermore, the service provider 400 is a service provider who provides a service to a user who has logged in with SSO or the like. The service provider 400 performs a form creation service and a print data generation service on the cloud, for example. The ID provider 300 is an example of an information processing apparatus on the ID provider side. The service provider 400 is an example of an information processing apparatus on the service provider side.
The client PC 200, the ID provider 300, and the service provider 400 are connected via the WAN 100, the LAN 101, the LAN 102, and the LAN 103, respectively. The services such as the ID authentication service of the client PC 200 and the ID provider 300 and the form generation and print data generation services of the service provider 400 may be configured on individual LANs or on the same LAN. Also good. Moreover, you may be comprised on the same PC.
The ID provider 300 and the service provider 400 perform a single sign-on operation according to the Security Assession Markup Language 2.0 (SAML 2.0) specification. SAML is an XML specification for exchanging IDs, passwords, and the like on the Internet formulated by the non-profit international consortium OASIS. OASIS is an abbreviation for Organization for the Advancement of Structured Information Standards.
In the present embodiment, both the ID provider 300 and the service provider 400 have a function of restricting access to the server based on an access source IP address at the time of login to each server and single sign-on. The service provider 400 has a direct login function to the service provider 400 in addition to the SSO.

図2は、クライアントPC200のハードウェア構成の一例を示す図である。IDプロバイダー300、サービスプロバイダー400のサーバコンピューターのハードウェア構成も同様である。図2に示されるハードウェア構成は一般的な情報処理装置のハードウェア構成に相当するものとし、本実施形態のクライアントPC200及びサーバコンピューターには一般的な情報処理装置のハードウェア構成を適用できる。
CPU201は、ROM203のプログラム用ROMに記憶された、又はハードディスク211からRAM202にロードされたOSやアプリケーション等のプログラムを実行する。ここでOSとはコンピュータ上で稼動するオペレーティングシステムの略語であり、以下オペレーティングシステムのことをOSという。CPU201が、プログラムに基づき処理を実行することにより、クライアントPC200のソフトウェア構成及び後述する図4、図7のシーケンス図のクライアントPC200の処理が実現される。キーボードコントローラ(KBC)205は、キーボード(KB)209やポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)206は、CRTディスプレイ208の表示を制御する。ディスクコントローラ(DKC)207は各種データを記憶するハードディスク(HD)211やフレキシブルディスク(FD)等におけるデータアクセスを制御する。NC212は、ネットワークに接続されて、ネットワークに接続された他の機器との通信制御処理を実行する。
FIG. 2 is a diagram illustrating an example of a hardware configuration of the client PC 200. The hardware configurations of the server computers of the ID provider 300 and the service provider 400 are the same. The hardware configuration shown in FIG. 2 corresponds to the hardware configuration of a general information processing apparatus, and the hardware configuration of a general information processing apparatus can be applied to the client PC 200 and the server computer of this embodiment.
The CPU 201 executes programs such as an OS and applications stored in the program ROM of the ROM 203 or loaded from the hard disk 211 to the RAM 202. Here, the OS is an abbreviation for an operating system running on a computer, and the operating system is hereinafter referred to as an OS. When the CPU 201 executes processing based on the program, the software configuration of the client PC 200 and the processing of the client PC 200 in the sequence diagrams of FIGS. 4 and 7 described later are realized. A keyboard controller (KBC) 205 controls key input from a keyboard (KB) 209 or a pointing device. A CRT controller (CRTC) 206 controls display on a CRT display 208. A disk controller (DKC) 207 controls data access in a hard disk (HD) 211 or a flexible disk (FD) that stores various data. The NC 212 is connected to the network and executes communication control processing with other devices connected to the network.

IDプロバイダー300のCPUがIDプロバイダーのハードディスク等に記憶されたプログラムに基づき処理を実行することにより、IDプロバイダー300のソフトウェア構成及び後述する図4のシーケンス図のIDプロバイダー300の処理が実現される。また、IDプロバイダー300のCPUがIDプロバイダーのハードディスク等に記憶されたプログラムに基づき処理を実行することにより、後述する図5のフローチャートの処理が実現される。
また、サービスプロバイダー400のCPUがサービスプロバイダー400のハードディスク等に記憶されたプログラムに基づき処理を実行することにより、サービスプロバイダー400のソフトウェア構成が実現される。また、サービスプロバイダー400のCPUがサービスプロバイダー400のハードディスク等に記憶されたプログラムに基づき処理を実行することにより、後述する図4、図7のシーケンス図のサービスプロバイダー400の処理が実現される。また、サービスプロバイダー400のCPUがサービスプロバイダー400のハードディスク等に記憶されたプログラムに基づき処理を実行することにより、後述する図6、図8のフローチャートの処理が実現される。
When the CPU of the ID provider 300 executes processing based on a program stored in the hard disk or the like of the ID provider, the software configuration of the ID provider 300 and the processing of the ID provider 300 in the sequence diagram of FIG. 4 to be described later are realized. Further, the CPU of the ID provider 300 executes the processing based on a program stored in the ID provider hard disk or the like, thereby realizing the processing of the flowchart of FIG.
Further, the software configuration of the service provider 400 is realized by the CPU of the service provider 400 executing processing based on a program stored in the hard disk or the like of the service provider 400. Also, the processing of the service provider 400 in the sequence diagrams of FIGS. 4 and 7 described later is realized by the CPU of the service provider 400 executing the processing based on the program stored in the hard disk or the like of the service provider 400. Further, the processing of the flowcharts of FIGS. 6 and 8 to be described later is realized by the CPU of the service provider 400 executing the processing based on the program stored in the hard disk or the like of the service provider 400.

図3は、クライアントPC200、IDプロバイダー300、サービスプロバイダー400の、それぞれのソフトウェア構成の一例を示す図である。
OS210は、一般的にはリアルタイムOSであってもよいし、Linux(登録商標)等の汎用OSであってもよい。更に、クライアントPC200は、WWWを利用するためのユーザーエージェントであるWebブラウザー220を備える。また、クライアントPC200は、Webブラウザー220を介さずにHTTPプロトコルを用いたWeb APIサーバを利用するWeb API クライアント230を備える。更に、クライアントPC200は、Web APIを利用するアプリケーションであるアプリケーションクライアント240を備える。アプリケーションクライアント240は、例えば後述するサービスプロバイダー400の提供する帳票生成や印刷データ生成の機能をWeb APIで提供するWeb APIサービスを利用するアプリケーションである。
FIG. 3 is a diagram illustrating an example of software configurations of the client PC 200, the ID provider 300, and the service provider 400.
The OS 210 may generally be a real-time OS or a general-purpose OS such as Linux (registered trademark). The client PC 200 further includes a web browser 220 that is a user agent for using the WWW. The client PC 200 includes a Web API client 230 that uses a Web API server using the HTTP protocol without using the Web browser 220. Furthermore, the client PC 200 includes an application client 240 that is an application that uses a Web API. The application client 240 is an application that uses a Web API service that provides functions of form generation and print data generation provided by the service provider 400, which will be described later, using a Web API.

IDプロバイダー300は、クライアントPC200と同様のOS310を持つ。更にIDプロバイダー300は、Web APIサーバ320を持つ。Web APIサーバ320は、後述するクライアントPC200からリダイレクトされたSSO要求を受け付ける。IDプロバイダー300は、SSO要求やユーザー認証を行う認証モジュール330を持ち、更に認証モジュール330が利用する認証関連情報を保持するデータベース(DB)モジュール340を持つ。また、IDプロバイダー300は、Web APIサーバ320、認証モジュール330、DBモジュール340を利用してIDプロバイダー300のユーザーによるログインを受け付け、SSO設定、管理を行うSSO管理モジュール350を持つ。   The ID provider 300 has the same OS 310 as the client PC 200. Further, the ID provider 300 has a Web API server 320. The Web API server 320 receives an SSO request redirected from a client PC 200 described later. The ID provider 300 includes an authentication module 330 that performs SSO request and user authentication, and further includes a database (DB) module 340 that stores authentication-related information used by the authentication module 330. Further, the ID provider 300 has an SSO management module 350 that accepts login by a user of the ID provider 300 using the Web API server 320, the authentication module 330, and the DB module 340, and performs SSO setting and management.

サービスプロバイダー400は、クライアントPC200と同様のOS410を持つ。更にサービスプロバイダー400は、Web APIサーバ420を持つ。Web APIサーバ420は、後述するクライアントPC200からのSSO要求やサービス要求を受け付ける。サービスプロバイダー400は、SSO要求やユーザー認証を行う認証モジュール430を持ち、更に認証モジュール430が利用する認証関連情報を保持するデータベース(DB)モジュール440を持つ。また、サービスプロバイダー400は、Web APIサーバ420、認証モジュール430、DBモジュール440を利用してサービスプロバイダー400のユーザーによるログインを受け付け、SSO設定、管理を行うSSO管理モジュール450を持つ。更にサービスプロバイダー400は、アプリケーション機能を実現するモジュールであるアプリケーションサーバ460を持つ。アプリケーションサーバ460は、例えば、OAuth認証ライブラリ、帳票フォーマット作成ライブラリ、印刷データ変換アプリケーション等である。   The service provider 400 has the same OS 410 as that of the client PC 200. Further, the service provider 400 has a Web API server 420. The Web API server 420 accepts an SSO request and a service request from the client PC 200 described later. The service provider 400 includes an authentication module 430 that performs SSO request and user authentication, and further includes a database (DB) module 440 that stores authentication-related information used by the authentication module 430. Further, the service provider 400 has an SSO management module 450 that accepts login by a user of the service provider 400 using the Web API server 420, the authentication module 430, and the DB module 440, and performs SSO setting and management. Further, the service provider 400 has an application server 460 that is a module for realizing an application function. The application server 460 is, for example, an OAuth authentication library, a form format creation library, a print data conversion application, or the like.

<実施形態1>
[IdP、SP両者にIPアドレス制限がある場合のSSOの際にSP側のIPアドレス制限を省略する]
図4は、SSOの際の情報処理の一例を示すシーケンス図である。本実施形態のSSOシーケンスは基本的にSAML2.0仕様に従い、認証のシーケンスがSPへのアクセスから始まるSP initiatedなSSOシーケンスである。また通信方式は、SAMLメッセージをHTTPプロトコルにマッピングするHTTPバインディングを用いる。但し、本実施形態においては、IdP側とSP側との両者で、アクセスユーザーのアクセス元IPアドレスを判定し、予め登録されているアクセス許可IPアドレス以外からのアクセスを拒否する機能を有する。
[SSOにおけるIdPとSPとの信頼関係の構築]
図4のSSOシーケンスが始まる以前に、SAML2.0仕様準拠に必要なIdP側及びSP側の準備(信頼関係の構築)ができているものとする。即ち、SPが信頼するIdPの登録と、IdPが信頼するSPの登録と、を各々行っているものとする。より具体的には以下のように登録を行う。
[IdP側:信頼するSPの登録]
IdP側の信頼するSPの登録とは、IdPのユーザーがIdPにログインし、IdPのSSO管理モジュール350のSSO管理機能を用いて信頼するSPの情報(SPメタデータ)を登録することである。IdPのSSO管理モジュール350は、ユーザーに紐付けてSPメタデータ情報及び秘密鍵をDBモジュール340に保持する。
IdP側に登録する主な情報は、以下のようなものである。
・SPが認証応答メッセージを受け取るエンドポイントのURL
・SSOユーザー毎の、認証応答メッセージの署名に使用するIdP秘密鍵
本実施形態においてはSSOを行うユーザーが情報を、SSO管理モジュール350を用いて以下の表1のようなメタデータとしてIdP側に登録する。
<Embodiment 1>
[The IP address restriction on the SP side is omitted during SSO when there are IP address restrictions on both IdP and SP]
FIG. 4 is a sequence diagram illustrating an example of information processing during SSO. The SSO sequence of this embodiment is basically an SP-initiated SSO sequence in which the authentication sequence starts from access to the SP according to the SAML 2.0 specification. The communication method uses HTTP binding that maps the SAML message to the HTTP protocol. However, in the present embodiment, both the IdP side and the SP side have a function of judging the access source IP address of the access user and rejecting access from other than the access permission IP address registered in advance.
[Construction of trust relationship between IdP and SP in SSO]
Before the SSO sequence of FIG. 4 starts, it is assumed that preparations (establishment of trust relationship) on the IdP side and SP side necessary for conforming to the SAML 2.0 specification are completed. That is, it is assumed that the registration of the IdP trusted by the SP and the registration of the SP trusted by the IdP are performed. More specifically, registration is performed as follows.
[IdP side: registration of trusted SP]
The trusted SP registration on the IdP side means that an IdP user logs in to the IdP and registers trusted SP information (SP metadata) using the SSO management function of the SSO management module 350 of the IdP. The IdP SSO management module 350 holds the SP metadata information and the secret key in the DB module 340 in association with the user.
The main information registered on the IdP side is as follows.
The URL of the endpoint where the SP receives the authentication response message
-IdP private key used for signing an authentication response message for each SSO user In this embodiment, the user who performs SSO uses the SSO management module 350 to send information to the IdP side as metadata as shown in Table 1 below. sign up.

(表1:IdPに登録するSPメタデータ)

<md:EntityDescriptor entityID="https://sp.example.com">
<md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid−format:unspecified
</md:NameIDFormat>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP−POST" Location="https://sp.example.com/endp/saml/acs" index="0"/>
</md:SPSSODescriptor>
</md:EntityDescriptor>
(Table 1: SP metadata registered in IdP)
"
<Md: Entity Descriptor entityID = "https://example.com">
<Md: SPSSODscriptor protocolSupportEnumeration = “urn: oasis: names: tc: SAML: 2.0: protocol”>
<Md: NameIDFormat>
urn: oasis: names: tc: SAML: 1.1: nameid-format: unspecified
</ Md: NameIDFormat>
<Md: AssertionConsumerServiceBinding = “urn: oasis: names: tc: SAML: 2.0: bindings: HTTP-POST” Location = “https://example.com/endp/samp/acs” 0 ” "/>
</ Md: SPSSODDescriptor>
</ Md: Entity Descriptor>
"

表1のSPメタデータは、SPが認証応答メッセージを受け取るエンドポイントのURLであるAssertionConsumerServiceのHTTP−POST(<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP−POST" Location="https://sp.example.com/endp/saml/acs" index="0"/>)を含む。
またSSO管理モジュール350は、SPメタデータ登録の際にSSOユーザー毎の、認証応答メッセージの署名に使用するIdP秘密鍵と、IdP秘密鍵に対応して後述する認証応答メッセージの署名を検証するための公開鍵と、を生成する。
IdPのSSO管理モジュール350は、表1のSPメタデータ、及び認証応答メッセージの署名に使用するIdP秘密鍵を、SSOユーザーに紐付けて、DBモジュール340に保持する。
IdP側にSSO設定を行うユーザーが表1のSPメタデータをIdPに登録する際、IdPのSSO管理モジュール350は、SP側に信頼するIdPとして登録するための、自身のIdPメタデータを出力する。SP側に信頼するIdPを設定するユーザーは、IdPメタデータ(詳細は後述)をSP側に登録する。
The SP metadata in Table 1 is HTTP-POST (<md: AssertionConsumerServiceBinding = “urn: oasis: names: tc: SAML: 2.0: bindings :) of the AssertionConsumerService that is the URL of the endpoint at which the SP receives the authentication response message. HTTP-POST "Location =" https://example.com/endp/sam/acs "index =" 0 "/>).
The SSO management module 350 verifies the IdP private key used for signing the authentication response message for each SSO user and the signature of the authentication response message described later corresponding to the IdP private key when registering the SP metadata. Generate a public key.
The SSO management module 350 of the IdP holds the SP metadata in Table 1 and the IdP private key used for signing the authentication response message in the DB module 340 in association with the SSO user.
When a user who makes SSO settings on the IdP side registers the SP metadata in Table 1 in the IdP, the SSO management module 350 of the IdP outputs its own IdP metadata for registration as an IdP trusted on the SP side. . A user who sets a trusted IdP on the SP side registers IdP metadata (details will be described later) on the SP side.

[SP側:信頼するIdPの登録]
SP側の信頼するIdPの登録とは、SPのユーザーがSPにログインし、SPのSSO管理モジュール450のSSO管理機能を用いて信頼するIdPの情報を登録することである。SPのSSO管理モジュール450は、ユーザーに紐付けてIdPメタデータ情報及び秘密鍵をDBモジュール440に保持する。
SPに登録する主な情報は以下のようなものである。
・IdPが認証要求を受け付けるURL
・IdPの公開鍵(IdPからの認証応答に含まれる、IdP秘密鍵による署名検証用)
本実施形態においては、SSOを行うユーザーが情報を以下の表2のようなIdPメタデータとしてSP側に登録する。
[SP side: Registration of trusted IdP]
The trusted IdP registration on the SP side means that the SP user logs in to the SP and registers the trusted IdP information using the SSO management function of the SSO management module 450 of the SP. The SP SSO management module 450 holds the IdP metadata information and the secret key in the DB module 440 in association with the user.
The main information registered in the SP is as follows.
-URL where IdP accepts authentication requests
-IdP public key (for signature verification using the IdP private key included in the authentication response from the IdP)
In this embodiment, a user who performs SSO registers information on the SP side as IdP metadata as shown in Table 2 below.

(表2:SPに登録するIdPメタデータ)

<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" entityID="https://matsuga−developer−edition.my.salesforce.com"validUntil="2025−04−02T05:46:23.311Z">
<md:IDPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIEXjCCA0agAwIBAgIOAUJE1fnCAAAAAGXasyIwDQYJKoZIhvcNAQEFBQAweD

2kYLFIM7s3Ss/d+UV7MhgFmTP+LuCjSSUvk2EQdZ86Gx5ALt4+lkBwBKqCVtu
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid−format:unspecified
</md:NameIDFormat>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP−POST" Location="https://idp.example.com/idp/endp/HttpPost"/>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP−Redirect" Location="https://idp.example.com/idp/endp/HttpRedirect"/>
</md:IDPSSODescriptor>
</md:EntityDescriptor>
(Table 2: IdP metadata registered in SP)
"
<Md: EntityDescriptor xmlns: md = "urn: oasis: names: tc: SAML: 2.0: metadata" xmlns: ds = "http://www.w3.org/2000/09/xmlsig#" entityID " https://mashuga-developer-edition.my.salesforce.com “validUntil =” 2025-04-02T05: 46: 23.311Z ”>
<Md: IDPSSODescriptor protocolSupportNumeration = “urn: oasis: names: tc: SAML: 2.0: protocol”>
<Md: KeyDescriptor use = “signing”>
<Ds: KeyInfo>
<Ds: X509Data>
<Ds: X509 Certificate>
MIIEXjCCA0agAwIBAGIOAUJE1fnCAAAAAAGXasyIwDQYJKoZIhvcNAQEFBQAweD
:
2kYLFIM7s3Ss / d + UV7MhgFmTP + LuCjSSUvk2EQdZ86Gx5ALt4 + lkBwBKqCVtu
</ Ds: X509 Certificate>
</ Ds: X509Data>
</ Ds: KeyInfo>
</ Md: KeyDescriptor>
<Md: NameIDFormat>
urn: oasis: names: tc: SAML: 1.1: nameid-format: unspecified
</ Md: NameIDFormat>
<Md: SingleSignOnService Binding = “urn: oasis: names: tc: SAML: 2.0: bindings: HTTP-POST” Location = “https://example.com/idp/endp/Http>”
<Md: SingleSignOnServiceBinding = “urn: oasis: names: tc: SAML: 2.0: bindings: HTTP-Redirect” Location = “https://idp.example.com/idp/endp/rtp/rtp/rtp/rtp/rtp/rtp/rtp/rtp/rtp
</ Md: IDPSSODescriptor>
</ Md: Entity Descriptor>
"

表2のIdPメタデータは、IdPが認証要求を受け付けるURLであるSingleSignOnServiceのHTTP−POST(<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP−POST" Location="https://idp.example.com/idp/endp/HttpPost"/>)とHTTP−Redirect(<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP−Redirect"Location="https://idp.example.com/idp/endp/HttpRedirect"/>)を含む。また、IdPメタデータは、IdPの公開鍵を含むX.509形式の公開鍵証明書(<ds:X509Certificate>)を含む。なお、HTTP−POSTはHTTPプロトコルのPOSTメッセージで認証要求を受けるエンドポイントを示す。本実施形態の場合、認証要求はPOSTメッセージで行われる。またHTTP−RedirectはHTTPプロトコルのGETメッセージで認証要求を受けるエンドポイントを示す。もしGETメッセージで認証要求を行う場合、認証メッセージはURLのクエリーパラメーターに付与されることになる。
SPのSSO管理モジュール450は、表2のIdPメタデータを、SSOユーザーに紐付けて、DBモジュール440に保持する。
The IdP metadata in Table 2 includes the SingleSignOnService HTTP-POST (<md: SingleSignOnService Binding = “urn: oasis: names: tc: SAML: 2.0: bindings: HTTP: STP: STP: STP: STP”) Location = “https://idp.example.com/idp/endp/HttpPost” />) and HTTP-Redirect (<md: SingleSignOnService Binding = “urn: oasis: names: tc: SAML: 2.0: SAML: b: HTTP-Redirect “Location =” https://idp.example.com/idp/endp / HttpRedirect "/>). In addition, the IdP metadata includes X.X including an IdP public key. 509 format public key certificate (<ds: X509 Certificate>). Note that HTTP-POST indicates an endpoint that receives an authentication request by a POST message of the HTTP protocol. In the case of this embodiment, the authentication request is made with a POST message. HTTP-Redirect indicates an endpoint that receives an authentication request with a GET message of the HTTP protocol. If an authentication request is made with a GET message, the authentication message is added to the URL query parameter.
The SP SSO management module 450 associates the IdP metadata in Table 2 with the SSO user and holds the IdP metadata in the DB module 440.

[IPアドレス制限の設定]
図4のSSOシーケンスが始まる以前に、IPアドレス制限に必要なIdP側及びSP側の準備(IPアドレス制限の設定)ができているものとする。即ち、IdPのユーザーによる、IdPのSSO管理モジュール350のSSO管理機能を用いた、IdPがユーザーに対し接続を許可するアクセス元IPアドレスの登録を行っているものとする。また、SPのユーザーによる、SPのSSO管理モジュール450のSSO管理機能を用いた、SPがユーザーに対し接続を許可するアクセス元IPアドレスの登録を行っているものとする。より具体的には以下のように設定を行う。
[IP address restriction settings]
Before the SSO sequence shown in FIG. 4 starts, it is assumed that preparations on the IdP side and SP side necessary for IP address restriction (setting of IP address restriction) are completed. That is, it is assumed that an IdP user has registered an access source IP address that allows a user to connect using the SSO management function of the IdP SSO management module 350. In addition, it is assumed that the SP user has registered the access source IP address that permits the user to connect using the SSO management function of the SP SSO management module 450. More specifically, the setting is performed as follows.

[IdP側:IPアドレス制限の設定]
IdP側のIPアドレス制限の設定とは、IdPのユーザーがIdPにログインし、IdPのSSO管理モジュール350によりIdPのIPアドレス制限管理機能を用いて、管理対象ユーザーに対しIdPにアクセス可能なアクセス元IPアドレスを登録することである。登録するIPアドレスは、個々のIPアドレスでもよいし、IPアドレス範囲でもよい。
IdPのIPアドレス制限設定は、IdPの内部のDBモジュール340に存在する以下のようなIPアドレス制限設定テーブルで管理される。
(表3:IdP側IPアドレス制限設定テーブル)

ユーザーID:アクセス許可IPアドレス
User0001:192.168.*.*
User0001:172.16.0.* − 172.20.0.*

表3のIdP側IPアドレス制限設定テーブルは、User0001がIdPにアクセスする際、アクセス元IPアドレスとして192.168.0.0/16の範囲と172.16.0.0から172.20.0.255までのIPアドレス範囲とを許可する。
[IdP side: IP address restriction setting]
The IdP side IP address restriction setting means that an IdP user logs in to the IdP, and the IdP SSO management module 350 uses the IdP IP address restriction management function to access the IdP for the managed user. It is to register an IP address. The IP address to be registered may be an individual IP address or an IP address range.
The IdP IP address restriction setting is managed by the following IP address restriction setting table existing in the DB module 340 inside the IdP.
(Table 3: IdP side IP address restriction setting table)
"
User ID: Access-permitted IP address User0001: 192.168 .. *. *
User0001: 172.16.0. * − 172.20.0. *
"
The IdP side IP address restriction setting table in Table 3 shows that when User0001 accesses IdP, the range of 192.168.0.0/16 and 172.16.0.0 to 172.20.0 as the access source IP address. Allow IP address range up to 255.

[SP側:IPアドレス制限の設定]
SP側のIPアドレス制限の設定とは、SPのユーザーがSPにログインし、SPのSSO管理モジュール450によりSPのIPアドレス制限管理機能を用いて、管理対象ユーザーに対しSPにアクセス可能なアクセス元IPアドレスを登録することである。登録するIPアドレスは、個々のIPアドレスでもよいし、IPアドレス範囲でもよい。
SPのIPアドレス制限設定は、SPの内部のDBモジュール440に存在する以下のようなIPアドレス制限設定テーブルで管理される。
(表4:SP側IPアドレス制限設定テーブル)

ユーザーID:アクセス許可IPアドレス
User0001:192.168.*.*
User0001:172.16.0.* − 172.20.0.*

表4のSP側IPアドレス制限設定テーブルは、User0001がSPにアクセスする際、アクセス元IPアドレスとして192.168.0.0/16の範囲と、172.16.0.0から172.20.0.255までのIPアドレス範囲と、を許可する。
上述した[SSOにおけるIdPとSPとの信頼関係の構築]と[IPアドレス制限の設定]とが完了した上で、図4のSSOシーケンスの情報処理が開始可能になる。
[SP side: IP address restriction setting]
The setting of the IP address restriction on the SP side means that the SP user logs in to the SP, and the SP's SSO management module 450 uses the SP's IP address restriction management function to access the SP to the management target user. It is to register an IP address. The IP address to be registered may be an individual IP address or an IP address range.
The IP address restriction setting of the SP is managed by the following IP address restriction setting table existing in the DB module 440 inside the SP.
(Table 4: SP side IP address restriction setting table)
"
User ID: Access-permitted IP address User0001: 192.168 .. *. *
User0001: 172.16.0. * − 172.20.0. *
"
The SP-side IP address restriction setting table of Table 4 shows that when User0001 accesses the SP, the access source IP address ranges from 192.168.0.0/16 and 172.16.0.0 to 172.20. IP address range up to 0.255 is allowed.
After the above-described [Building Trust Relationship between IdP and SP in SSO] and [Setting IP Address Restriction] are completed, the information processing of the SSO sequence in FIG. 4 can be started.

図4の本実施形態のSSOシーケンスは、以下のことより始まる。即ち、ユーザーの操作に基づき、クライアントPC200上のWebブラウザー220は、サービスプロバイダー400のアプリケーションサーバ460を利用するために、サービスプロバイダー400のURLにアクセスする(S4.1)。URLは、以下のようなものである。
(表5:RelayState URL)

https://application.sp.example.com/portal.html
The SSO sequence of this embodiment of FIG. 4 starts from the following. That is, based on a user operation, the web browser 220 on the client PC 200 accesses the URL of the service provider 400 in order to use the application server 460 of the service provider 400 (S4.1). The URL is as follows.
(Table 5: RelayState URL)
"
https: // application. sp. example. com / portal. html
"

今、ユーザーはSSO設定されており、かつ、未ログイン状態にあるため、サービスプロバイダー400のSSO管理モジュール450は、認証要求メッセージ(SAML Request)及びリダイレクト用HTMLを生成する(S4.2)。認証要求メッセージは以下の表6のようなものである。
(表6:認証要求メッセージ(SAML Requesst))

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="pfx41d8ef22−e612−8c50−9960−1b16f15741b3" Version="2.0" ProviderName="SP test" IssueInstant="2016−07−16T23:52:45Z" Destination="http://idp.example.com/SSOService.php" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP−POST" AssertionConsumerServiceURL="http://sp.example.com/demo1/index.php?acs">
<saml:Issuer>http://sp.example.com/demo1/metadata.php</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml−exc−c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa−sha1"/>
<ds:Reference URI="#pfx41d8ef22−e612−8c50−9960−1b16f15741b3">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped−signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml−exc−c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>yJN…YFI=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>g5eM9yPnKsmm…YgmB3socPqAi2Qf97E=</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIICaj…Hop1nErV6Q==</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
<samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid−format:emailAddress" AllowCreate="true"/>
<samlp:RequestedAuthnContext Comparison="exact">
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</saml:AuthnContextClassRef>
</samlp:RequestedAuthnContext>
</samlp:AuthnRequest>
Since the user is now set to SSO and is not logged in, the SSO management module 450 of the service provider 400 generates an authentication request message (SAML Request) and redirect HTML (S4.2). The authentication request message is as shown in Table 6 below.
(Table 6: Authentication request message (SAML Request))
"
<Samlp: AuthnRequest xmlns: samlp = “urn: oasis: names: tc: SAML: 2.0: protocol” xmlns: sam = “urn: oasis: names: tc: SAML: 2.0: assertion” ID = ”pfx41 -E612-8c50-9960-1b16f15741b3 "Version =" 2.0 "ProviderName =" SP test "IssueInstant =" 2016-07-16T23: 52: 45Z "Destination =" http: //idp.example.com.SSOSv " php "ProtocolBinding =""urn: oasis: names: tc: SAML: 2.0: bindings: HTT -POST "AssertionConsumerServiceURL =" http://sp.example.com/demo1/index.php?acs ">
<Sam: Issuer> http: // sp. example. com / demo1 / metadata. php </ saml: Issuer>
<Ds: Signature xmlns: ds = "http://www.w3.org/2000/09/xmldsig#">
<Ds: SignedInfo>
<Ds: Canonicalization Method Algorithm = "http://www.w3.org/2001/10/xml-exc-c14n#" / >>
<Ds: SignatureMethod Algorithm = "http://www.w3.org/2000/09/xmlmlsig#rsa-sha1"/>
<Ds: Reference URI = “# pfx41d8ef22-e612-8c50-9960-1b16f15741b3”>
<Ds: Transforms>
<Ds: Transform Algorithm = “http://www.w3.org/2000/09/xmlssig#enveloped-signature” />
<Ds: Transform Algorithm = “http://www.w3.org/2001/10/xml-exc-c14n#” />
</ Ds: Transforms>
<Ds: Digest Method Algorithm = "http://www.w3.org/2000/09/xmlssig#sha1"/>
<Ds: DigestValue> yJN ... YFI = </ ds: DigestValue>
</ Ds: Reference>
</ Ds: SignedInfo>
<Ds: SignatureValue> g5eM9yPnKsmm ... YgmB3socPqAi2Qf97E = </ ds: SignatureValue>
<Ds: KeyInfo>
<Ds: X509Data>
<Ds: X509 Certificate> MIICaj ... Hop1nErV6Q == </ ds: X509 Certificate>
</ Ds: X509Data>
</ Ds: KeyInfo>
</ Ds: Signature>
<Samlp: NameIDPolicy Format = “urn: oasis: names: tc: SAML: 1.1: nameid-format: emailAddress” AllowCreate = “true” />
<Samlp: RequestedAuthnContext Comparison = “exact”>
<Sam: AuthnContextClassRef> urn: oasis: names: tc: SAML: 2.0: ac: classes: PasswordProtectedTransport </ sam: AuthnContextClassRef>
</ Samlp: RequestedAuthnContext>
</ Samlp: AuthnRequest>
"

SAML RequestはSAML2.0仕様に定義されている、embedded signature付きの<AuthnRequest>要素で表現される。また、認証要求メッセージの送信にはHTTP POST Bindingが用いられる。そのため、サービスプロバイダー400のSSO管理モジュール450は、生成された表5の認証要求メッセージをBase64エンコードして表7の認証要求メッセージを含むリダイレクト用HTMLを生成する(S4.2)。そして、SSO管理モジュール450は、[SP側:信頼するIdPの登録]で登録したIdPが認証要求を受け付けるURLにリダイレクトするようにクライアントPC200に応答する(S4.3)。
(表7:認証要求メッセージを含むリダイレクト用HTML)

<html>
<head>
<title>Access rights validated</title>
</head>
<body onload="document.forms[0].submit()">
<form method="post" action="https&#x3a;&#x2f;&#x2f;sooaa.my.salesforce.com&#x2f;idp&#x2f;endpoint&#x2f;HttpPost">
<input type="hidden" name="SAMLRequest" value="PHNhbWxwOkF1dGhuUmVxdWVzdCAgeG1sbnM6c2FtbHA9InVybjpvYXNpczpuYW1lczp0YzpTQU1M&#xd;&#xa;OjIuMDpwcm90b2NvbCIKSUQ9InMyM2VlMWE5Njk1OGM5ZWNkOWZjYmQ0ODFhNGFlYTA1NTRhNjNj&#xd;&#....&#x2b;Cjwvc2FtbHA6&#xd;&#xa;QXV0aG5SZXF1ZXN0Pg&#x3d;&#x3d;" />
<input type="hidden" name="RelayState" value="https://application.sp.example.com/portal.html " />
<noscript>
<center>
<input type="submit" value="Submit" />
</center>
</noscript>
</form>
</body>
</html>
The SAML Request is expressed by an <AuthnRequest> element with an embedded signature defined in the SAML 2.0 specification. In addition, HTTP POST Binding is used for transmitting the authentication request message. Therefore, the SSO management module 450 of the service provider 400 generates a redirect HTML including the authentication request message of Table 7 by Base64 encoding the generated authentication request message of Table 5 (S4.2). Then, the SSO management module 450 responds to the client PC 200 so that the IdP registered in [SP side: trusted IdP registration] redirects to a URL that accepts an authentication request (S4.3).
(Table 7: Redirect HTML including authentication request message)
"
<Html>
<Head>
<Title> Access rights validated </ title>
</ Head>
<Body onload = “document.forms [0] .submit ()”>
<Form method = “post” action = “https &#x3a;&#x2f;&#x2f; sooa.my.salesforce.com &#x2f; idp &#x2f; endpoint &#x2f;Httppost”>
<Input type = "hidden" name = "SAMLRequest" value = "PHNhbWxwOkF1dGhuUmVxdWVzdCAgeG1sbnM6c2FtbHA9InVybjpvYXNpczpuYW1lczp0YzpTQU1M &#xd;&#xa; OjIuMDpwcm90b2NvbCIKSUQ9InMyM2VlMWE5Njk1OGM5ZWNkOWZjYmQ0ODFhNGFlYTA1NTRhNjNj &#xd;&# .... &#x2b; Cjwvc2FtbHA6 &#xd;&#xa; QXV0aG5SZXF1ZXN0Pg &#x3d;&#X3d;"//>
<Input type = “hidden” name = “RelayState” value = “https://application.sp.example.com/portal.html“ //>
<Noscript>
<Center>
<Input type = “submit” value = “Submit” //
</ Center>
</ Noscript>
</ Form>
</ Body>
</ Html>
"

表7の認証要求メッセージを含むリダイレクト用HTMLは、SSO後のSPのアクセスポイントであるRelayStateを含む。本実施形態の場合、RelayStateは表5のURLになる。
表7の認証要求メッセージを含むリダイレクト用HTMLを受け取ったクライアントPC200のWebブラウザー220は、以下の処理を行う。即ち、クライアントPC200のWebブラウザー220は、ユーザー認証のために[SP側:信頼するIdPの登録]で登録したIdPが認証要求を受け付けるURLが示すIDプロバイダー300にリダイレクトする(S4.4)。
クライアントPC200によるリダイレクトの結果、表7の認証要求メッセージを受信したIDプロバイダー300は、ユーザー名、パスワードによるユーザー認証、IPアドレス制限、認証応答メッセージを生成する(S4.7)。
図5は、IDプロバイダー300のIdP側ログイン処理の一例を示すフローチャートである。以下、S4.7の処理を図5のフローチャートにより詳細に説明する。
図5のフローチャートは、IDプロバイダー300の認証モジュール330が、Web APIサーバ320を経由して7の認証要求メッセージを受信する(S501)ことから始まる。認証要求メッセージを受信した認証モジュール330は、ユーザー認証画面を表示して、ユーザー認証画面を介して入力されたユーザー名、パスワードによるユーザー認証を行う(S502)。そして、認証モジュール330は、ログインに成功したか否かを判定する(S503)。もしユーザーが正常に認証されてログインに成功と判定されれば(S503においてYes)、認証モジュール330は、更にIPアドレス制限処理を実施する(S504)。一方、ログインに失敗すれば(S503においてNo)、認証モジュール330は、ログインエラーのメッセージを生成して(S508)、図5に示す処理を終える。IPアドレス制限処理は次のように行う。即ち、IDプロバイダー300の認証モジュール330は、S501にて受信したHTTPSプロトコルによりリダイレクトされた認証要求メッセージを含むリダイレクト用HTMLの通信の際のHTTPヘッダーを解析する。そして、認証モジュール330は、Forwarded(又はX−Forwarded−For)ヘッダーフィールドを取得してアクセス元IPアドレスを取得し、IPアドレス制限を行う。Fowarded(又はX−Forwarded−For)ヘッダーフィールドは、一般的に以下のようなフォーマットである。
(表8:Fowarded(又はX−Forwarded−For)ヘッダーフィールドのフォーマット)

X−Forwarded−For:client1,proxy1,proxy2

Forwarded(又はX−Forwarded−For)ヘッダーフィールドはカンマとスペースとで区切られたIPアドレスの一覧である。クライアントPC200とIDプロバイダー300との間にプロキシ―サーバが存在する場合、クライアントPC200のIPアドレスの右側に、経由してきた各々のプロキシ―サーバのIPアドレスが順次記録される。本実施形態においては、アクセス元IPアドレスとしてFowarded(又はX−Forwarded−For)ヘッダーフィールドの最も左のカラムにあるIPアドレスが用いられる。
The redirect HTML including the authentication request message in Table 7 includes a RelayState that is an access point of the SP after SSO. In this embodiment, RelayState is the URL shown in Table 5.
The Web browser 220 of the client PC 200 that has received the redirect HTML including the authentication request message shown in Table 7 performs the following processing. In other words, the Web browser 220 of the client PC 200 redirects to the ID provider 300 indicated by the URL for accepting the authentication request by the IdP registered in [SP side: trusted IdP registration] for user authentication (S4.4).
As a result of the redirection by the client PC 200, the ID provider 300 that has received the authentication request message in Table 7 generates a user authentication using a user name and password, an IP address restriction, and an authentication response message (S4.7).
FIG. 5 is a flowchart illustrating an example of the IdP side login process of the ID provider 300. Hereinafter, the process of S4.7 will be described in detail with reference to the flowchart of FIG.
The flowchart of FIG. 5 starts when the authentication module 330 of the ID provider 300 receives the authentication request message 7 via the Web API server 320 (S501). Upon receiving the authentication request message, the authentication module 330 displays a user authentication screen, and performs user authentication using the user name and password input via the user authentication screen (S502). Then, the authentication module 330 determines whether or not the login is successful (S503). If the user is normally authenticated and it is determined that the login is successful (Yes in S503), the authentication module 330 further performs IP address restriction processing (S504). On the other hand, if the login fails (No in S503), the authentication module 330 generates a login error message (S508) and ends the process shown in FIG. The IP address restriction process is performed as follows. That is, the authentication module 330 of the ID provider 300 analyzes the HTTP header used in the redirect HTML communication including the authentication request message redirected by the HTTPS protocol received in S501. The authentication module 330 acquires a forwarded (or X-forwarded-For) header field to acquire an access source IP address, and performs IP address restriction. The Forwarded (or X-Forwarded-For) header field generally has the following format.
(Table 8: Format of Forwarded (or X-Forwarded-For) header field)
"
X-Forwarded-For: client1, proxy1, proxy2
"
The Forwarded (or X-Forwarded-For) header field is a list of IP addresses separated by commas and spaces. When a proxy server exists between the client PC 200 and the ID provider 300, the IP addresses of the respective proxy servers that have passed through are sequentially recorded on the right side of the IP address of the client PC 200. In the present embodiment, the IP address in the leftmost column of the Forwarded (or X-Forwarded-For) header field is used as the access source IP address.

認証モジュール330は、S502にて認証したユーザーのユーザーIDと、Fowarded(又はX−Forwarded−For)ヘッダーフィールドのクライアントPC200のIPアドレスと、を取得する。そして認証モジュール330は、DBモジュール340に存在する表3のIdP側IPアドレス制限設定テーブルを参照する。認証モジュール330は、認証したユーザーIDに対応する表3のユーザーIDの対応するアクセス許可IPアドレスを取得する。そして、認証モジュール330は、アクセス元IPアドレスが、表3のユーザーIDに対応する接続許可IPアドレスにマッチ又はIPアドレス範囲に含まれているかどうか判定する(S505)。判定の結果、Forwarded(又はX−Forwarded−For)に含まれるアクセス元のクライアントPC200のIPアドレスがアクセス許可IPアドレスにマッチ又はIPアドレス範囲に含まれていれば(S505においてYes)、認証モジュール330は、S506に進む。即ち、アクセス元のクライアントPC200はアクセスが許可されたものと見做し、認証モジュール330は、認証応答メッセージ(SAML Response)の生成を行う(S506)。もしForwarded(又はX−Forwarded−For)に含まれるアクセス元のクライアントPC200のIPアドレスがアクセス許可IPアドレスにマッチ又はIPアドレス範囲に含まれていなければ(S505においてNo)、認証モジュール330は、IPアドレス制限エラーとしてIPアドレス制限エラーのメッセージを生成して(S507)、図5に示す処理を終える。   The authentication module 330 acquires the user ID of the user authenticated in S502 and the IP address of the client PC 200 in the Forwarded (or X-Forwarded-For) header field. Then, the authentication module 330 refers to the IdP side IP address restriction setting table of Table 3 existing in the DB module 340. The authentication module 330 acquires an access permission IP address corresponding to the user ID in Table 3 corresponding to the authenticated user ID. Then, the authentication module 330 determines whether the access source IP address matches the connection permission IP address corresponding to the user ID in Table 3 or is included in the IP address range (S505). As a result of the determination, if the IP address of the access source client PC 200 included in Forwarded (or X-Forwarded-For) matches the access-permitted IP address or is included in the IP address range (Yes in S505), the authentication module 330 Advances to S506. In other words, the access source client PC 200 assumes that access is permitted, and the authentication module 330 generates an authentication response message (SAML Response) (S506). If the IP address of the access source client PC 200 included in Forwarded (or X-Forwarded-For) does not match the access-permitted IP address or is not included in the IP address range (No in S505), the authentication module 330 An IP address restriction error message is generated as an address restriction error (S507), and the process shown in FIG. 5 ends.

S506にて認証モジュール330が生成する認証応答メッセージは以下のようなものである。
(表9:認証応答メッセージ(SAML Response))

<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" ID="_8e8dc5f69a98cc4c1ff3427e5ce34606fd672f91e6" Version="2.0" IssueInstant="2014−07−17T01:01:48Z" Destination="http://sp.example.com/demo1/index.php?acs" InResponseTo="ONELOGIN_4fee3b046395c4e751011e97f8900b5273d56685">
<saml:Issuer>http://idp.example.com/metadata.php</saml:Issuer>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion xmlns:xsi="http://www.w3.org/2001/XMLSchema−instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" ID="pfxcece9a75−ff7f−7e3f−7ff1−aac962e10f46" Version="2.0" IssueInstant="2014−07−17T01:01:48Z">
<saml:Issuer>http://idp.example.com/metadata.php</saml:Issuer><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml−exc−c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa−sha1"/>
<ds:Reference URI="#pfxcece9a75−ff7f−7e3f−7ff1−aac962e10f46"><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped−signature"/><ds:Transform Algorithm="http://www.w3.org/2001/10/xml−exc−c14n#"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><ds:DigestValue>zV9R…h7EIlJjlDqg=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>WwwsViXvC7…qx+FRJYZnAY=</ds:SignatureValue>
<ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIICajCCAdOgA…YZGyc4LzgD0CROMASTWNg==</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature>
<saml:Subject>
<saml:NameID SPNameQualifier="http://sp.example.com/demo1/metadata.php" Format="urn:oasis:names:tc:SAML:2.0:nameid−format:transient">User0001</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2026−01−18T06:21:48Z" Recipient="http://sp.example.com/demo1/index.php?acs" InResponseTo="ONELOGIN_4fee3b046395c4e751011e97f8900b5273d56685"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2016−07−17T01:01:18Z" NotOnOrAfter="2026−01−18T06:21:48Z">
<saml:AudienceRestriction>
<saml:Audience>http://sp.example.com/demo1/metadata.php</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2016−07−17T01:01:48Z" SessionNotOnOrAfter="2026−07−17T09:01:48Z" SessionIndex="_be9967abd904ddcae3c0eb4189adbe3f71e327cf93">
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement>
<saml:Attribute Name="uid" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname−format:basic">
<saml:AttributeValue xsi:type="xs:string">test</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="mail" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname−format:basic">
<saml:AttributeValue xsi:type="xs:string">test@example.com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="eduPersonAffiliation" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname−format:basic">
<saml:AttributeValue xsi:type="xs:string">users</saml:AttributeValue>
<saml:AttributeValue xsi:type="xs:string">examplerole1</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>
The authentication response message generated by the authentication module 330 in S506 is as follows.
(Table 9: Authentication Response Message (SAML Response))
"
<Samlp: Response xmlns: samlp = “urn: oasis: names: tc: SAML: 2.0: protocol” xmlns: sam = “urn: oasis: names: tc: SAML: 2.0: assert6 ID67” 367 “Version =“ 2.0 ”IssueInstance =“ 2014-07-17T01: 01: 48Z ”Destination =“ http://sp.example.com/demo1/index.php?acs ”InResponseTo =“ ONELOG101 — 3FE4 356
<Sam: Issuer> http: // idp. example. com / metadata. php </ saml: Issuer>
<Samlp: Status>
<Samlp: StatusCode Value = "urn: oasis: names: tc: SAML: 2.0: status: Success">
</ Samlp: Status>
<Sam: Assessment xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns: xs = "http://www.w3.org/2001/XMLSchema" ce = 9 pfx7 −7e3f-7ff1-aac962e10f46 ”Version =“ 2.0 ”IssueInstance =“ 2014-07-17T01: 01: 48Z ”>
<Sam: Issuer> http: // idp. example. com / metadata. php </ sam: Issuer><ds: Signature xmlns: ds = "http://www.w3.org/2000/09/xmlssig#">
<Ds: SignedInfo><ds: Canonicalization Method Algorithm = "http://www.w3.org/2001/10/xml-exc-c14n#"/>
<Ds: SignatureMethod Algorithm = "http://www.w3.org/2000/09/xmlmlsig#rsa-sha1"/>
<Ds: Reference URI = “# pfxcece9a75-ff7f-7e3f-7ff1-aac962e10f46”><ds:Transforms><ds: Transform Algorithm = “http://www.w3.org/vd.e. "/ >><ds: Transform Algorithm ="http://www.w3.org/2001/10/xml-exc-c14n#"/>></ ds: Transforms><ds: DigestMethod Algorithm =" http: // www.w3.org/2000/09/xmlmlsig#sha1"/><ds:DigestValue>zV9R...h7EIlJjlDqg </ Ds: DigestValue></ ds: Reference></ ds: SignedInfo><ds:SignatureValue> WwwsViXvC7 ... qx + FRJYZnAY = </ ds: SignatureValue>
<Ds: KeyInfo><ds:X509Data><ds:X509Certificate> MIICajCCAdOgA ... YZGyc4LzgD0CROMASTWNg == </ ds: X509Certificate></ ds: X509Data> / ds: X509Data: / s: X509Data
<Sam: Subject>
<Sam: NameID SPNameQualifier = “http://sp.example.com/demo1/metadata.php” Format = “urn: oasis: names: tc: SAML: 2.0: nameid-format: transient <U> sam: NameID>
<Sam: Subject Information Method = “urn: oasis: names: tc: SAML: 2.0: cm: bearer”>
<Sam: SubjectConfigurationData NotOnOrAfter = “2026-01-18T06: 21: 48Z” Recipient = “http://sp.example.com/demo1/index.php?
</ Saml: Subject Confirmation>
</ Saml: Subject>
<Sam: Conditions NotBefore = “2016-07-17T01: 01: 18Z” NotOnOrAfter = “2026-01-18T06: 21: 48Z”>
<Saml: AudienceRestriction>
<Sam: Audience> http: // sp. example. com / demo1 / metadata. php </ sam: Audience>
</ Saml: AudienceRestriction>
</ Saml: Conditions>
<Sam: AuthnStatement AuthnInstant = “2016-07-17T01: 01: 48Z” SessionNotOnOrAfter = “2026-07-17T09: 01: 48Z” SessionIndex = “_ be99967abd904def71e3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef3ef0ef3ef3ef3ef0ef3ef3ef3ef3ef3ef093
<Saml: AuthnContext>
<Sam: AuthnContextClassRef> urn: oasis: names: tc: SAML: 2.0: ac: classes: Password </ sam: AuthnContextClassRef>
</ Saml: AuthnContext>
</ Saml: AuthnStatement>
<Saml: AttributeState>
<Sam: Attribute Name = “uid” NameFormat = “urn: oasis: names: tc: SAML: 2.0: attrname-format: basic”>
<Sam: AttributeValue xsi: type = “xs: string”> test </ sam: AttributeValue>
</ Saml: Attribute>
<Sam: Attribute Name = “mail” NameFormat = “urn: oasis: names: tc: SAML: 2.0: attrname-format: basic”>
<Sam: AttributeValue xsi: type = “xs: string”> test @ example. com </ saml: AttributeValue>
</ Saml: Attribute>
<Sam: Attribute Name = “eduPersonAffiliation” NameFormat = “urn: oasis: names: tc: SAML: 2.0: attrname-format: basic”>
<Sam: AttributeValue xsi: type = "xs: string"> users </ sam: AttributeValue>
<Sam: AttributeValue xsi: type = "xs: string"> example1 </ sam: AttributeValue>
</ Saml: Attribute>
</ Saml: AttributeState>
</ Saml: Assertion>
</ Samlp: Response>
"

本実施形態においては、SAML ResponseはSAML2.0仕様に従い<AuthnResponse>要素で表現される。認証応答メッセージには、SAML2.0仕様に従い、SSOユーザー毎の、認証応答メッセージの署名に使用するIdP秘密鍵を用いて表9の<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">以下のようなXML Signature標準に従ったアサーション署名が付与される。
また、認証応答メッセージの送信にはHTTP POST Bindingが用いられる。そのため、IDプロバイダー300のSSO管理モジュール350は、生成された表9の認証応答メッセージをBase64エンコードして表10の認証応答メッセージを含むリダイレクト用HTMLを生成する。
ここで、図4の説明を再開する。S4.7は、図5のS506における認証応答メッセージをBase64エンコードして下記表10の認証応答メッセージを含むリダイレクト用HTMLの生成である。S4.7の後、IDプロバイダー300は、[IdP側:信頼するSPの登録]で登録したSPが認証応答を受け付けるURLにリダイレクトするようにクライアントPC200に応答する(S4.8)。
In the present embodiment, the SAML Response is expressed by an <AuthnResponse> element in accordance with the SAML 2.0 specification. The authentication response message uses <Id: Signature xmlns: ds = "http: //www.w3" in Table 9 using the IdP private key used for the signature of the authentication response message for each SSO user in accordance with the SAML 2.0 specification. .Org / 2000/09 / xmldsig # "> Assertion signatures according to the XML Signature standard are given as follows.
In addition, HTTP POST binding is used for transmitting the authentication response message. Therefore, the SSO management module 350 of the ID provider 300 generates a redirect HTML including the authentication response message of Table 10 by Base64 encoding the generated authentication response message of Table 9.
Here, the description of FIG. 4 is resumed. In S4.7, the authentication response message in S506 of FIG. 5 is Base64-encoded to generate redirect HTML including the authentication response message in Table 10 below. After S4.7, the ID provider 300 responds to the client PC 200 so that the SP registered in [IdP side: trusted SP registration] redirects to a URL that accepts an authentication response (S4.8).

(表10:認証応答メッセージを含むリダイレクト用HTML)

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<body onload="document.forms[0].submit()">
<noscript>
<p>
<strong>Note:</strong> Since your browser does not support JavaScript,
you must press the Continue button once to proceed.
</p>
</noscript>
<form action="https://de01.auth.a01.c−aas−test.com/auth/Saml/SP/SSO/Post" method="post">
<div>
<input type="hidden" name="RelayState" value="https://application.sp.example.com/portal.html " />
<input type="hidden" name="SAMLResponse" value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVR…dHJpY3Rpb24+PHNhbWw6QXVkaWVuY2U+aHRzcG9uc2U+"/>
</div>
<noscript>
<div>
<input type="submit" value="Continue"/>
</div>
</noscript>
</form>
</body>
</html>
(Table 10: Redirect HTML including authentication response message)
"
<Html xmlns = “http://www.w3.org/1999/xhtml” xml: lang = “en”>
<Body onload = “document.forms [0] .submit ()”>
<Noscript>
<P>
<Strong> Note: </ strong> Since your browser does not support JavaScript,
you must press the Continue button once to processed.
</ P>
</ Noscript>
<Form action = "https://de01.auth.a01.c-aas-test.com/auth/Sam/SP/SSO/Post" method = "post">
<Div>
<Input type = “hidden” name = “RelayState” value = “https://application.sp.example.com/portal.html“ //>
<Input type = “hidden” name = “SAML Response” value = “PD94bWwgdmVyc2lvbj0iMS4wIilbmNvZGluZZz0iVVR ... dHJpY3Rpb24 + PHNhbWw9QV2HcUQV2H2UcVHQU2VcHQR
</ Div>
<Noscript>
<Div>
<Input type = "submit" value = "Continue"/>
</ Div>
</ Noscript>
</ Form>
</ Body>
</ Html>
"

表10の認証応答メッセージを含むリダイレクト用HTMLは、SSO後のSPのアクセスポイントであるRelayStateを含む。本実施形態の場合、RelayStateは表5のURLになる。
表10の認証応答メッセージを含むリダイレクト用HTMLを受け取ったクライアントPC200のWebブラウザー220は、ユーザー認証のために[IdP側:信頼するSPの登録]で登録したSPが認証要求を受け付けるURLが示すサービスプロバイダー400にリダイレクトする(S4.9)。
クライアントPC200によるリダイレクトの結果、表10の認証要求メッセージを受信したサービスプロバイダー400は、IPアドレス制限をスキップ、認証応答メッセージの検証、ユーザー認証を行うSP側認証処理(S4.10)を行う。
The redirect HTML including the authentication response message in Table 10 includes a RelayState that is an access point of the SP after SSO. In this embodiment, RelayState is the URL shown in Table 5.
The Web browser 220 of the client PC 200 that has received the redirect HTML including the authentication response message shown in Table 10 is a service indicated by the URL for accepting the authentication request by the SP registered in [IdP side: trusted SP registration] for user authentication. Redirect to the provider 400 (S4.9).
As a result of the redirection by the client PC 200, the service provider 400 that has received the authentication request message in Table 10 performs SP side authentication processing (S4.10) that skips IP address restriction, verifies the authentication response message, and performs user authentication.

図6は、サービスプロバイダー400の情報処理の一例を示すフローチャートである。以下、S4.10の処理を図6のフローチャートにより詳細に説明する。
図6のフローチャートは、サービスプロバイダー400の認証モジュール430が、Web APIサーバ420を経由して、認証メッセージとして表10の認証応答メッセージを受信する(S601)ことから始まる。認証応答メッセージを受信した認証モジュール430は、S601で受信した認証メッセージがSSOであるかどうか判定する(S602)。認証メッセージが表10のような認証応答メッセージ(SAML Response)を含むHTMLであればSSOであると判定し(S602においてYes)、認証モジュール430は、S610に進む。そして、SSO管理モジュール450は、[SP側:IPアドレス制限の設定]で設定した値を参照して行うサービスプロバイダー400に対するアクセス元IPアドレス制限処理をスキップして認証応答メッセージの検証処理を行う(S610)。一方S601で受信した認証メッセージが表10の認証応答メッセージでなく、サービスプロバイダー400の通常のログイン処理によるユーザー名、パスワードであればSSOでないと判定し(S602においてNo)、認証モジュール430は、S606に進む。そして、認証モジュール430は、[SP側:IPアドレス制限の設定]で設定した値を参照して行うサービスプロバイダー400に対するアクセス元IPアドレス制限処理(S606)を行う。
FIG. 6 is a flowchart illustrating an example of information processing by the service provider 400. Hereinafter, the process of S4.10 will be described in detail with reference to the flowchart of FIG.
The flowchart in FIG. 6 starts when the authentication module 430 of the service provider 400 receives the authentication response message in Table 10 as an authentication message via the Web API server 420 (S601). The authentication module 430 that has received the authentication response message determines whether or not the authentication message received in S601 is SSO (S602). If the authentication message is HTML including an authentication response message (SAML Response) as shown in Table 10, it is determined to be SSO (Yes in S602), and the authentication module 430 proceeds to S610. The SSO management module 450 skips the access source IP address restriction process for the service provider 400 performed with reference to the value set in [SP side: IP address restriction setting], and performs the authentication response message verification process ( S610). On the other hand, if the authentication message received in S601 is not the authentication response message in Table 10 but the user name and password by the normal login process of the service provider 400, it is determined that the authentication message is not SSO (No in S602), and the authentication module 430 determines that the authentication module 430 is S606. Proceed to Then, the authentication module 430 performs an access source IP address restriction process (S606) for the service provider 400, which is performed by referring to the value set in [SP side: IP address restriction setting].

ここで図4のシーケンスに従い、S601で受信した認証メッセージがSSOであることを示す表10の認証応答メッセージであった場合、SSO管理モジュール450は、認証応答検証処理を行う。S610の認証応答検証処理では、SSO管理モジュール450は、受け取った表10の認証応答メッセージから<input type="hidden" name="SAMLResponse" value=" PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVR…dHJpY3Rpb24+PHNhbWw6QXVkaWVuY2U+aHRzcG9uc2U+"/>のvalue=で示されるSAML Responseの内容を抜き出し、デコード、検証してその検証の成否を判定する。SAML Responseの値はIDプロバイダー300のSSO管理モジュール350が表9の認証応答メッセージをBase64エンコードした値である。SSO管理モジュール450は、SAML Responseの内容をBase64デコードし、表9で示される認証応答メッセージを得る。
本実施形態において、SAML ResponseはSAML2.0仕様に従う。SSO管理モジュール450は、SSOユーザー毎の、IdPの公開鍵(IdPからの認証応答に含まれる、IdP秘密鍵による署名検証用)を用いて、表9の認証応答メッセージの<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">以下のようなXML Signature標準に従ったアサーション署名の検証等を行う。
Here, according to the sequence of FIG. 4, when the authentication message received in S601 is the authentication response message of Table 10 indicating that it is SSO, the SSO management module 450 performs an authentication response verification process. The authentication response verification process of S610 is, SSO management module 450 is shown from the authentication response message of Table 10 received in the value = of <input type = "hidden" name = "SAMLResponse" value = "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVR ... dHJpY3Rpb24 + PHNhbWw6QXVkaWVuY2U + aHRzcG9uc2U +"/> The contents of the SAML Response are extracted, decoded and verified to determine whether the verification is successful. The value of SAML Response is a value obtained by Base64 encoding the authentication response message shown in Table 9 by the SSO management module 350 of the ID provider 300. The SSO management module 450 decodes the content of the SAML Response 64 by Base64, and obtains an authentication response message shown in Table 9.
In this embodiment, SAML Response follows the SAML 2.0 specification. The SSO management module 450 uses the IdP public key (for signature verification using the IdP private key included in the authentication response from the IdP) for each SSO user, and <ds: Signature xmlns: ds = “http://www.w3.org/2000/09/xmlssig#”> The assertion signature is verified in accordance with the XML Signature standard as follows.

SSO管理モジュール450は、検証の際に使用されるSSOユーザー名として、表9の認証応答メッセージの<saml:NameID SPNameQualifier="http://sp.example.com/demo1/metadata.php" Format="urn:oasis:names:tc:SAML:2.0:nameid−format:transient">User0001</saml:NameID>に含まれる"User0001"を用いる。
SSO管理モジュール450は、認証応答検証処理が正常に終了したか否かを判定する(S611)。認証応答検証処理が正常に終了したと判定した場合(S611においてYes)、認証モジュール430は、SSOユーザー名を用いてサービスプロバイダー400へのログイン処理を行う(S603)。S4.10のように、SSOの認証応答メッセージを正常処理した場合、ログイン処理では、認証モジュール430は、パスワード検証を行わずログインを認証し(S604においてYes)、ログイン成功のメッセージを返す(S605)。そして、認証モジュール430は、図6の処理を終える。S610の認証応答検証処理が正常に終了しない場合(S611においてNo)、認証モジュール430は、ログインエラー画面を表示して図6に示す処理を終える(S609)。
The SSO management module 450 uses <sam: NameID SPNameQualifier = “http://sp.example.com/demo1/metadata.php” Format = of the authentication response message in Table 9 as the SSO user name used in the verification. “User0001” included in “urn: oasis: names: tc: SAML: 2.0: nameid-format: transient”> User0001 </ sam: NameID> is used.
The SSO management module 450 determines whether or not the authentication response verification process has ended normally (S611). If it is determined that the authentication response verification process has been completed normally (Yes in S611), the authentication module 430 performs a login process to the service provider 400 using the SSO user name (S603). When the SSO authentication response message is processed normally as in S4.10, in the login process, the authentication module 430 authenticates the login without performing password verification (Yes in S604) and returns a login success message (S605). ). Then, the authentication module 430 ends the process of FIG. If the authentication response verification process in S610 does not end normally (No in S611), the authentication module 430 displays a login error screen and ends the process shown in FIG. 6 (S609).

図6のフローチャートにより詳述した図4のS4.10の処理を終えた後、サービスプロバイダー400のSSO管理モジュール450は、表10の<input type="hidden" name="RelayState" value="https://application.sp.example.com/portal.html " />に含まれるRelayStateのvalueであるURLに対し、サービス利用のためのアクセストークンと共に、リダイレクト処理を行うようにクライアントPC200のWebブラウザー220に対して応答を返す(S4.13)。応答を受信したクライアントPC200のWebブラウザー220は、RelayStateで示されていたサービスプロバイダー400のリダイレクト先URLにアクセストークンをもってアクセスする(S4.14)。そして、Webブラウザー220は、サービスプロバイダー400のWebアプリケーションであるアプリケーションサーバ460にアクセスしてアプリケーションサービスの利用を開始する。   After finishing the processing of S4.10 of FIG. 4 described in detail with reference to the flowchart of FIG. 6, the SSO management module 450 of the service provider 400 performs <input type = “hidden” name = “RelayState” value = “https” in Table 10. //Application.sp.example.com/portal.html “/> The URL that is the value of the RelayState included in the Web browser 220 of the client PC 200 so as to perform a redirect process together with an access token for using the service. A response is returned to (S4.13). The web browser 220 of the client PC 200 that has received the response accesses the redirect URL of the service provider 400 indicated by RelayState with an access token (S4.14). Then, the web browser 220 accesses the application server 460 that is the web application of the service provider 400 and starts using the application service.

図7は、ユーザーがサービスプロバイダー400に直接ログインして行う、例えばサービスプロバイダー上のユーザー、SSO設定に係るサービス、を利用するためのログインシーケンス図である。クライアントPC200のWebブラウザー220は、サービスプロバイダー400にログインするために、サービスプロバイダー400のWeb APIサーバ420にアクセスする(S7.1)。ログイン情報を受信したサービスプロバイダー400のWeb APIサーバ420は、認証モジュール430を呼び出し、ログイン認証処理を行う(S7.2)。サービスプロバイダー400の認証モジュール430は、S601にて受信したユーザー名、パスワードと共に、ログイン情報受信の際のHTTPヘッダーを解析する。そして認証モジュール430は、Forwarded(又はX−Forwarded−For)ヘッダーフィールドを取得してアクセス元IPアドレスを取得し、IPアドレス制限を行う(S606)。
Forwarded(又はX−Forwarded−For)ヘッダーフィールドはカンマとスペースとで区切られたIPアドレスの一覧である。クライアントPC200とサービスプロバイダー400との間にプロキシ―サーバが存在する場合、クライアントPC200のIPアドレスの右側に、経由してきた各々のプロキシ―サーバのIPアドレスが順次、記録される。本実施形態においては、アクセス元IPアドレスとしてFowarded(又はX−Forwarded−For)ヘッダーフィールドの最も左のカラムにあるIPアドレスが用いられる。
FIG. 7 is a login sequence diagram for using, for example, a user on the service provider, a service related to the SSO setting, which is performed by the user logging in directly to the service provider 400. The web browser 220 of the client PC 200 accesses the web API server 420 of the service provider 400 in order to log in to the service provider 400 (S7.1). Upon receiving the login information, the Web API server 420 of the service provider 400 calls the authentication module 430 and performs login authentication processing (S7.2). The authentication module 430 of the service provider 400 analyzes the HTTP header when receiving the login information together with the user name and password received in S601. Then, the authentication module 430 acquires a forwarded (or X-forwarded-For) header field to acquire an access source IP address, and performs IP address restriction (S606).
The Forwarded (or X-Forwarded-For) header field is a list of IP addresses separated by commas and spaces. When a proxy server exists between the client PC 200 and the service provider 400, the IP address of each proxy server that has passed through is sequentially recorded on the right side of the IP address of the client PC 200. In the present embodiment, the IP address in the leftmost column of the Forwarded (or X-Forwarded-For) header field is used as the access source IP address.

認証モジュール430は、ステップ601にて取得したユーザーのユーザーIDと、Fowarded(又はX−Forwarded−For)ヘッダーフィールドのクライアントPC200のIPアドレスと、を取得する。認証モジュール430は、DBモジュール440に存在する表4のSP側IPアドレス制限設定テーブルを参照する。認証モジュール430は、認証したユーザーIDに対応する表4のユーザーIDの対応するアクセス許可IPアドレスを取得し、アクセス元IPアドレスが、表4のユーザーIDに対応する接続許可IPアドレスにマッチ又はIPアドレス範囲に含まれているかどうか判定する(S607)。判定の結果、Forwarded(又はX−Forwarded−For)に含まれるアクセス元のクライアントPC200のIPアドレスがアクセス許可IPアドレスにマッチ又はIPアドレス範囲に含まれていれば(S607においてYes)、認証モジュール430は、S603に進む。認証モジュール430は、アクセス元のクライアントPC200はアクセスが許可されたものと見做し、ログイン処理を行う(S603)。Forwarded(又はX−Forwarded−For)に含まれるアクセス元のクライアントPC200のIPアドレスがアクセス許可IPアドレスにマッチ又はIPアドレス範囲に含まれていなない場合(S607においてNo)、認証モジュール430は、S608に進む。認証モジュール430は、IPアドレス制限エラーとしてIPアドレス制限エラーのメッセージを表示して(S608)、図6に示す処理を終える。
S607においてYesと判定され、S603に移行した場合、認証モジュール430は、S601で受け取ったユーザーID、パスワードと、予めDBモジュール440に登録されているユーザーID、パスワードと、を検証して、ログイン処理を行う。認証モジュール430は、検証の結果、ログインに成功しなか否かを判定する(S604)。ログインに成功した場合(S604においてYes)、認証モジュール430は、ログイン成功処理(S605)を行い、図6に示す処理を終える。S603のログインに成功しなかった場合(S604においてNo)、認証モジュール430は、ログインエラー画面を表示して(S609)、図6に示す処理を終える。
The authentication module 430 acquires the user ID of the user acquired in step 601 and the IP address of the client PC 200 in the Forwarded (or X-Forwarded-For) header field. The authentication module 430 refers to the SP side IP address restriction setting table of Table 4 existing in the DB module 440. The authentication module 430 acquires an access permission IP address corresponding to the user ID of Table 4 corresponding to the authenticated user ID, and the access source IP address matches the connection permission IP address corresponding to the user ID of Table 4 or IP It is determined whether it is included in the address range (S607). As a result of the determination, if the IP address of the access source client PC 200 included in Forwarded (or X-Forwarded-For) matches the access-permitted IP address or is included in the IP address range (Yes in S607), the authentication module 430 Advances to S603. The authentication module 430 performs login processing by assuming that the access source client PC 200 is permitted to access (S603). When the IP address of the access source client PC 200 included in Forwarded (or X-Forwarded-For) matches the access-permitted IP address or is not included in the IP address range (No in S607), the authentication module 430 performs S608. Proceed to The authentication module 430 displays an IP address restriction error message as an IP address restriction error (S608), and ends the process shown in FIG.
If it is determined Yes in S607 and the process proceeds to S603, the authentication module 430 verifies the user ID and password received in S601 and the user ID and password registered in the DB module 440 in advance, and performs login processing. I do. The authentication module 430 determines whether the login is not successful as a result of the verification (S604). If the login is successful (Yes in S604), the authentication module 430 performs a login success process (S605) and ends the process shown in FIG. If the login in S603 is not successful (No in S604), the authentication module 430 displays a login error screen (S609) and ends the process shown in FIG.

図6のフローチャートにより詳述した図7のS7.2の処理を終えた後、サービスプロバイダー400のSSO管理モジュール450は、以下の処理を行う。即ち、SSO管理モジュール450は、S7.1に含まれるURLに対し、サービス利用のためのアクセストークンと共に、リダイレクト処理を行うようにクライアントPC200のWebブラウザー220に対して応答を返す(S7.3)。応答を受信したクライアントPC200のWebブラウザー220は、S7.1に含まれているサービスプロバイダー400のリダイレクト先URLにアクセストークンをもってアクセスする。そして、Webブラウザー220は、サービスプロバイダー400のWebアプリケーションであるアプリケーションサーバ460にアクセスしてアプリケーションサービスの利用を開始する(S7.4)。   After finishing the process of S7.2 of FIG. 7 detailed with the flowchart of FIG. 6, the SSO management module 450 of the service provider 400 performs the following process. That is, the SSO management module 450 returns a response to the Web browser 220 of the client PC 200 so as to perform a redirect process for the URL included in S7.1 together with an access token for using the service (S7.3). . The web browser 220 of the client PC 200 that received the response accesses the redirect URL of the service provider 400 included in S7.1 with an access token. Then, the web browser 220 accesses the application server 460, which is a web application of the service provider 400, and starts using the application service (S7.4).

<実施形態2>
[SSO設定されているユーザーのSP側ログインの際のデフォルトIPアドレス制限]
[SSOにおけるIdPとSPの信頼関係の構築]と[IPアドレス制限の設定]とが完了した上で、図7のサービスプロバイダー400へのログインシーケンスが開始可能になる。
図7は、ユーザーがサービスプロバイダー400に直接ログインして行う、例えばサービスプロバイダー上のユーザー、SSO設定に係るサービス、を利用するためのログインシーケンス図である。クライアントPC200のWebブラウザー220は、サービスプロバイダー400にログインするために、サービスプロバイダー400のWeb APIサーバ420にアクセスする(S7.1)。ログイン情報を受信したサービスプロバイダー400のWeb APIサーバ420は、認証モジュール430を呼び出し、ログイン認証処理を行う(S7.2)。
<Embodiment 2>
[Default IP address restriction for SP side login for users with SSO settings]
After completion of [Building trust relationship between IdP and SP in SSO] and [Setting IP address restriction], the login sequence to the service provider 400 of FIG. 7 can be started.
FIG. 7 is a login sequence diagram for using, for example, a user on the service provider, a service related to the SSO setting, which is performed by the user logging in directly to the service provider 400. The web browser 220 of the client PC 200 accesses the web API server 420 of the service provider 400 in order to log in to the service provider 400 (S7.1). Upon receiving the login information, the Web API server 420 of the service provider 400 calls the authentication module 430 and performs login authentication processing (S7.2).

図8は、S7.2のサービスプロバイダー400によるログイン認証処理のフローチャートである。
図8で示されるフローは、S7.2にて、サービスプロバイダー400の認証モジュール430が、ログイン情報を受信(S801)することから始まる。ここで認証モジュール430は、受信したログイン情報がSSOによるログインである表10で示されるような認証応答メッセージを含むリダイレクト用HTMLであるか、通常のログイン情報であるユーザー名・パスワードであるか判定する(S802)。ここでもしSSOによるログインであるならば(S802においてYes)、認証モジュール430は、実施形態1のS603以降と同様にログイン処理(S803)を行う。S801で受信したログイン情報を通常のログイン情報であるユーザー名・パスワードと判断すると(S802においてNo)、認証モジュール430は、ユーザーがSSO設定されているか否かを確認する(S810)。SSO設定の確認は、より具体的には認証モジュール430が、ユーザー名に対し[SP側:信頼するIdPの登録]においてユーザーに紐付けてDBモジュール440に格納しているSPメタデータ情報及び秘密鍵の存在を確認することにより行われる。認証モジュール430は、確認でSPメタデータ等が存在すれば、ユーザーはSSO設定されているものとし、SPメタデータ等が存在しなければ、ユーザーはSSO設定されていないものとする。SSO設定は、シングルサインオン設定の略である。
FIG. 8 is a flowchart of the login authentication process by the service provider 400 in S7.2.
The flow shown in FIG. 8 starts when the authentication module 430 of the service provider 400 receives login information (S801) in S7.2. Here, the authentication module 430 determines whether the received login information is HTML for redirection including an authentication response message as shown in Table 10 indicating login by SSO, or is a user name / password that is normal login information. (S802). If the login is by SSO (Yes in S802), the authentication module 430 performs a login process (S803) in the same manner as S603 and after in the first embodiment. If it is determined that the login information received in S801 is a user name / password that is normal login information (No in S802), the authentication module 430 checks whether or not the user is set to SSO (S810). More specifically, the authentication module 430 confirms the SSO setting by storing the SP metadata information and the secret stored in the DB module 440 by associating the user name with the user in [SP side: trusted IdP registration]. This is done by confirming the existence of the key. The authentication module 430 assumes that the user is set for SSO if SP metadata or the like is present in the confirmation, and that the user is not set for SSO if there is no SP metadata or the like. The SSO setting is an abbreviation for single sign-on setting.

S801で受信したユーザーのユーザーIDがSSO設定されていなかったとすると(S810においてNo)、認証モジュール430は、実施形態1の図6のS606で示したようなIPアドレス制限処理を行う(S806)。S806のIPアドレス制限処理に成功した場合(S807においてYes)、認証モジュール430は、S803以降のログイン処理を行う。一方、S806のIPアドレス制限処理に失敗した場合(S807においてNo)、認証モジュール430は、IPアドレス制限エラー画面を表示して(S808)、図8の処理を終える。
S801で受信したユーザーのユーザーIDがSSO設定されていた場合(S810においてYes)、認証モジュール430は、[SP側:IPアドレス制限の設定]で示したユーザーのIPアドレス制限の設定、又は未設定状態であっても、デフォルトのIPアドレス制限を実施する(S811)。デフォルトのIPアドレス制限は、DBモジュール440に予め以下の設定を行い、それをS811にて認証モジュール430が参照することにより行われる。IPアドレス制限の対象となる認証要求元のクライアントPC200のアクセス元IPアドレスは、実施形態1の図6のS606で示したように、認証モジュール430が認証要求HTTPメッセージのFowarded(又はX−Forwarded−For)ヘッダーフィールドのクライアントPC200のIPアドレスを取得する。S810、S806、S811は、認証メッセージに基づいてシングルサインオンでないと判定された場合、ユーザーがシングルサインオン設定されているか否かに応じて、IPアドレスの制御処理を変更する処理の一例である。
If the user ID of the user received in S801 is not set as SSO (No in S810), the authentication module 430 performs IP address restriction processing as shown in S606 of FIG. 6 of the first embodiment (S806). When the IP address restriction process of S806 is successful (Yes in S807), the authentication module 430 performs the login process after S803. On the other hand, when the IP address restriction process of S806 has failed (No in S807), the authentication module 430 displays an IP address restriction error screen (S808) and ends the process of FIG.
When the user ID of the user received in S801 is set as SSO (Yes in S810), the authentication module 430 sets the IP address restriction of the user indicated in [SP side: IP address restriction setting] or is not set. Even in the state, the default IP address restriction is performed (S811). The default IP address restriction is performed by making the following settings in the DB module 440 in advance and referring to the authentication module 430 in S811. As shown in S606 of FIG. 6 in the first embodiment, the access module IP address of the authentication request source client PC 200 subject to the IP address restriction is obtained by the authentication module 430 in the Forwarded (or X-Forwarded- For) The IP address of the client PC 200 in the header field is acquired. S810, S806, and S811 are examples of processing for changing the IP address control processing depending on whether or not the user is set to single sign-on when it is determined that single sign-on is not performed based on the authentication message. .

(表11:デフォルトIPアドレス制限)

ユーザーID:アクセス許可IPアドレス
User0001:192.168.100.*
User0001:172.20.0.* − 172.20.128.*
(Table 11: Default IP address restrictions)
"
User ID: Access-permitted IP address User0001: 192.168.100. *
User0001: 172.20.0. *-172.20.128. *
"

表11のサービスプロバイダー400側デフォルトIPアドレス制限設定テーブルは、User0001がIdPにアクセスする際、アクセス元IPアドレスとして192.168.100.0/16の範囲と、172.20.0.0から172.20.128.255までのIPアドレス範囲を許可する。
本実施形態の特徴は、サービスプロバイダー400へのユーザーの通常のSSOでないログインの際に、ユーザーがSSO設定されているならば、[SP側:IPアドレス制限の設定]で示したユーザーのIPアドレス制限の設定、又は未設定状態であっても、デフォルトのIPアドレス制限が実施されることである。
ここで認証モジュール430がS811のデフォルトIPアドレス制限処理に成功した場合(S807においてYes)、S803以降のログイン処理が行われる。一方、S811のデフォルトIPアドレス制限処理に失敗した場合(S807においてNo)、認証モジュール430は、IPアドレス制限エラー画面を表示して(S808)、図8の処理を終える。
S803以降のログイン処理、即ちS803、S804、S805、S809については、実施形態1の図6のS603、S604、S605、S609と同様である。
The default IP address restriction setting table on the service provider 400 side of Table 11 shows that when User0001 accesses IdP, the range of 192.168.100.0/16 as the access source IP address, and 172.2.0.0.0 to 172 Allow IP address range up to 20.128.255.
The feature of this embodiment is that if the user is set to SSO when logging in to the service provider 400, the user's IP address shown in [SP side: IP address restriction setting]. Even when the restriction is set or not set, the default IP address restriction is performed.
If the authentication module 430 succeeds in the default IP address restriction process in S811 (Yes in S807), the login process in S803 and subsequent steps is performed. On the other hand, when the default IP address restriction process of S811 fails (No in S807), the authentication module 430 displays an IP address restriction error screen (S808) and ends the process of FIG.
The login processing after S803, that is, S803, S804, S805, and S809, is the same as S603, S604, S605, and S609 in FIG. 6 of the first embodiment.

<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
<Other embodiments>
The present invention supplies a program that realizes one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium. It can also be realized by a process in which one or more processors in the computer of the system or apparatus read and execute the program. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。   As mentioned above, although preferable embodiment of this invention was explained in full detail, this invention is not limited to the specific embodiment which concerns.

以上、上述した各実施形態の処理によれば、以下のことができる。即ち、シングルサインオン(SSO)可能なシステムでIDプロバイダー(IdP)側、サービスプロバイダー(SP)側双方でログイン時のIPアドレス制限を実装する場合、IPアドレス制限の整合性ある動作を実現し、ユーザーの利便性を向上させることができる。より具体的には、IdP側のIPアドレス制限ポリシーに従い、例えSP側にIPアドレス制限が設定されていたとしてもそれを判定しない。ユーザーにとっては、あくまでIdP側のポリシーに従う整合性のあるIPアドレス制限動作になる。またシステムにとっては、SP側の無駄な動作(IdPとSPとで設定が異なった場合の処理等)を防止できる。   As described above, according to the processing of each embodiment described above, the following can be performed. In other words, when implementing IP address restrictions at the time of login on both the ID provider (IdP) side and the service provider (SP) side in a single sign-on (SSO) capable system, the consistent operation of the IP address restrictions is realized. User convenience can be improved. More specifically, according to the IP address restriction policy on the IdP side, even if the IP address restriction is set on the SP side, it is not determined. For the user, the IP address restriction operation is consistent with the policy on the IdP side. Further, for the system, it is possible to prevent useless operations on the SP side (processing when settings are different between IdP and SP).

300 IDプロバイダー
400 サービスプロバイダー
300 ID provider 400 Service provider

Claims (11)

認証メッセージをクライアント装置より受信する受信手段と、
前記認証メッセージに基づいてシングルサインオンであると判定された場合、IPアドレスの制限処理を省略し、前記認証メッセージに基づいてシングルサインオンでないと判定された場合、IPアドレスの制限処理を実行する制御手段と、
を有するサービスプロバイダー側の情報処理装置。
Receiving means for receiving an authentication message from the client device;
When it is determined that the single sign-on is based on the authentication message, the IP address restriction process is omitted. When it is determined that the single sign-on is not based on the authentication message, the IP address restriction process is executed. Control means;
An information processing apparatus on the service provider side.
前記認証メッセージに基づいてシングルサインオンであるか否かを判定する判定手段を更に有し、
前記制御手段は、前記判定手段によりシングルサインオンであると判定された場合、IPアドレスの制限処理を省略し、前記判定手段によりシングルサインオンでないと判定された場合、IPアドレスの制限処理を実行する請求項1記載のサービスプロバイダー側の情報処理装置。
A determination means for determining whether or not single sign-on is based on the authentication message;
The control unit omits the IP address restriction process when the determination unit determines that the single sign-on is performed, and executes the IP address restriction process when the determination unit determines that the single sign-on is not performed. The information processing apparatus on the service provider side according to claim 1.
前記判定手段は、前記認証メッセージがIDプロバイダー側の情報処理装置で生成された認証応答メッセージである場合、シングルサインオンであると判定し、前記認証メッセージがIDプロバイダー側の情報処理装置で生成された認証応答メッセージでない場合、シングルサインオンでないと判定する請求項2記載のサービスプロバイダー側の情報処理装置。   When the authentication message is an authentication response message generated by the information processing apparatus on the ID provider side, the determination unit determines that the authentication message is single sign-on, and the authentication message is generated by the information processing apparatus on the ID provider side. 3. The information processing apparatus on the service provider side according to claim 2, wherein if it is not an authentication response message, it is determined that it is not single sign-on. 前記制御手段は、前記認証メッセージに基づいてシングルサインオンでないと判定された場合、ユーザーがシングルサインオン設定されているか否かに応じて、IPアドレスの制御処理を変更する請求項1乃至3の何れか1項記載のサービスプロバイダー側の情報処理装置。   4. The control unit according to claim 1, wherein, when it is determined that the single sign-on is not performed based on the authentication message, the control unit changes the IP address control process according to whether or not the user is set to single sign-on. An information processing apparatus on the service provider side according to any one of the preceding claims. 前記制御手段は、前記ユーザーがシングルサインオン設定されている場合、デフォルトのIPアドレスの制御処理を実行する請求項4記載のサービスプロバイダー側の情報処理装置。   5. The information processing apparatus on the service provider side according to claim 4, wherein the control means executes control processing of a default IP address when the user is set to single sign-on. サービスプロバイダー側の情報処理装置が実行する情報処理方法であって、
認証メッセージをクライアント装置より受信する受信ステップと、
前記認証メッセージに基づいてシングルサインオンであると判定された場合、IPアドレスの制限処理を省略し、前記認証メッセージに基づいてシングルサインオンでないと判定された場合、IPアドレスの制限処理を実行する制御ステップと、
を含む情報処理方法。
An information processing method executed by an information processing apparatus on a service provider side,
A receiving step of receiving an authentication message from the client device;
When it is determined that the single sign-on is based on the authentication message, the IP address restriction process is omitted. When it is determined that the single sign-on is not based on the authentication message, the IP address restriction process is executed. Control steps;
An information processing method including:
前記認証メッセージに基づいてシングルサインオンであるか否かを判定する判定ステップを更に含み、
前記制御ステップでは、前記判定ステップによりシングルサインオンであると判定された場合、IPアドレスの制限処理を省略し、前記判定ステップによりシングルサインオンでないと判定された場合、IPアドレスの制限処理を実行する請求項6記載の情報処理方法。
A determination step of determining whether single sign-on is based on the authentication message;
In the control step, when it is determined that the single sign-on is determined in the determination step, the IP address restriction process is omitted, and when it is determined that the single sign-on is not determined in the determination step, the IP address restriction process is executed. The information processing method according to claim 6.
前記判定ステップでは、前記認証メッセージがIDプロバイダー側の情報処理装置で生成された認証応答メッセージである場合、シングルサインオンであると判定し、前記認証メッセージがIDプロバイダー側の情報処理装置で生成された認証応答メッセージでない場合、シングルサインオンでないと判定する請求項7記載の情報処理方法。   In the determination step, if the authentication message is an authentication response message generated by the information processing device on the ID provider side, it is determined that single sign-on is performed, and the authentication message is generated by the information processing device on the ID provider side. The information processing method according to claim 7, wherein if it is not an authentication response message, it is determined that it is not single sign-on. 前記制御ステップでは、前記認証メッセージに基づいてシングルサインオンでないと判定された場合、ユーザーがシングルサインオン設定されているか否かに応じて、IPアドレスの制御処理を変更する請求項6乃至8の何れか1項記載の情報処理方法。   9. The control process according to claim 6, wherein in the control step, when it is determined that the single sign-on is not performed based on the authentication message, the IP address control process is changed according to whether or not the user is set to single sign-on. The information processing method according to any one of the preceding claims. 前記制御ステップでは、前記ユーザーがシングルサインオン設定されている場合、デフォルトのIPアドレスの制御処理を実行する請求項9記載の情報処理方法。   The information processing method according to claim 9, wherein in the control step, when the user is set to single sign-on, control processing of a default IP address is executed. コンピュータを、請求項1乃至5の何れか1項記載のサービスプロバイダー側の情報処理装置の各手段として機能させるためのプログラム。   The program for functioning a computer as each means of the information processing apparatus by the side of the service provider in any one of Claims 1 thru | or 5.
JP2016145632A 2016-07-25 2016-07-25 Information processing equipment for service provider side, information processing method and program Pending JP2018018157A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016145632A JP2018018157A (en) 2016-07-25 2016-07-25 Information processing equipment for service provider side, information processing method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016145632A JP2018018157A (en) 2016-07-25 2016-07-25 Information processing equipment for service provider side, information processing method and program

Publications (1)

Publication Number Publication Date
JP2018018157A true JP2018018157A (en) 2018-02-01

Family

ID=61076253

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016145632A Pending JP2018018157A (en) 2016-07-25 2016-07-25 Information processing equipment for service provider side, information processing method and program

Country Status (1)

Country Link
JP (1) JP2018018157A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113794692A (en) * 2021-08-24 2021-12-14 杭州迪普科技股份有限公司 Attack tracing device, method and system and agent link table learning device and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113794692A (en) * 2021-08-24 2021-12-14 杭州迪普科技股份有限公司 Attack tracing device, method and system and agent link table learning device and method

Similar Documents

Publication Publication Date Title
CN109936569B (en) Decentralized digital identity login management system based on Ether house block chain
US8418234B2 (en) Authentication of a principal in a federation
US9094208B2 (en) User identity management and authentication in network environments
KR101247007B1 (en) User mapping information extension for protocols
US20080263644A1 (en) Federated authorization for distributed computing
Hollenbeck et al. Security Services for the Registration Data Access Protocol (RDAP)
Al-Sinani et al. CardSpace-Liberty integration for CardSpace users
JP6185934B2 (en) Integrate server applications with many authentication providers
US11882120B2 (en) Identity intermediary service authorization
López et al. A swift take on identity management
JP2018018157A (en) Information processing equipment for service provider side, information processing method and program
Popov et al. Token Binding over HTTP
Cisco Certificate Autoenrollment
Major et al. IVOA singlesign-on profile: Authentication mechanisms, version 2.0
Siriwardena et al. OpenID Connect (OIDC)
James Web single sign-on systems
Muthukrishnan et al. Technical analysis on security realization in web services for e-business management
Rixon et al. IVOA SingleSignOn Profile: Authentication Mechanisms
Hatala et al. Federated security: Lightweight security infrastructure for object repositories and web services
Ma et al. Authentication delegation for subscription-based remote network services
Namlı et al. Implementation experiences on ihe xua and bppc
De Mello et al. A model for authentication credentials translation in service oriented architecture
Siriwardena et al. Federating Access to APIs
Alrodhan Identity management systems
Popov et al. RFC 8473: Token Binding over HTTP