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 PDFInfo
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
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.
シングルサインオン(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.
以下、本発明の実施形態について図面に基づいて説明する。
以下に示す実施形態のシングルサインオンシステムは、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.
The client PC 200 is a client PC operated by the user. The
The client PC 200, the
The
In the present embodiment, both the
図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
The
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
Further, the software configuration of the
図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
The
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
サービスプロバイダー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
<実施形態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
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
(表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
The
When a user who makes SSO settings on the IdP side registers the SP metadata in Table 1 in the IdP, the
[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
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
[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
[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
The IdP IP address restriction setting is managed by the following IP address restriction setting table existing in the
(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
The IP address restriction setting of the SP is managed by the following IP address restriction setting table existing in the
(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
(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
(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
(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 :// sooa.my.salesforce.com / idp / endpoint /Httppost”>
<Input type = "hidden" name = "SAMLRequest" value = "PHNhbWxwOkF1dGhuUmVxdWVzdCAgeG1sbnM6c2FtbHA9InVybjpvYXNpczpuYW1lczp0YzpTQU1M 
 OjIuMDpwcm90b2NvbCIKSUQ9InMyM2VlMWE5Njk1OGM5ZWNkOWZjYmQ0ODFhNGFlYTA1NTRhNjNj 
&# .... + Cjwvc2FtbHA6 
 QXV0aG5SZXF1ZXN0Pg =="//>
<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
As a result of the redirection by the
FIG. 5 is a flowchart illustrating an example of the IdP side login process of the
The flowchart of FIG. 5 starts when the
(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
認証モジュール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
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
(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
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
(表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
As a result of the redirection by the
図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
The flowchart in FIG. 6 starts when the
ここで図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
In this embodiment, SAML Response follows the SAML 2.0 specification. The
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
The
図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
図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
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
認証モジュール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
If it is determined Yes in S607 and the process proceeds to S603, the
図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
<実施形態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
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
図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
The flow shown in FIG. 8 starts when the
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
When the user ID of the user received in S801 is set as SSO (Yes in S810), the
(表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
The feature of this embodiment is that if the user is set to SSO when logging in to the
If the
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
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.
認証メッセージをクライアント装置より受信する受信ステップと、
前記認証メッセージに基づいてシングルサインオンであると判定された場合、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.
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)
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 |
-
2016
- 2016-07-25 JP JP2016145632A patent/JP2018018157A/en active Pending
Cited By (1)
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 |