[go: up one dir, main page]

JP6533871B2 - System and method for controlling sign-on to web applications - Google Patents

System and method for controlling sign-on to web applications Download PDF

Info

Publication number
JP6533871B2
JP6533871B2 JP2018522725A JP2018522725A JP6533871B2 JP 6533871 B2 JP6533871 B2 JP 6533871B2 JP 2018522725 A JP2018522725 A JP 2018522725A JP 2018522725 A JP2018522725 A JP 2018522725A JP 6533871 B2 JP6533871 B2 JP 6533871B2
Authority
JP
Japan
Prior art keywords
application
session
client
client application
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018522725A
Other languages
Japanese (ja)
Other versions
JP2018536232A (en
Inventor
ウラジミール ミテウスキ,
ウラジミール ミテウスキ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nasdaq Inc
Original Assignee
Nasdaq 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 Nasdaq Inc filed Critical Nasdaq Inc
Publication of JP2018536232A publication Critical patent/JP2018536232A/en
Application granted granted Critical
Publication of JP6533871B2 publication Critical patent/JP6533871B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

関連出願へのクロスリファレンス
本願は、2015年11月6日に出願された米国特許仮出願第62/252,295号の優先権の利益を享受する。その出願の開示全体は、参照により本明細書に組み入れられる。
CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of priority from US Provisional Patent Application No. 62 / 252,295, filed November 6, 2015. The entire disclosure of that application is incorporated herein by reference.

ウェブアプリケーションの展開は、多数のユーザが、ひとつ以上のウェブアプリケーションおよび/またはウェブアプリケーションによって制御されるリソースにアクセスすることを可能とする。例えば、大企業はその企業ネットワークや他のインターネットアクセス可能コンピュータの中にあるひとつ以上のサーバに企業ソフトウエアアプリケーション(「ウェブアプリケーション」)を展開し、全ての従業員および/またはクライアントがウェブを介してそのアプリケーションにアクセスすることを可能にしてもよい。そのようなアプリケーションのウェブアクセス性は、いつでも、また、クライアントデバイスがネットワーク接続を有する場所ならどこからでも、そのアプリケーションにアクセスすることができる能力を従業員および/またはクライアントに提供する。   Deployment of web applications allows a large number of users to access resources controlled by one or more web applications and / or web applications. For example, a large enterprise may deploy enterprise software applications ("web applications") on one or more servers within its corporate network or other Internet accessible computers, with all employees and / or clients via the web. Access to the application. The web accessibility of such applications provides employees and / or clients with the ability to access the application anytime, anywhere from where the client device has network connectivity.

また、ウェブアプリケーションは、異なるタイプの情報処理デバイスを用いてアクセス可能である。同じユーザが異なる情報処理デバイスを用いてウェブアプリケーションにアクセスする場合がある。例えば、ユーザは彼のスマートフォンを用いてウェブアプリケーションへのアクセスを試みる一方、同時に、デスクトップコンピュータを介してそのウェブアプリケーションにアクセスするかもしれない。ウェブアプリケーションは同じユーザによって二つの異なるブラウザ(例えば、グーグル社のクロームや、マイクロソフト社のインターネットエクスプローラ)を用いてアクセスされる場合がある。   Also, web applications can be accessed using different types of information processing devices. The same user may access a web application using different information processing devices. For example, a user may attempt to access a web application using his smartphone while simultaneously accessing the web application via a desktop computer. The web application may be accessed by the same user using two different browsers (eg, Google's Chrome, Microsoft's Internet Explorer).

したがって、ウェブアプリケーションの展開は、アクセス性および可用性に関する数多くの利点を提供する。同じユーザが複数のデバイスやブラウザおよび/または他のクライアントアプリケーションを用いて同時にウェブアプリケーションにアクセスすることができる能力は、ユーザとウェブアプリケーションとの相互作用の性質、例えば効率および利便性、を改善することができる。   Thus, deployment of web applications provides a number of benefits with respect to accessibility and availability. The ability of the same user to simultaneously access a web application using multiple devices, browsers and / or other client applications improves the nature of the user's interaction with the web application, such as efficiency and convenience. be able to.

しかしながら、ソフトウエア技術およびネットワーク技術の発展により提供されるウェブアプリケーションの利便性の増大は、それが適切に制御されない場合、アクセス権限の誤用を生じさせうる。例えば、プロバイダがユーザごとにライセンス料やアクセス料を課金するウェブアプリケーションの場合、あるユーザは、そのウェブアプリケーションにアクセスするのに他のユーザの権限を用いることで、料金全体を支払うことを避けようとし、したがって潜在的にプロバイダからある程度の収入を奪うことが考えられる。アクセス権限のそのような誤用は、また、料金を支払っているユーザが利用可能なシステム容量に悪影響を与える可能性があり、および/または、ユーザが体験するシステム性能に悪影響を与える可能性がある。   However, the increased convenience of web applications provided by the development of software and network technologies can lead to the misuse of access privileges if it is not properly controlled. For example, in the case of a web application in which the provider charges a license fee or access fee for each user, one user may avoid paying the entire fee by using the authority of another user to access the web application. Therefore, it is possible to potentially steal some income from the provider. Such misuse of access rights can also adversely affect system capacity available to users paying fees and / or can adversely impact system performance experienced by users .

したがって、増大する商用的価値を有するより多くの企業ソフトウエアアプリケーションがウェブアプリケーションとして展開されている状況において、そのようなアプリケーションのアクセス性を改善し、アプリケーションプロバイダのリソースの保護を改善するための技術が必要とされている。
著作権表示
Thus, techniques for improving the accessibility of such applications and improving the protection of application provider resources in situations where more enterprise software applications with increasing commercial value are being deployed as web applications. Is required.
Copyright notice

本特許書類の開示の一部は著作権保護の対象となるものを含む。著作権者は、任意の者による本特許書類または本特許開示の特許商標庁にて現れる態様での複製について反対することはないが、そうでない場合は何であれ全ての著作権を留保する。   A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright holder does not oppose copying by any person in this patent document or in the manner that it appears in the Patent and Trademark Office of this patent disclosure, but reserves all copyright in any case otherwise.

開示される技術は、ウェブアプリケーションおよびそのようなアプリケーションによって制御されるリソースへのアクセスを制御することに関する。開示される技術はシングルサインオン能力を提供する。そこでは、クライアントアプリケーションからウェブアプリケーションに既にサインオンしているユーザは、後に彼/彼女が同じまたは別のクライアントアプリケーションからウェブアプリケーションにアクセスする必要がある場合に、再度のサインオンを要求されないであろう。シングルサインオン能力は、ユーザがサインオンプロセスを行わなければならない回数を低減することにより、ウェブアプリケーションに関連付けられたユーザ体験を改善することができる。開示される技術は、サーバに複数ログイン防止能力を提供する。複数ログイン防止を用いることで、潜在的に疑わしいサインオンシナリオを検出し、疑わしいサインオンが検出された場合にはひとつ以上のアクティブなセッションを無効化することができる。   The disclosed technology relates to controlling access to web applications and resources controlled by such applications. The disclosed technology provides single sign-on capability. There, a user who is already signed on to a web application from a client application will not be required to sign on again if he / she needs to access the web application from the same or another client application I will. The single sign-on capability can improve the user experience associated with web applications by reducing the number of times the user has to perform the sign-on process. The disclosed technology provides the server with multiple login prevention capabilities. Multiple login prevention can be used to detect potentially suspicious sign-on scenarios and deactivate one or more active sessions if suspicious sign-on is detected.

本概要は、発明の詳細な説明で以下にさらに説明される単純化された概念の選択を紹介するために提供される。本概要は、クレームに係る主題の主要な特徴または不可欠な特徴を識別することと、或いは、クレームに係る主題の範囲を限定するために用いられることとのいずれをも意図するものではなく、むしろ本概要は本書面で説明される主題の概観を提供することを意図するものである。したがって、上述した特徴は例示にすぎず、本明細書で説明される主題の他の特徴、態様、および利点は、後述する詳細な説明、図面、および請求項から明らかになるであろうということは理解されたい。   This summary is provided to introduce a selection of simplified concepts that are further described below in the Detailed Description of the Invention. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter, but rather This summary is intended to provide an overview of the subject matter described in this document. Accordingly, the features described above are merely exemplary, and other features, aspects, and advantages of the subject matter described herein will become apparent from the detailed description, figures, and claims set forth below. Should be understood.

ある例示的な実施の形態に係る、ひとつ以上のクライアントデバイスと、ウェブアプリケーションを実行するひとつ以上のサーバデバイスと、を有する計算環境を示す。1 illustrates a computing environment having one or more client devices and one or more server devices executing a web application, according to an example embodiment.

ある例示的な実施の形態に係る、図1のひとつ以上のサーバによって維持されてもよいデータテーブルのうちのいくつかを示す。FIG. 6 illustrates some of the data tables that may be maintained by one or more of the servers of FIG. 1 in accordance with an exemplary embodiment.

ある例示的な実施の形態に係る、シングルサインオン動作が行われる場合の、クライアントデバイスとサーバデバイスとの間のやりとりを示すフロー図を示す。FIG. 6 shows a flow diagram illustrating interactions between a client device and a server device when single sign-on operation is performed according to an exemplary embodiment.

ある例示的な実施の形態に係る、複数ログイン防止動作が行われる場合の、クライアントデバイスとサーバデバイスとの間のやりとりを示すフロー図を示す。FIG. 6 shows a flow diagram illustrating the interaction between the client device and the server device when multiple logins prevention operation is performed according to an exemplary embodiment.

図5(図5Aおよび図5B)は、ある例示的な実施の形態に係る、ユーザがサインインする場合の、クライアントデバイスとサーバデバイスとの間のやりとりを示すフロー図を示す。FIG. 5 (FIGS. 5A and 5B) shows a flow diagram illustrating interactions between a client device and a server device when a user signs in, according to an example embodiment. 図5(図5Aおよび図5B)は、ある例示的な実施の形態に係る、ユーザがサインインする場合の、クライアントデバイスとサーバデバイスとの間のやりとりを示すフロー図を示す。FIG. 5 (FIGS. 5A and 5B) shows a flow diagram illustrating interactions between a client device and a server device when a user signs in, according to an example embodiment.

ある例示的な実施の形態に係る、シングルサインオン動作の後に複数ログイン防止が続く場合の、クライアントデバイスとサーバデバイスとの間のやりとりを示すフロー図を示す。FIG. 6 shows a flow diagram illustrating the interaction between the client device and the server device when single sign on operation is followed by multiple login protection according to an exemplary embodiment.

ある例示的な実施の形態に係る、ネイティブアプリケーションが起動時にウェブアプリケーションにサインオンするために用いるプロセスを示す。8 illustrates a process that a native application uses to sign on to a web application at launch time, according to an example embodiment.

ある例示的な実施の形態に係る、クライアントのデータ要求についてのやりとりのフローチャートを示す。Fig. 6 shows a flowchart of an exchange of data requests for a client according to an exemplary embodiment.

ある例示的な実施の形態に係る、クライアントデバイス上のネイティブアプリケーションの上に重ね合わされて提示されているサインオンウインドウを示す。8 illustrates a sign-on window being presented superimposed over a native application on a client device according to an example embodiment.

ある例示的な実施の形態に係る、クライアントデバイスおよび/またはサーバを実装可能な計算環境を模式的に示す。1 schematically illustrates a computing environment in which client devices and / or servers may be implemented in accordance with an illustrative embodiment.

本明細書で説明される技術はとりわけひとつ以上のウェブアプリケーションへのユーザアクセスを制御することに関する。ある例示的な実施の形態はシングルサインオン(SSO)能力を提供し、SSO能力は、ログインプロセスを一度実行すれば、同じアプリケーションや関連アプリケーションの他の側面への後のアクセスをより少ない認証で、またはさらにサインオンアクションを行う必要なしに、行うことができるという利便性をユーザに提供する。ある例示的な実施の形態は複数ログイン防止(MLP)能力を含んでもよく、MLP能力は、ウェブアプリケーションにより生成される収入の流れを保護することの助けとなり、また、ウェブアプリケーションを実行するサーバの処理容量を保護することの助けとなりうる。MLP能力を用いることで、例えば、同時に複数のエンドポイントからあるウェブアプリケーションにアクセスするために同じ識別子/資格証明(例えば、ユーザIDや特定ユーザの資格証明)が用いられたときを検出し、ウェブアプリケーションへのアクセス能力の誤用を低減するためにひとつ以上のセッションをキャンセルするよう動作することができる。ある実施の形態により提供されるSSO能力および/またはMLP能力は、任意のタイプのウェブアプリケーションにおいて効率やアクセススピードやユーザ利便性を向上させるが、多数のアプリケーションに頻繁にかつ利便性高くアクセスすることができる能力をユーザに提供するシングルページアプリケーション(SPA)フレームワークを伴うウェブアプリケーションにおいてさらに有益でありうる。   The techniques described herein relate, inter alia, to controlling user access to one or more web applications. Certain exemplary embodiments provide single sign-on (SSO) capabilities, which, once performed in the login process, require less authentication for later access to other aspects of the same application or related applications. Provide the user with the convenience of being able to do so without the need to perform further sign on actions. Certain example embodiments may include multiple login prevention (MLP) capabilities, which help protect the revenue stream generated by the web application, and of the server running the web application. It can help to protect the processing capacity. Using MLP capabilities, for example, detects when the same identifier / credential (eg, user ID or credentials of a specific user) is used to access a web application from multiple endpoints simultaneously, It can operate to cancel one or more sessions to reduce misuse of access to the application. The SSO and / or MLP capabilities provided by an embodiment improve efficiency, access speed, and user convenience in any type of web application, but frequently and conveniently access multiple applications. It may be further beneficial in web applications with a single page application (SPA) framework that provides users with the ability to

図1は、ある実施の形態に係る、ひとつ以上のサーバ102(本明細書では「サーバインフラストラクチャ」とも称される)とひとつ以上のクライアント104とを含む非限定的計算環境100を示す。ひとつ以上のサーバ102はクライアント104およびひとつ以上の外部サーバと通信し、その結果、クライアント104のユーザはひとつ以上のサーバ102上で実行されるウェブアプリケーション112にアクセスすることができる。また、サーバ102はドキュメント管理システム108と通信してもよい。サーバ102、クライアント104、外部サーバ106、およびドキュメント管理システム108間の通信はインターネットや他の任意の通信ネットワークを介するものであってもよい。   FIG. 1 illustrates a non-limiting computing environment 100 including one or more servers 102 (also referred to herein as a “server infrastructure”) and one or more clients 104, according to an embodiment. The one or more servers 102 communicate with the client 104 and one or more external servers so that the user of the client 104 can access the web application 112 running on the one or more servers 102. The server 102 may also be in communication with the document management system 108. Communication between server 102, client 104, external server 106, and document management system 108 may be via the Internet or any other communication network.

サーバ102は、ネットワークを介して互いに通信可能に接続されるひとつ以上の物理的なサーバコンピュータに実装されてもよい。ひとつ以上の物理的なサーバコンピュータは地理的に同じ場所にあってもよいし、分散していてもよい。サーバ102は、データベース管理システム110と、ひとつ以上のサーバ側ウェブアプリケーション112(例えば、112aおよび112b)と、コアサービスアプリケーション114と、を含んでもよい。   The server 102 may be implemented on one or more physical server computers communicably connected to each other via a network. One or more physical server computers may be geographically co-located or distributed. The server 102 may include a database management system 110, one or more server-side web applications 112 (e.g., 112 a and 112 b), and a core service application 114.

ウェブサーバ、アプリケーションサーバおよびデータベースからなる三層モデルにしたがって各ウェブアプリケーション112を設計し、動作させてもよい。従来のシステムと同様に、各ウェブアプリケーション112のウェブサーバは、HTTPを介して、およびJSON、HTML、XML、JavaScript、Cascading Style Sheets(CSS)などの他のプロトコルを介して、外部エンティティと通信する能力を含む。各ウェブアプリケーション112のアプリケーションサーバはアプリケーションの処理ロジックを提供し、各ウェブアプリケーション112のデータベースはデータ格納およびデータ読み出しを提供する。   Each web application 112 may be designed and operated according to a three-tier model consisting of a web server, an application server and a database. As with conventional systems, the web server of each web application 112 communicates with external entities via HTTP and other protocols such as JSON, HTML, XML, JavaScript, Cascading Style Sheets (CSS), etc. Including ability. The application server of each web application 112 provides the processing logic of the application, and the database of each web application 112 provides data storage and data retrieval.

ウェブアプリケーション112は、ユーザ認証を管理するためにコアサービスアプリケーション114とやりとりし、クライアント104から入力を受信しかつクライアント104に送信するためにクライアント104(例えば104aおよび104b)とやりとりし、クライアント104上で実行されている要求元のクライアントアプリケーションに提供されるべき情報を取得するためにデータベース管理システム110および/または外部サーバ106とやりとりしてもよい。ある実施の形態では、要求元のクライアントに提供される情報のいくらかまたは全ては、ウェブアプリケーションそのものおよび/または同じひとつ以上のサーバ102がローカルで実行している他のウェブアプリケーションによって生成されてもよい。   Web application 112 interacts with core service application 114 to manage user authentication, interacts with clients 104 (eg, 104 a and 104 b) to receive input from client 104 and send to client 104, on client 104. It may interact with the database management system 110 and / or the external server 106 to obtain the information to be provided to the requesting client application being executed at. In some embodiments, some or all of the information provided to the requesting client may be generated by the web application itself and / or other web applications locally executed by the same one or more servers 102. .

コアサービスアプリケーション114は上述の三層モデルにしたがい設計され動作してもよく、また、ウェブアプリケーション112によって共通に用いられるひとつ以上のサービスを提供してもよい。コアサービスアプリケーション114によって提供されてもよい例示的なサービスは、ユーザの認証、セッションの管理等を含む。   Core service application 114 may be designed and operated according to the three-tier model described above, and may provide one or more services commonly used by web application 112. Exemplary services that may be provided by the core service application 114 include user authentication, session management, and the like.

ある実施の形態では、コアサービスアプリケーション114はまた、外部サーバ106に対してセッション管理を提供することができる。例えば、二つ以上のウェブアプリケーション112が特定の外部サーバ106からデータを取得するユースケースでは、コアサービスアプリケーション114は、サーバ102と外部サーバ106との間のセッションを、クライアント104とサーバ102との間の対応する他のセッションにしたがって管理する能力を提供してもよい。各外部サーバはサーバ102で維持されているセッションテーブルの一部のコピー119を保持してもよい。   In one embodiment, core service application 114 may also provide session management for external server 106. For example, in a use case where two or more web applications 112 obtain data from a particular external server 106, the core service application 114 can set up a session between the server 102 and the external server 106 between the client 104 and the server 102. May provide the ability to manage according to other corresponding sessions between Each external server may maintain a copy 119 of a portion of the session table maintained at server 102.

ウェブアプリケーション112は、クライアント104から要求を受信し、データベース110および/または外部サーバ106からの情報の処理を行いおよび/または該情報を取得し、該処理および/または取得されたデータからの結果でクライアント104に応答するよう動作する。ウェブアプリケーション112はユーザおよびユーザセッションを管理するためにコアサービス114を用いてもよい。   The web application 112 receives the request from the client 104, processes the information from the database 110 and / or the external server 106 and / or obtains the information, as a result from the processing and / or the obtained data It operates to respond to the client 104. Web application 112 may use core services 114 to manage users and user sessions.

ウェブアプリケーションは、ひとつ以上のクライアント側コンポーネントと、ひとつ以上のサーバ側コンポーネントと、を備えてもよい。ウェブアプリケーションのクライアント側コンポーネントは、ユーザインタフェースデバイス上での情報の提供(例えば、表示)を行うことによるユーザインタフェースの取り扱いと、ユーザ入力の受け付けと、等を提供するよう動作してもよい。サーバ側コンポーネントは、認証、サービス測定、受け付けたユーザ入力にしたがいユーザに提供されるべき情報の生成または取得、を提供してもよい。   A web application may comprise one or more client-side components and one or more server-side components. The client-side component of the web application may be operative to provide user interface handling by providing (eg, displaying) information on the user interface device, accepting user input, and the like. The server-side component may provide authentication, service measurement, generation or acquisition of information to be provided to the user according to the received user input.

実施の形態はウェブアプリケーションの特定のタイプに限定されない。実施の形態で使用可能なウェブアプリケーションは、シングルページアプリケーション(SPA)モデルまたは任意の非SPAモデルもしくはそれらの組み合わせにしたがい設計されたものを含んでもよい。   Embodiments are not limited to a particular type of web application. Web applications that can be used in embodiments may include single page application (SPA) models or any non-SPA models or those designed according to a combination thereof.

SPAは、単一のウェブページ内で動作するウェブアプリケーションである。SPAでは、単一のウェブページのコンテンツはウェブサーバによってウェブブラウザに送信され、そのページはロード/描画され、これは従来のウェブアプリケーションについて上述した通りである。その後、ユーザがアプリケーション内の異なるコンテンツを見ることを希望する場合、ユーザはハイパーリンクをクリックするかページに入力する。しかしながら、非SPAウェブアプリケーションでそうであるように異なるページに導く代わりに、同じページがロードされ続け、そのコンテンツが動的に更新される。この動的更新は異なる複数の方法で達成可能である。それは、例えば、ウェブブラウザが新たなコンテンツのバックグラウンドHTTPフェッチを行うことや、(JavaScriptコードを介して)ページのドキュメントオブジェクトモデル(DOM)を更新することや、および/または他の技術を含んでもよい。   SPA is a web application that operates within a single web page. In SPA, the content of a single web page is sent by the web server to the web browser, and the page is loaded / rendered, as described above for conventional web applications. Then, if the user wishes to view different content in the application, the user clicks on the hyperlink or enters on the page. However, instead of directing to different pages as in non-SPA web applications, the same page continues to be loaded and its content is dynamically updated. This dynamic update can be achieved in different ways. It may also include, for example, the web browser doing a background HTTP fetch of new content, updating the document object model (DOM) of the page (via JavaScript code), and / or other techniques. Good.

Angular JS(登録商標)はSPAを生成するために使用されるウェブアプリケーションフレームワークである。ウェブブラウザにおいて、Angular JS JavaScriptライブラリがロードされ、Angular JS JavaScriptおよび他のAngularJSコーディングコンストラクトと共に埋め込まれたHTMLテンプレートを解釈する。その結果、得られるページはテンプレートで規定される通りに動作する。また、SPAアプリケーションのために他のフレームワーク(例えば、Backbone.js、Ember.js、およびReact)を用いてもよい。   Angular JS® is a web application framework used to generate SPAs. In a web browser, the Angular JS JavaScript library is loaded and interprets HTML templates embedded with Angular JS JavaScript and other Angular JS coding constructs. As a result, the resulting page operates as defined in the template. Also, other frameworks (eg, Backbone. Js, Ember. Js, and React) may be used for SPA applications.

ある非SPAウェブアプリケーションモデルでは、ウェブアプリケーションは異なる複数のウェブページを含む。アプリケーション内の特定のウェブページを描画するために、以下のやりとりの集合が行われる。クライアントデバイスのウェブブラウザが(ハイパーテキストトランスファプロトコル(HTTP)メッセージを用いて)ウェブサーバに特定のウェブページを要求し、それに応答して、ウェブサーバが(HTTPを用いて)ページのコードをウェブブラウザに返信し、そのコードが例えばHTML、JavaScript(登録商標)、およびカスケーディングスタイルシート(CSS)コードを含み、ウェブブラウザが次いでコードをロードしてページを描画し、それによりユーザがページを見て相互作用できるようにする。ユーザが後にアプリケーション内の異なるコンテンツを見ることを希望する場合、ユーザはアプリケーション内の異なるページを指定するハイパーリンクをクリックするかそれを指定する入力をページに対して行い、次いで、その異なるページに対して上述の要求/応答/ロード/描画手順が行われる。   In some non-SPA web application models, the web application includes different web pages. The following set of interactions is made to render a particular web page within the application. The client device's web browser requests the web server (using hypertext transfer protocol (HTTP) messages) a specific web page, and in response, the web server (using HTTP) the page's code to the web browser And the code includes, for example, HTML, JavaScript, and Cascading Style Sheet (CSS) code, and the web browser then loads the code and renders the page, so that the user looks at the page Allow interaction. If the user later wishes to view different content in the application, the user clicks on a hyperlink specifying a different page in the application or provides an input to the page specifying it, and then on that different page The above-described request / response / load / draw procedure is performed.

データベース管理システム110(本明細書において単にデータベースと称される場合がある)は市販のDBMSや他のデータ記録管理システムであってもよい。単一のDBMSとして示されているが、DMBS110はひとつ以上の別個のデータベースを含んでもよい。実施の形態はデータベース管理システムのタイプに限定されない。   Database management system 110 (which may be referred to herein simply as a database) may be a commercially available DBMS or other data records management system. Although shown as a single DBMS, DMBS 110 may include one or more separate databases. Embodiments are not limited to the type of database management system.

クライアント104aおよび104bは同じまたは異なるクライアントアプリケーションを実行するよう構成されてもよい。図1に示される例示的な実施の形態では、第1クライアント104aはウェブブラウザA116とウェブブラウザB117とを含む。クライアント104aはまた、ネイティブアプリケーションであるクライアント側アプリケーション120aをそれに保持する形で有してもよい。ブラウザA116を用いてウェブアプリケーション112にアクセスする場合、ウェブアプリケーション112のクライアント側コード118はブラウザA116内で実行される。同じ例示的な実施の形態では、第2クライアント104bは、ネイティブアプリケーションであってもよいアプリケーション120bを実行するよう構成される。クライアント104bはネイティブアプリケーション120bに加えてブラウザ(例えば、ブラウザAやブラウザCなどとして示される)を有してもよい。クライアント側コード118およびアプリケーション120は、サーバ102上の対応するウェブアプリケーションのためのクライアント側処理を実行してもよい。   Clients 104a and 104b may be configured to run the same or different client applications. In the exemplary embodiment shown in FIG. 1, the first client 104a includes a web browser A116 and a web browser B117. The client 104a may also have a client-side application 120a, which is a native application, in its own right. When accessing the web application 112 using the browser A 116, the client-side code 118 of the web application 112 is executed within the browser A 116. In the same exemplary embodiment, second client 104b is configured to execute application 120b, which may be a native application. The client 104b may have a browser (for example, shown as a browser A or a browser C) in addition to the native application 120b. Client-side code 118 and application 120 may perform client-side processing for the corresponding web application on server 102.

図1に示されるように、クライアントアプリケーション(例えば、116/118や120a/120b)がウェブアプリケーション112と通信するとき、ウェブアプリケーション112はクライアントが要求した任意の情報をひとつ以上の外部サーバ106から取得し、クライアントアプリケーションに提供してもよい。ある実施の形態では、要求元のクライアント104に提供される情報のいくらかまたは全てはサーバ102によってローカルで生成されてもよい。   As shown in FIG. 1, when a client application (eg, 116/118 or 120a / 120b) communicates with the web application 112, the web application 112 obtains any information requested by the client from one or more external servers 106 And may be provided to client applications. In some embodiments, some or all of the information provided to the requesting client 104 may be generated locally by the server 102.

クライアント104は、パーソナルコンピュータ、モバイルコンピュータ、タブレット、スマートフォン、および他の電子デバイスを含んでもよい。ある例示的な実施の形態では、少なくともディスプレイとユーザ入力のための入力デバイスとサーバデバイスとの通信のための通信インタフェースとを含む任意の電子計算デバイスはクライアントデバイスとして動作しうる。   Clients 104 may include personal computers, mobile computers, tablets, smartphones, and other electronic devices. In an exemplary embodiment, any electronic computing device, including at least a display and an input device for user input and a communication interface for communication with the server device, may operate as a client device.

外部サーバ106(例えば、106a、106b、106c)は、ひとつ以上のサーバ102を制御するエンティティとは異なるエンティティ(例えば、管理エンティティ)によって制御されるひとつ以上のサーバを含んでもよい。例えば、外部サーバ106のうちのひとつ以上は、サービスプロバイダまたはベンダによって管理されてもよい。サービスプロバイダまたはベンダは、所定の(例えば、企業とベンダとによって以前に合意された)サービス明細の下、クライアントデバイス104のユーザに種々のアプリケーションデータへのアクセスおよび/または解析を提供する。サービス明細は、外部サーバへのアクセスのユーザ数、情報のタイプおよび量、利用期間、利用頻度等のうちのひとつ以上い基づくものであってもよい。   The external servers 106 (e.g., 106a, 106b, 106c) may include one or more servers controlled by an entity (e.g., a management entity) different from the entity that controls the one or more servers 102. For example, one or more of the external servers 106 may be managed by a service provider or vendor. The service provider or vendor provides the user of client device 104 with access and / or analysis of various application data under predetermined (e.g., previously agreed upon by the enterprise and vendor) service specifications. The service specification may be based on one or more of the number of users accessing the external server, the type and amount of information, the usage period, the usage frequency, and the like.

図1に示されるソフトウエアモジュールがハードウエアコンポーネント(例えば、プロセッサやメモリ)によって保持され実行されることは理解されるべきであり、さらに、ソフトウエアモジュールが任意の動作を行うと本明細書で説明するときはいつでも、それは説明を簡単にするためにのみなされるものであって、実際は、その動作はソフトウエアモジュールを構成するインストラクションおよびデータにしたがい下層のハードウエアが行うものであることは理解されるべきである。本明細書で説明されるフィーチャを実装するために用いられてもよい例示的なハードウエアコンポーネントに関するさらなる詳細は、本明細書の他の場所と共に、図10を参照して後に提供される。   It should be understood that the software modules shown in FIG. 1 are held and executed by hardware components (eg, processor and memory), and further, as software modules perform any operations herein. At any time when explaining, it is understood only to simplify the explanation, and in practice the operation is carried out by the underlying hardware in accordance with the instructions and data that make up the software module. It should be. Further details regarding exemplary hardware components that may be used to implement the features described herein are provided below with reference to FIG. 10, as well as elsewhere herein.

例示的な実装では、計算環境100はナスダックコーポレイションなどの企業に関連付けられてもよい。例示的なウェブアプリケーション112はリアルタイムマーケット解析アプリケーションとクライアントアカウント状態アプリケーションとを含んでもよい。ウェブアプリケーション112のユーザは、金融アナリストや企業の他の従業員を含んでもよい。コアサービスアプリケーション114は、管理(例えば、ユーザアカウント生成、資格管理等)、認証(例えば、ユーザが所定のサービスにアクセスするためのセッションの生成/管理等)、ユーザ承認(例えば、ユーザが所定のサービスやフィーチャにアクセスする権限があるかのチェック等)、などの共通サービスを提供してもよい。サーバ102は、ウェブアプリケーション112、コアサービスアプリケーション114および関連ソフトウエアを実行するために企業が用いるひとつ以上のサーバおよび関連インフラストラクチャを表してもよい。ドキュメント管理システム108は、企業のユーザにサービスを届けるためにウェブアプリケーションおよび/またはコアサービスアプリケーションと通信する顧客関係管理アプリケーションを含んでもよい。   In the exemplary implementation, computing environment 100 may be associated with an enterprise, such as Nasdaq Corporation. The example web application 112 may include a real time market analysis application and a client account status application. Users of web application 112 may include financial analysts and other employees of a business. The core service application 114 performs management (eg, user account generation, qualification management, etc.), authentication (eg, generation / management of a session for the user to access a predetermined service, etc.), user approval (eg, user predetermined It may provide common services such as checking whether the user is authorized to access a service or feature. The server 102 may represent one or more servers and associated infrastructure that the enterprise uses to execute the web application 112, the core service application 114 and associated software. The document management system 108 may include a customer relationship management application that communicates with web applications and / or core service applications to deliver services to users of the enterprise.

この例示的な実装では、外部サーバ106はそれぞれ、対応するアプリケーションデータベンダによって運用されてもよい。各ベンダは、ある種のサービス明細(例えば、データタイプや利用量やユーザ数などに基づく合意された価格)の下、ナスダックコーポレイションなどのエンティティにリアルタイム金融マーケット関連情報などのアプリケーションデータを提供してもよい。   In this exemplary implementation, each external server 106 may be operated by a corresponding application data vendor. Each vendor provides application data such as real-time financial market related information to an entity such as Nasdaq Corporation under certain service specifications (for example, agreed prices based on data type, usage amount, number of users, etc.) It is also good.

アナリストがクライアント104aを用いてサーバ102上のリアルタイムマーケット解析アプリケーションにアクセスすると、SPAがクライアントデバイスに表示され、ベンダ(例えば、外部サーバ106を運用するもの)および/または企業の内部アナリスト等からの種々のリアルタイムまたは付加価値付き情報が、表示されているSPAのひとつ以上の部分に表示されうる。   When an analyst accesses the real-time market analysis application on the server 102 using the client 104a, the SPA is displayed on the client device and from the vendor (e.g., one that operates the external server 106) and / or the internal analyst of the company etc. A variety of real-time or value-added information may be displayed on one or more parts of the displayed SPA.

外部サーバ106(例えば、ベンダ)は、要求された情報を提供しそのサービスにアクセスしているユーザを特定することができるが、例えば企業とベンダとの間で合意されたサービス明細で規定される利用条件にユーザが従うことを確証するために、企業(「ベンダオブレコード」として)に依存してもよい。例えば、特定のベンダとの合意に基づいて、コアサービスアプリケーションを用いることで、その特定のベンダにアクセスし/その特定のベンダからデータを取得するための資格(アクセス可能なデータのタイプ/量の指定やもしあれば他の制限)をユーザおよび/またはウェブアプリケーションに割り当てることができる。コアサービス114はベンダのデータに対する正当な資格を有する対応するユーザについて、そのベンダとのセッションを確立してもよい。コアサービス114は、各ベンダにおいて、セッションテーブル(例えば、116)をもたらすか維持してもよい。例えばサーバ102上のウェブアプリケーションのうちのひとつを通じて、クライアントデバイス114のユーザがベンダにデータを要求する場合、ある実施の形態では、ベンダはそのセッションテーブルのコピーをチェックし、要求元のユーザの資格が正当であるかの検証をコアサービス114に要求し、資格が正当であれば要求されたデータを提供するようにしてもよい。   An external server 106 (e.g., a vendor) can provide the requested information and identify the user accessing the service, as defined, for example, in the service description agreed between the enterprise and the vendor. It may depend on the enterprise (as a "vendor of record") to ensure that the user follows the terms of use. For example, based on the agreement with a particular vendor, using the core service application will qualify for accessing / obtaining that particular vendor / type of data from that particular vendor (of accessible data type / amount Designated and other restrictions (if any) can be assigned to the user and / or web application. Core service 114 may establish a session with the vendor for the corresponding user with valid credentials for the vendor's data. Core service 114 may provide or maintain a session table (eg, 116) at each vendor. If, for example, the user of client device 114 requests data from a vendor through one of the web applications on server 102, in one embodiment, the vendor checks the copy of its session table and the credentials of the requesting user May be requested to the core service 114, and the requested data may be provided if the qualification is valid.

図2は、ある例示的な実施の形態に係る、コアサービスアプリケーション114によって維持されてもよくおよび/またはコアサービスアプリケーション114がアクセス可能なデータテーブル200の例示的な集合を示す。「テーブル」と称されてはいるが、図2に関連して議論されるデータは、コアサービスアプリケーション114および/またはデータを利用するよう構成される他のアプリケーションがアクセス可能な任意の形態やデータ構造で保持されてもよい。   FIG. 2 illustrates an exemplary collection of data tables 200 that may be maintained by and / or accessible to core service application 114, according to an exemplary embodiment. Although referred to as a “table”, the data discussed in connection with FIG. 2 may be any form or data accessible to the core service application 114 and / or other applications configured to utilize the data. It may be held in structure.

ユーザ認証情報202はユーザ認証情報のテーブルを含んでもよい。このテーブルは、例えばウェブアプリケーションのうちのひとつ以上へのサインオン中にユーザを認証するためにコアサービス114によってアクセスされる。ユーザ認証情報202において、各ユーザについて、ユーザID、パスワード、ユーザ特定クッキー、およびユーザに関連付けられた資格などのうちのいずれかなどの特定情報が維持されてもよい。   The user authentication information 202 may include a table of user authentication information. This table is accessed by the core service 114, for example, to authenticate the user during sign-on to one or more of the web applications. In user authentication information 202, specific information may be maintained for each user, such as any of a user ID, a password, a user specific cookie, and an entitlement associated with the user.

ユーザセッション情報204は、クライアントデバイス104のユーザなどのユーザがサーバ102上のウェブアプリケーションと現在アクティブなセッションにより通信するときのその現在アクティブなセッションの記録を含む。ユーザセッション情報204は、各行がアクティブなセッションを表すテーブルの形態であってもよい。ある実施の形態では、非アクティブセッション(例えば、最近不活性化された/キャンセルされたセッション)もまたテーブルにあってもよい。ユーザセッション情報テーブル204は、各セッションについて、ユーザID、セッションを利用するウェブアプリケーション、クライアント、認証セッション識別子および/またはひとつ以上のクッキーなどのフィールド/列を含んでもよい。テーブルはまた、セッションの開始時刻および終了時刻と現在の状態とを含んでもよい。状態は、例えば、セッションが断絶されたかまたは現在アクティブであるか、および断絶されているのであれば断絶の理由(例えば、MLPによる断絶)、を示してもよい。   User session information 204 includes a record of the currently active session when a user, such as a user of client device 104, communicates with a web application on server 102 through the currently active session. The user session information 204 may be in the form of a table in which each row represents an active session. In certain embodiments, inactive sessions (eg, recently deactivated / canceled sessions) may also be in the table. The user session information table 204 may include, for each session, fields / columns such as a user ID, a web application utilizing the session, a client, an authentication session identifier and / or one or more cookies. The table may also include the session start and end times and the current state. The state may indicate, for example, if the session is broken or is currently active, and if broken, the reason for the break (eg, a break due to MLP).

外部サーバセッション情報206は、対応する外部サーバ106に関するユーザセッションを保持する。ある実施の形態では、外部サーバセッション情報206は、外部サーバ106ごとのデータ構造で維持されてもよい。ある実施の形態では、各テーブル206を対応する外部サーバ106に提供することができる。この場合、要求が与えられたときに、外部サーバが、要求に関連付けられた許可および/または資格をローカルでチェックすることができる。ある実施の形態では、サーバデバイス102と外部サーバ106との間のセッションはユーザセッション情報204に基づくものであってもよく、別個のテーブルは不要でありうる。   The external server session information 206 holds the user session for the corresponding external server 106. In one embodiment, external server session information 206 may be maintained in a data structure for each external server 106. In one embodiment, each table 206 can be provided to a corresponding external server 106. In this case, when the request is given, the external server can locally check the permissions and / or entitlements associated with the request. In one embodiment, the session between server device 102 and external server 106 may be based on user session information 204, and a separate table may not be necessary.

資格情報208はウェブアプリケーションへのアクセスに関連付けられた資格に関する情報を含む。上述の通り、資格は、ユーザまたはユーザのグループに対して、ひとつ以上の外部サーバ(または他のリソース)へのアクセスの範囲を指定する。例えば、資格情報208は、各ユーザまたはユーザの各グループがアクセスを有する外部サーバ(ベンダ)およびデータのタイプを指定してもよい。資格はまた、同じユーザによる、複数のクライアントアプリケーションによる同時アクセス(例えば、ブラウザおよびネイティブアプリケーションを介した同時アクセス)が特定のウェブアプリケーションについて許されているかを指定してもよい。   The credentials 208 include information regarding the credentials associated with access to the web application. As mentioned above, entitlements specify the scope of access to one or more external servers (or other resources) for a user or group of users. For example, credential information 208 may specify the type of external server (vendor) and data that each user or group of users has access to. The entitlement may also specify if simultaneous access by multiple client applications (eg simultaneous access via browser and native application) by the same user is permitted for a particular web application.

図3は、ある例示的な実施の形態に係る、クライアント104aのユーザについてのシングルサインオンプロセス300で生じうる、クライアント104aとサーバ102との間のやりとりを示すフローチャートである。   FIG. 3 is a flow chart illustrating interactions between the client 104a and the server 102 that may occur in a single sign-on process 300 for a user of the client 104a, according to an exemplary embodiment.

プロセス300は、ユーザがクライアント104aを用いてブラウザを、サーバ102で実行されているウェブアプリケーションへと至らせたときに始まってもよい。例えば、ユーザはウェブブラウザに、ウェブアプリケーションにアクセスするための所定のURL(uniform resource locator)を入力してもよい。あるいはまた、ブラウザは、ユーザがウェブページに表示されるリンクを「クリック」したときにウェブアプリケーションへと導かれてもよい。ウェブアプリケーションへの最初の到着のときに出会うウェブアプリケーションのウェブページは「ランディングページ」と称される。   Process 300 may begin when the user directs the browser to a web application running on server 102 using client 104a. For example, a user may enter a predetermined URL (uniform resource locator) for accessing a web application in a web browser. Alternatively, the browser may be directed to the web application when the user "clicks" on a link displayed on the web page. The web pages of the web application encountered on the first arrival to the web application are called "landing pages".

ウェブブラウザ(例えば、インターネットエクスプローラブラウザ312)を用いてウェブアプリケーションのランディングページに辿り着いた後、動作302において、ユーザはウェブアプリケーション(例えば、324)にサインオンされる(「ログイン」とも称される)。サインオンプロセスは図5との関連で後に詳述される。ユーザのサインオンプロセスが成功すると、セッションが生成され、クッキーが生成される。セッションの生成は、例えばユーザセッション情報204などのセッションテーブルへのエントリの追加を含む。クッキーは生成されたセッションについて一意であってもよく、従来技術を用いて生成された文字列であってもよい。クッキーはサーバ102によってクライアント104aに返され、将来の使用のためにクライアント104aに保存される。ウェブアプリケーション324に対するクライアント104aを用いたユーザによる以後の要求(例えば、HTTP要求)はクッキーを含み、サーバ102は受信したクッキーを用いて関連要求の追跡を行ってもよい。この時点で、ユーザはウェブアプリケーションに適切にサインオンし、ブラウザコンテンツにおいて動作しているウェブアプリケーションのクライアント側部分はウェブアプリケーションのサーバ側部分とメッセージおよび/またはデータを交換することができる。   After reaching the landing page of the web application using a web browser (eg, Internet Explorer browser 312), the user is signed on to the web application (eg, 324) in operation 302 (also referred to as "login") ). The sign on process is detailed later in connection with FIG. If the user sign on process is successful, a session is generated and a cookie is generated. The creation of a session includes the addition of an entry to a session table, such as user session information 204, for example. The cookie may be unique for the generated session or may be a string generated using conventional techniques. The cookie is returned by the server 102 to the client 104a and stored on the client 104a for future use. Subsequent requests by users using client 104a to web application 324 (eg, HTTP requests) may include cookies, and server 102 may use the received cookies to track related requests. At this point, the user can properly sign on to the web application, and the client side portion of the web application operating on the browser content can exchange messages and / or data with the server side portion of the web application.

図3において、動作302は、ブラウザA312のフローレーンおよびウェブアプリケーション324のフローレーンおよびコアサービス326のフローレーンを実線の円でマークし、ブラウザB314のフローレーンおよびアプリケーション316のフローレーンが対応する破線の円を有するように、示されている。動作302などの動作におけるフローレーン内の実線の円は、そのフローレーンに対応するシステムコンポーネントがこの動作に能動的に参加している(例えば、他のシステムコンポーネントとメッセージを交換する)ことを示す。さらに、動作はそれが生じる時間的な順番にしたがいページの上から下へ並べられるのが一般的ではあるが、ある実施の形態では、動作のうちのひとつ以上は同時に生じてもよい。ある実施の形態は、図面に示されていない追加的なひとつ以上の動作を含んでもよく、および/または示されているひとつ以上の動作を含まなくてもよい。所定の動作においてシステムコンポーネントレベルのアクティビティを示すこの態様は、図3−6で用いられる。   In FIG. 3, operation 302 marks the flow lane of browser A 312 and the flow lane of web application 324 and the flow lane of core service 326 as a solid circle, and the flow lane of browser B 314 and the flow lane of application 316 correspond It is shown to have a circle of. The solid circle in the flow lane in an operation such as operation 302 indicates that the system component corresponding to that flow lane is actively participating in this operation (eg, exchanging messages with other system components) . Further, while it is common for actions to be ordered from the top of the page according to the order in which they occur, in some embodiments, more than one of the actions may occur simultaneously. Certain embodiments may include one or more additional operations not shown in the figures and / or may not include one or more operations shown. This aspect of showing system component level activity in a given operation is used in FIGS. 3-6.

動作304において、ネイティブアプリケーション316などの第2クライアントアプリケーション(例えば、316)がクライアント104aで起動される。ネイティブアプリケーション316はサーバ102上のウェブアプリケーション324にアクセスするアプリケーションである。ある例示的な実施の形態によると、ネイティブアプリケーションは、動作中にサーバ102上のウェブアプリケーション324からデータを取得するおよび/または該ウェブアプリケーション324とデータを交換するスプレッドシートアプリケーション(例えば、マイクロソフト社のエクセル)である。   At act 304, a second client application (eg, 316), such as native application 316, is launched at client 104a. The native application 316 is an application that accesses the web application 324 on the server 102. According to one exemplary embodiment, a native application acquires spreadsheet data from a web application 324 on the server 102 during operation and / or exchanges data with the web application 324 (e.g. Excel).

ネイティブアプリケーション316は、例えばウェブアプリケーション324に関連付けられたウェブサーバとHTTPメッセージを交換することにより、HTTPなどを介してサーバ102と通信するために、ひとつ以上のブラウザコントローラのうちのいずれかを用いるよう構成されてもよい。ネイティブアプリケーションがひとつ以上のブラウザコントローラを利用可能であってもよい。ブラウザコントローラは、エクセルプログラムなどのアプリケーションが、ウェブを介した制御およびデータ交換のために用いられるHTTP、JSONおよび/または他のプロトコルを利用する能力を提供する。例えば、ネイティブアプリケーションは、インターネットエクスプローラ、クローム、ファイヤフォックス、サファリなどのうちのひとつ以上用の、市販のまたは無料で利用可能なブラウザコントローラを組み入れてもよい。ネイティブアプリケーションはまた、SSO機能に関連付けられた能力を提供するカスタマイズされたアドインコンポーネント(例えば、318)を含んでもよい。例えば、アドイン318は、ネイティブアプリケーション316内のエクセルスプレッドシートが、ひとつ以上のブラウザコントローラを用いてウェブアプリケーション324と相互作用することを可能とする。ある例示的な実施の形態では、カスタムアドイン318はマイクロソフトオートメーションやマイクロソフトCOMを用いて生成される。   Native application 316 may use any of one or more browser controllers to communicate with server 102, such as via HTTP, by exchanging HTTP messages with, for example, a web server associated with web application 324 It may be configured. A native application may be able to use one or more browser controllers. The browser controller provides the ability for applications such as Excel programs to utilize HTTP, JSON and / or other protocols used for control and data exchange via the web. For example, the native application may incorporate a commercially available or freely available browser controller for one or more of Internet Explorer, Chrome, Firefox, Safari and the like. Native applications may also include customized add-in components (e.g., 318) that provide capabilities associated with the SSO functionality. For example, add-in 318 allows Excel spreadsheets in native application 316 to interact with web application 324 using one or more browser controllers. In one exemplary embodiment, custom add-in 318 is generated using Microsoft Automation or Microsoft COM.

ネイティブアプリケーション316が起動された後、動作306において、ネイティブアプリケーションはクライアントにインストールされているブラウザ(例えば、312および314)のいずれかについて少なくともひとつの既存のセッションがあるか否かを特定する。インストール中および/またはアプリケーション起動中に、クライアントストレージのうち各特定のブラウザについて知られているディレクトリ構成の場所を探すことや所定の設定を探すことなどの技術によって、クライアント上で利用可能なブラウザを、ネイティブアプリケーションに知らせてもよい。代替的にまたは追加的に、ネイティブアプリケーションは、クライアントにインストールされるブラウザのそれぞれについてのブラウザコントロール(例えば、320および322)を特定し、自動的に組み入れてもよい。実施の形態によると、カスタムアドイン318はネイティブアプリケーションによる使用に利用可能なブラウザコントローラを繰り返す。例えば、利用可能なブラウザコントローラのそれぞれについて、設定可能な所定の順序で、またはネイティブアプリケーション316によってブラウザコントローラが発見された順序で、ネイティブアプリケーションはブラウザコントローラをインスタンス化し、サーバ102にHTTP要求を送信する。要求は、ユーザ、クライアントデバイス、ウェブアプリケーション、および現在選択されているブラウザコントロールに対応するブラウザの全てまたは組み合わせを特定してもよい。セッションが既に存在するブラウザタイプが見つかるまで、または、既存のセッションを見出すことなく全てのブラウザタイプが探索されてしまうまで、このプロセスを繰り返す。セッションが既に存在するブラウザタイプを特定することに関するさらなる詳細は図7に関して後述される。   After native application 316 is launched, at operation 306, the native application determines if there is at least one existing session for any of the browsers (eg, 312 and 314) installed on the client. Browsers available on the client by techniques such as locating the directory structure known for each particular browser of the client storage and locating predetermined settings during installation and / or application launch. , May inform the native application. Alternatively or additionally, the native application may specify and automatically incorporate browser controls (eg, 320 and 322) for each of the browsers installed on the client. According to an embodiment, custom add-in 318 repeats the available browser controller for use by the native application. For example, for each of the available browser controllers, the native application instantiates the browser controller and sends an HTTP request to the server 102 in a configurable predetermined order or in the order in which the browser controller was discovered by the native application 316. . The request may specify all or a combination of the user, the client device, the web application, and the browser corresponding to the currently selected browser control. This process is repeated until a browser type in which a session already exists is found or until all browser types have been searched without finding an existing session. Further details regarding identifying the browser type for which a session already exists is described below with respect to FIG.

サーバ102がクライアント104aから要求を受け付けると、それは受け付けられた要求と共に提供された情報に対応する(例えば、HTTP要求に含まれているクッキー、ユーザ、クライアント、ウェブアプリケーション、およびブラウザのうちのいずれかまたはそれらの組み合わせのうちのいずれかに対応する)アクティブなセッションが存在するか否かを判定する。対応するセッションを特定するためにセッションテーブルを検索することにより、この判定がなされてもよい。例示的な実施の形態では、セッションが確立されるときに生成されるクッキーは、クライアントによって、サーバへの以後のHTTP要求のそれぞれにおいて送信され、サーバは受け付けたクッキーを用いることでセッションテーブル内の対応するセッションを一意に特定する。対応するセッションが現在アクティブであると判定された場合、対応するセッションに関連付けられたセッション情報および/またはクッキーがネイティブアプリケーションに返される。   When the server 102 receives a request from the client 104a, it corresponds to the information provided with the received request (e.g., any of a cookie, a user, a client, a web application, and a browser included in an HTTP request) Or determine whether there is an active session (corresponding to any of the combinations). This determination may be made by searching the session table to identify the corresponding session. In an exemplary embodiment, cookies generated when a session is established are sent by the client in each subsequent HTTP request to the server, and the server uses the accepted cookies in the session table. Uniquely identify the corresponding session. If it is determined that the corresponding session is currently active, session information and / or cookies associated with the corresponding session are returned to the native application.

サーバにおいて、受け付けられたHTTP要求に対応するセッションが存在しないと判定された場合、サーバはネイティブアプリケーションに、その影響の通知を返す。ある例示的な実施の形態では、例えば、HTTPリダイレクト(例えば、「302リダイレクト」)メッセージが返される。ネイティブアプリケーションは、前のHTTP要求が既存の接続を特定するという結果を生じなかったとの通知を受けると、試行対象のブラウザのリスト内の次のブラウザに関する情報を含む新たなHTTP要求を形成する。   If the server determines that there is no session corresponding to the accepted HTTP request, the server returns a notification of the impact to the native application. In an exemplary embodiment, for example, an HTTP redirect (eg, "302 redirect") message is returned. When the native application is notified that the previous HTTP request did not result in identifying an existing connection, it forms a new HTTP request that includes information about the next browser in the list of browsers to try.

ネイティブアプリケーションが利用可能なブラウザコントロールのいずれについても、それに対応する既存のセッションが見つからなかった場合、動作308において、サインオンの実行が成功し、新たなセッションおよび関連クッキーが生成される。サインオンは図5に関連して以下に詳述される。   If no corresponding existing session is found for any of the browser controls available to the native application, at operation 308, the sign-on is successfully performed and a new session and associated cookie is generated. Sign-on is detailed below in connection with FIG.

続いて、動作310において、ネイティブアプリケーションは、動作306において特定された既存のセッションまたは新たに生成されたセッション(動作308において生成されたもの)のいずれかを用いて動作する。ネイティブアプリケーションの動作は、ネイティブアプリケーションについて必要なデータを求めるHTTP要求を送信することおよびHTTP/JSONフォーマットのそのようなデータを受信することを含んでもよい。しかしながら、ネイティブアプリケーションは、ウェブアプリケーションなどのサーバ側アプリケーションと通信するためにHTTP/JSONを用いることに限定されない。サーバデバイスがウェブアプリケーションに対するデータ要求を受信すると、セッションの正当性がチェックされてもよい。   Subsequently, at act 310, the native application operates with either the existing session identified at act 306 or the newly created session (generated at act 308). The operation of the native application may include sending an HTTP request for required data for the native application and receiving such data in HTTP / JSON format. However, native applications are not limited to using HTTP / JSON to communicate with server-side applications such as web applications. When the server device receives a data request for the web application, the session may be checked for legitimacy.

図4は、複数ログイン防止(MLP)プロセス400が行われるときに生じる、クライアントデバイス104a、クライアントデバイス104bおよびサーバデバイス102の間のやりとりを示す。例えば、ユーザがあるクライアントデバイス(例えばクライアントデバイス104a)から既にログインしてウェブアプリケーション(例えば324)にアクセスしている状況で、そのユーザが第2クライアントデバイス(例えばクライアントデバイス104b)からサインインして同じウェブアプリケーションにアクセスする場合に、プロセス400は始まってもよい。   FIG. 4 illustrates the interaction between client device 104a, client device 104b, and server device 102 that occurs when multiple login prevention (MLP) process 400 occurs. For example, in the situation where the user has already logged in and accessed a web application (e.g. 324) from a client device (e.g. client device 104a), the user signs in from a second client device (e.g. client device 104b) Process 400 may begin when accessing the same web application.

動作402は、正当なクッキーを用いる確立されたセッションを介した、クライアントデバイス104aのユーザとサーバデバイス102上のウェブアプリケーションとの間の通信を表す。示されるように、クライアントデバイス104a上のブラウザおよび/またはネイティブアプリケーションのうちのひとつは確立されたセッションを介した通信を行ってもよい。   Act 402 represents communication between a user of client device 104a and a web application on server device 102 through an established session using legitimate cookies. As shown, one of the browser and / or native applications on client device 104a may communicate via an established session.

動作402が続いている間のある時点で、動作404において、ユーザはクライアントデバイス104bでサインオンする。例えば、ユーザはクライアントデバイス104bのネイティブアプリケーションを介してログインしてもよい。   At some point while operation 402 continues, at operation 404, the user signs on at client device 104b. For example, the user may log in via the native application of client device 104b.

動作406において、クライアントデバイス104bのネイティブアプリケーションは、HTTP要求を送信し、JSONフォーマットのデータを受信することによって、サーバデバイス上のウェブアプリケーションと通信する。上述の通り、要求元のネイティブアプリケーションに要求されたデータを送信する前に、セッションの正当性に対するサーバ側チェックが行われる。プロバイダデータへのアクセスおよびそのアクセスに関連付けられた認証についてのさらなる説明は、図8に関連して後述される。   At act 406, the native application of the client device 104b communicates with the web application on the server device by sending an HTTP request and receiving data in JSON format. As mentioned above, before sending the requested data to the requesting native application, a server-side check is performed on the legitimacy of the session. Further description of access to provider data and the authentication associated with the access is described below in connection with FIG.

動作408はクライアントデバイス104aとサーバデバイス102との間のセッションのキャンセルを表す。以前の既存のセッションのキャンセルは、新たなセッションが生成されるのとほぼ同時に行われてもよい。クライアントデバイス104aのセッションがキャンセルされた後は、クライアントデバイス104aからの、ウェブアプリケーションにデータを求める以降のHTTP要求は失敗する。クライアントデバイス104aのユーザインタフェースは、ウェブアプリケーションからのデータ取得に今後失敗することを示すよう、および/またはクライアントデバイス104aのセッションが他のロケーションからのログインに起因してキャンセルされたことをユーザに通知するよう、更新されてもよい。   Act 408 represents the cancellation of the session between client device 104a and server device 102. Cancellation of a previous existing session may occur almost simultaneously with the creation of a new session. After the session of the client device 104a is canceled, subsequent HTTP requests from the client device 104a for requesting data to the web application fail. The user interface of the client device 104a indicates that future data acquisition from the web application will fail, and / or informs the user that the session of the client device 104a has been canceled due to a login from another location May be updated to

図5は、ある例示的な実施の形態に係る、サインオンプロセス500を実行している間に生じる、クライアントデバイス504(例えば、クライアントデバイス104a、104bと同様のもの)とサーバデバイス102との間のやりとりを示す。   FIG. 5 is between the client device 504 (eg, similar to client devices 104a, 104b) and the server device 102 that occur while performing the sign-on process 500 according to an exemplary embodiment. Show the exchange of

プロセス500は、ユーザがブラウザをウェブアプリケーションのいわゆる「ランディングページ」に辿り着かせるときに始まってもよい。例えば、「IR Insights」という名前のウェブアプリケーションについて、ランディングページはユーザに知られている「irinsight.nasdaq.com」などのアドレスにあってもよい。ランディングページのURLを入力することによって、または他のウェブページから対応するリンクをクリックすることによって、ナビゲーションが行われてもよい。   Process 500 may begin when the user brings a browser to a so-called "landing page" of a web application. For example, for a web application named "IR Insights", the landing page may be at an address such as "irinsight.nasdaq.com" known to the user. Navigation may be performed by entering the URL of the landing page or by clicking on the corresponding link from another web page.

動作502において、クライアントデバイス上のブラウザがランディングページに辿り着くと、ウェブアプリケーションは、対応する現在アクティブなセッションおよびクッキーが存在するか否かを判定する。アクティブなセッション(および/またはクッキー)が見つからなかった場合、ウェブアプリケーションは一時的なトークンを生成し、そのトークンをクライアントデバイスに送信する。ある実施の形態では、一時的なトークンは、ウェブアプリケーションのドメインクッキーと共にクライアントにプッシュされてもよい。   At operation 502, when the browser on the client device reaches the landing page, the web application determines whether there is a corresponding currently active session and cookie. If no active session (and / or cookie) is found, the web application generates a temporary token and sends the token to the client device. In one embodiment, a temporary token may be pushed to the client with the web application's domain cookie.

動作504において、ウェブアプリケーションはクライアントデバイスをログインアプリケーションへリダイレクトする。ある実施の形態によると、クライアントデバイス上のブラウザをログインアプリケーションへ導く302HTTPリダイレクトメッセージをクライアントに送信することによって、リダイレクトが行われてもよい。リダイレクトメッセージと共にウェブアプリケーションの既知の識別子が渡されてもよい。この場合、ログインプロセスが完了した後、ログインアプリケーションは続いて、クライアントをウェブアプリケーションへと戻すようリダイレクトすることができる。ある実施の形態によると、ウェブアプリケーションに割り当てられたグローバル一意識別子(GUID)を、リダイレクトメッセージと共に渡される識別子として用いてもよい。   At act 504, the web application redirects the client device to the login application. According to one embodiment, redirection may be performed by sending a 302 HTTP redirect message to the client directing the browser on the client device to the login application. The web application's known identifier may be passed along with the redirect message. In this case, after the login process is complete, the login application can then redirect the client back to the web application. According to one embodiment, a Globally Unique Identifier (GUID) assigned to the web application may be used as the identifier passed with the redirect message.

動作506において、ブラウザはウェブアプリケーションからリダイレクトメッセージを受信しており、そのリダイレクトメッセージにおいて示されているアドレスにあるログインアプリケーションへと辿り着く。ログインアプリケーションにアクセスする際、ブラウザはHTTP要求に対応するGUIDを含めることにより、ウェブアプリケーション(これはブラウザをリダイレクトしたものである)を特定してもよい。ログインアプリケーションはユーザにログイン資格証明を促す。実施の形態によると、ログイン資格証明はユーザ名およびパスワードを含む。   At act 506, the browser has received a redirect message from the web application and arrives at the login application at the address indicated in the redirect message. When accessing the login application, the browser may specify a web application (which is a browser redirect) by including a GUID corresponding to the HTTP request. The login application prompts the user for login credentials. According to an embodiment, the login credentials include a username and a password.

動作508において、クライアントはログイン資格証明を送信する。   At operation 508, the client sends login credentials.

動作510において、ログインアプリケーションはログイン資格証明を検証する。例えば、ユーザ名およびパスワードは保持されているログインおよび/または認証情報に対して検証される。ユーザのログインが承認された後、ひとつ以上の現存のセッションはキャンセルされてもよい。この場合、関連するサービス明細に違反しない。ある実施の形態によると、ユーザがウェブアプリケーションにアクセスするための既存のセッションがキャンセルされてもよい。例えば、新たなセッションが確立される際のセッションのキャンセルに関して、先入れ先出し(FIFO)ポリシーが実装されてもよい。したがって、例えば、サービス明細が、特定のウェブアプリケーションに同時にアクセスできるクライアントアプリケーションの数を1に制限している場合、新たなセッションが生成されると、以前に確立されたセッションはキャンセルされる。他の実施の形態では、ウェブアプリケーションにアクセスするためのユーザの既存のセッションは、それらが新たなサインオンに関連付けられた同じ「領域(realm)」にある場合、キャンセルされる。「領域(realm)」は、GUIDおよび/またはGUID−クライアント組み合わせをグループ化するために用いられる概念である。例えば、ウェブアプリケーション324およびクライアントタイプ(例えば、デスクトップコンピュータ、スマートフォン)の特定の組み合わせを異なる領域に配置することによって、デスクトップコンピュータおよびスマートフォンの同じユーザによる同じウェブアプリケーション324への同時サインオンが許可されうる。   At act 510, the login application verifies login credentials. For example, the username and password may be verified against stored login and / or authentication information. After the user's login is approved, one or more existing sessions may be cancelled. In this case, the relevant service statement is not violated. According to one embodiment, the existing session for the user to access the web application may be cancelled. For example, a first in first out (FIFO) policy may be implemented for session cancellation when a new session is established. Thus, for example, if the service specification limits the number of client applications that can simultaneously access a particular web application to one, then a previously established session is canceled when a new session is created. In another embodiment, the user's existing sessions for accessing the web application are canceled if they are in the same "realm" associated with the new sign-on. "Realm" is a concept used to group GUIDs and / or GUID-Client combinations. For example, by placing certain combinations of web application 324 and client type (eg, desktop computer, smartphone) in different areas, simultaneous sign-on to the same web application 324 by the same user of desktop computer and smartphone may be permitted .

動作512において、ログインアプリケーションはウェブアプリケーションに一時的なトークンを提供する。これはHTTP POSTメッセージを用いて、キー/値ペアの形態で一時的なトークンを指定することで、行われてもよい。ある実施の形態では、一時的なトークンと共に偽造防止トークンを提供してもよい。   At act 512, the login application provides a temporary token to the web application. This may be done by specifying a temporary token in the form of a key / value pair using an HTTP POST message. In one embodiment, a forgery resistant token may be provided along with a temporary token.

動作514において、ログインアプリケーションは、HTTPリダイレクトメッセージおよび以前に受信したウェブアプリケーションの識別子(例えば、GUID)を用いて、クライアントをウェブアプリケーションにリダイレクトする。ログインアプリケーションはまた、一時的なトークンを含むクッキーを生成してもよい。ある実施の形態では、クッキーはまた、偽造防止クッキーを含んでもよい。   At act 514, the login application redirects the client to the web application using the HTTP redirect message and the previously received identifier of the web application (eg, GUID). The login application may also generate a cookie that includes a temporary token. In one embodiment, the cookie may also include a forgery resistant cookie.

動作516において、クライアントはログインアプリケーションによってリダイレクトされており、ウェブアプリケーションに辿り着いて、一時的なトークンを含むひとつ以上のクッキーをウェブアプリケーションに提示する。   At act 516, the client is redirected by the login application, reaches the web application, and presents the web application with one or more cookies, including a temporary token.

動作518において、ウェブアプリケーションはトークンを検証する。   At act 518, the web application validates the token.

動作520において、ウェブアプリケーションは永続的なトークンの生成をログインアプリケーションに要求する。   At act 520, the web application requests the login application to generate a permanent token.

動作522において、ログインアプリケーションは永続的なトークンを生成する。   At act 522, the login application generates a permanent token.

動作524において、ログインアプリケーションはウェブアプリケーションに生成された永続的なトークンを返す。   At act 524, the login application returns the generated persistent token to the web application.

動作526において、ウェブアプリケーションはクライアントに永続的なトークンを送信する。   At act 526, the web application sends the client a permanent token.

動作528において、クライアントは将来の使用のために永続的なトークンを格納する。ある実施の形態では、永続的なトークンを、対応するセッションを特定するためのクッキーとして用いられる。   At act 528, the client stores the permanent token for future use. In one embodiment, a permanent token is used as a cookie to identify the corresponding session.

動作530は、クライアントによるHTTP要求の後続プロセスと、HTTP/JSONまたは他のフォーマットのメッセージを用いたサーバデバイスによる要求されたデータの返信を表す。ウェブアプリケーションは、要求されたデータを返す前に、永続的なトークンの引き続く正当性をチェックしてもよい。ある実施の形態では、例えば、クライアントによる個々全てのデータ要求について、ウェブアプリケーションおよび/または対応する外部サーバはセッションの正当性をチェックする。   Act 530 represents the process of following the HTTP request by the client and the return of the requested data by the server device using a message of HTTP / JSON or other format. The web application may check the subsequent legitimacy of the permanent token before returning the requested data. In one embodiment, for example, for every individual data request by the client, the web application and / or the corresponding external server checks the session legitimacy.

図6は、ある例示的な実施の形態に係る、SSOおよびMLPを合成された一連のやりとりで示す、クライアント104a、クライアント104bおよびサーバインフラストラクチャ102間のやりとりを示す。   FIG. 6 illustrates the interaction between the client 104a, the client 104b and the server infrastructure 102, showing the SSO and MLP in a combined series of interactions, according to an example embodiment.

プロセス600は、ユーザがページ、ブラウザをウェブアプリケーションのいわゆる「ランディングページ」に辿り着かせるときに始まってもよい。ランディングページのURLを入力することによって、または他のウェブページから対応するリンクをクリックすることによって、ナビゲーションが行われてもよい。   Process 600 may begin when the user brings a page, browser, to a so-called "landing page" of a web application. Navigation may be performed by entering the URL of the landing page or by clicking on the corresponding link from another web page.

動作602において、クライアント104aのユーザはブラウザ312を介してウェブアプリケーション324にサインインする。サインオンプロセスは、上述の図5A−5Bにしたがい行われてもよい。図3の動作302に関連して説明した通り、ユーザがウェブアプリケーション324と相互作用するための新たなセッションが生成され、ひとつ以上の対応するクッキーが生成されてもよい。   At operation 602, a user of client 104a signs in to web application 324 via browser 312. The sign on process may be performed according to the above described FIGS. 5A-5B. As described in connection with operation 302 of FIG. 3, a new session may be created for the user to interact with web application 324 and one or more corresponding cookies may be created.

動作604において、ユーザがクライアント104bから有するアクティブなセッションは不活性化されるか除去される。例えば、動作602における新たなセッションのセットアップの一部として、同じユーザが他のクライアントから有するセッションは不活性化される。不活性化は、ひとつ以上のセッションがアクティブでないことを示すようセッションテーブルにマークをつけること、または、セッションテーブルからそのようなセッションを取り除いてしまうことを含んでもよい。   At act 604, active sessions that the user has from the client 104b are deactivated or removed. For example, as part of setting up a new session in operation 602, sessions that the same user has from other clients are deactivated. Deactivation may include marking the session table to indicate that one or more sessions are not active, or removing such a session from the session table.

動作602の時点でクライアント104bが継続中のアクティブなセッションを有していた場合、セッションテーブルにおけるそのセッションのエントリは除去されるか、または非アクティブとマークされてもよい。そのような除去または非アクティブとしてのマーキングの後、ウェブアプリケーション324に対するクライアント104bによる以降のデータ要求は成功しないであろう。これは、各データ要求に応じたサーバ側のセッション正当性チェックが、ウェブアプリケーションについてユーザおよびクライアント104bに関連付けられたアクティブなセッションを見つけられないことにより失敗するからである。これは、MLPの実装を示す。   If the client 104b had an ongoing active session at the time of operation 602, then that session's entry in the session table may be removed or marked as inactive. After such removal or marking as inactive, subsequent data requests by the client 104b for the web application 324 will not succeed. This is because the server-side session validity check in response to each data request fails because it can not find an active session associated with the user and client 104b for the web application. This shows the implementation of MLP.

動作606において、クライアント104a上のアプリケーション316が起動する。この動作に関連付けられた処理は、図3の動作304に関連して説明されたものと同様である。   At act 606, the application 316 on the client 104a is launched. The processing associated with this operation is similar to that described in connection with operation 304 of FIG.

動作608において、アプリケーションは既存のセッションを判定する。この動作に関連付けられた処理は、図3の動作306に関連して説明されたものと同様である。   At act 608, the application determines an existing session. The processing associated with this operation is similar to that described in connection with operation 306 of FIG.

図7は、ある実施の形態に係る、ユーザがアプリケーションを介してウェブアプリケーションにアクセスすることを可能とするための、クライアント上で実行されるアプリケーションによって行われるプロセス700とひとつ以上のサーバ上で実行されるサーバプロセスとを示す。   FIG. 7 illustrates a process 700 performed by an application running on a client and one or more servers to enable a user to access a web application through the application according to an embodiment. Server processes to be

アプリケーション704(例えば、ウェブアプリケーション324にアクセスするための上述のネイティブアプリケーション316)がクライアント(例えば、クライアント104a)上で起動したときにプロセス700を開始してもよい。動作712において、起動時に、アプリケーション704のカスタムアドイン(例えば、アドイン318)は、使用可能なブラウザコントロールを決定する。ある実施の形態によると、ブラウザコントロールの所定の順序付けられたリストは使用可能なブラウザコントロールを表すものとして考慮されてもよい。他のある実施の形態では、クライアント上で利用可能なブラウザを自動的に発見してもよい。   Process 700 may be initiated when an application 704 (eg, native application 316 described above for accessing web application 324) is launched on a client (eg, client 104a). At act 712, upon launch, the custom add-in of application 704 (eg, add-in 318) determines available browser controls. According to one embodiment, the predetermined ordered list of browser controls may be considered as representing available browser controls. In other embodiments, available browsers may be automatically found on the client.

動作714において、第1ブラウザコントロールが選択される。ある実施の形態では、例えば、順序付けられたリストにおいて最初に現れるブラウザコントロールが選択される。例示的な実施の形態では、アプリケーションがエクセルプログラムを含む場合、インターネットエクスプローラブラウザコントローラを第1選択として選択する。これは、例えば、インターネットエクスプローラブラウザコントローラとエクセルプログラムとの間に高レベルの互換性が存在することが期待されるからである。   At act 714, a first browser control is selected. In one embodiment, for example, the browser control that appears first in the ordered list is selected. In the exemplary embodiment, if the application includes an Excel program, then the Internet Explorer browser controller is selected as the first choice. This is because, for example, it is expected that a high level of compatibility exists between the Internet Explorer browser controller and the Excel program.

動作716において、既存のセッションに対する要求がサーバに送信される。要求は、少なくとも、選択されたブラウザコントロールと、アクセス要求対象のウェブアプリケーションと、ユーザIDと、クライアント識別と、を示す。   At operation 716, a request for an existing session is sent to the server. The request indicates at least the selected browser control, the web application to be accessed, the user ID, and the client identification.

要求は、所定の指定ウェブアドレスに送信されてもよい。例えば、アプリケーションに組み入れられたカスタムアドインにより行われる処理を支援するために、企業はサーバ上のアプリケーションを所定の指定ウェブアドレスに設定してもよい。   The request may be sent to a predetermined designated web address. For example, a company may set an application on a server to a predetermined designated web address to support processing performed by a custom add-in incorporated into the application.

動作718において、指定ウェブアドレスにあるウェブサーバ706はクライアントにより送信された要求を受信する。ウェブサーバ706は(おそらくは、アプリケーションサーバ、データベースおよび/または他のプロセスと連携して)、クライアントから受信した要求に対応する既存のセッションに関する情報を要求している他のアプリケーションに、メッセージを、送信する。ウェブサーバ706および他のアプリケーションは、ある実施の形態では、コアサービス114内のアプリケーションであってもよい。   At act 718, the web server 706 at the designated web address receives the request sent by the client. The web server 706 (possibly in conjunction with an application server, database and / or other processes) sends messages to other applications requesting information about existing sessions corresponding to requests received from clients. Do. Web server 706 and other applications may be applications within core service 114 in an embodiment.

動作720において、他のアプリケーション708はサーバ102上で実行されているアカウント管理アプリケーションであってもよく、他のアプリケーション708は要求を受信する。アプリケーション708は、既存のセッションが維持されているセッションテーブルや他のデータ構造をチェックすることで、受信した要求で指定されるパラメータに対応する既存のセッションを求めてもよい。受信した要求で指定されるパラメータは、ブラウザ(または上述の選択されたブラウザコントロール)のタイプ、ユーザ、クライアントおよび要求されたウェブアプリケーションの識別を含んでもよい。   At operation 720, the other application 708 may be an account management application running on the server 102, and the other application 708 receives the request. The application 708 may determine an existing session corresponding to the parameters specified in the received request by checking the session table or other data structure in which the existing session is maintained. The parameters specified in the received request may include the type of browser (or the selected browser control described above), the identity of the user, the client and the requested web application.

既存のセッションが見つかると、その既存のセッションに関連付けられたクッキーがアクセスされる。図2に関連して上述された通り、各既存のセッションは関連クッキーを有してもよい。   If an existing session is found, then the cookie associated with the existing session is accessed. As described above in connection with FIG. 2, each existing session may have an associated cookie.

動作722において、セッションが見つからなかった場合、アプリケーション708は、セッション発見に失敗したことを示しつつアプリケーション706に応答する。   At operation 722, if the session is not found, the application 708 responds to the application 706, indicating that the session discovery has failed.

そうでなく、セッションが見つかった場合、動作722において、アプリケーション708は、既存のセッションについての情報および/またはアクセスされたクッキーのコピーを提供することによって、アプリケーション706に応答する。   Otherwise, if a session is found, at operation 722, application 708 responds to application 706 by providing information about the existing session and / or a copy of the accessed cookie.

動作724において、アプリケーション706はアプリケーション708から受信した応答に基づいて、アプリケーション704に応答を送信する。したがって、動作720において既存のセッションが見つかった場合、既存のセッションについての情報および/または既存のセッションに対応するクッキーのコピーはアプリケーション704への応答に含められる。動作720において既存のセッションが見つからなかった場合、応答は、アプリケーション708に、現在選択されているブラウザコントロールについて既存のセッションの発見に失敗した旨を知らせる。   At act 724, application 706 sends a response to application 704 based on the response received from application 708. Thus, if an existing session is found in operation 720, information about the existing session and / or a copy of the cookie corresponding to the existing session is included in the response to application 704. If no existing session is found in operation 720, the response informs application 708 that the discovery of the existing session for the currently selected browser control has failed.

動作726において、アプリケーション704は、アドイン支援アプリケーション706から受信した最新の応答に基づいて、既存のセッションが発見されたか否かを判定する。   At operation 726, the application 704 determines whether an existing session has been found based on the latest response received from the add-in support application 706.

既存のセッションが発見されなかった場合、アプリケーション704は、動作712で決定されたひとつ以上のブラウザコントロールからの次のブラウザコントロールの選択を試行する。次いで、既存のセッションについてまだテストされていない別のブラウザコントロールが存在する場合、動作728において、既存のセッションを決定すべき別のブラウザコントロールが選択され、処理は動作716に進む。動作716において、いまや、新たに選択されたブラウザコントロールを含む要求が生成されてもよく、処理は動作718に進んでもよい。   If an existing session is not found, application 704 attempts to select the next browser control from the one or more browser controls determined in operation 712. Then, if there is another browser control that has not yet been tested for the existing session, then at operation 728 another browser control for which the existing session is to be determined is selected, and processing proceeds to operation 716. At operation 716, a request may now be generated that includes the newly selected browser control, and processing may proceed to operation 718.

動作726において、既存のセッションは発見されず、かつ、既存のセッションについてテストされるべきブラウザコントロールが残っていないと判定された場合、動作730において、アクセス対象のウェブアプリケーションについて、クライアントからのセッションは現在存在していないと判定され、アプリケーション704はサインオンを実行することができる。   If it is determined in act 726 that no existing session is found and there is no browser control left to be tested for the existing session, then in act 730 the session from the client for the web application to be accessed is It is determined that it does not currently exist, and the application 704 can perform sign-on.

サインオンは、アプリケーション704がウェブアプリケーションの所定のアドレスにHTTP要求を送信することを含んでもよい。図5はクライアント上で実行されているブラウザがサインオンしているときに生じる例示的なプロセスを示す。アプリケーションがサインインするとき、サーバインフラストラクチャおよびクライアント上のアプリケーションによって、同様のプロセス(すなわち、同様の動作のシーケンス)が行われてもよい。サインオンプロセス中、例えば、アプリケーション704がログインプロンプト(コアサービス526から送信されるように示されている)を受信するとき、ユーザがログイン資格証明を入力するためのログインウインドウが表示される。ある実施の形態によると、アプリケーションにおけるログインウインドウは図9に関連して後述される。クライアント上のブラウザに対するセッションが生成される前に初めてアプリケーションがサインインするとき、新たなセッションが生成されるであろう。アプリケーションはこの新たなセッションを用いてウェブアプリケーションとやりとりする。   Sign-on may include the application 704 sending an HTTP request to a predetermined address of the web application. FIG. 5 illustrates an exemplary process that occurs when the browser running on the client is signed on. Similar processes (i.e., similar sequences of operations) may be performed by the server infrastructure and the application on the client when the application signs in. During the sign-on process, for example, when the application 704 receives a login prompt (shown to be sent from the core service 526), a login window is displayed for the user to enter login credentials. According to one embodiment, the login window in the application is described below in conjunction with FIG. A new session will be created when the application signs in for the first time before the session for the browser on the client is created. The application interacts with the web application using this new session.

一方、既存のセッションが見つかった場合、動作732において、アドイン支援アプリケーション706からの応答で受信したクッキーを、アプリケーションがアクセス可能なストレージに格納する。ウェブアプリケーションに対する以降の要求はそのクッキーを含んでもよい。したがって、既存のセッションを用いて、かつ、ユーザがアプリケーションを通じて別個のサインオンを行うことを要求せずに、ウェブアプリケーションがアプリケーション704にサービスを提供することが可能となる。   On the other hand, if an existing session is found, at operation 732 the cookie received in response from the add-in support application 706 is stored in a storage accessible to the application. Subsequent requests for the web application may include the cookie. Thus, with an existing session, and without requiring the user to perform a separate sign-on through the application, the web application can service the application 704.

ある実施の形態では、アプリケーション704がウェブアプリケーションによって提供されるアプリケーションデータにアクセスすることを始める前に、アプリケーション704によってさらに多くの動作が行われてもよい。ある実施の形態では、動作732の後(例えば、既存のセッションが発見され、ウェブアプリケーションにアクセスするためのクッキーがアプリケーションによって受信された後)、アプリケーション704は、別のブラウザコントロールをインスタンス化し、発見された既存のセッション(例えば、以前に取得されたクッキーを用いて)および新たにインスタンス化されたブラウザコントロールを用いて、ウェブアプリケーションにアクセスすることに進む。この能力は、クッキーをブラウザに亘って(例えば、ブラウザ間)で共有することを可能とする。例えば、クロームブラウザのサーバからクッキーを取得している状況で、しかしながらアプリケーションが他のタイプのブラウザコントローラ(例えば、インターネットエクスプローラブラウザコントローラ)で利用可能な所定のフィーチャを要求する場合、アプリケーションは、新たにインスタンス化された他のタイプのブラウザコントローラに既に取得されているクッキーを用いてもよい。   In one embodiment, more operations may be performed by application 704 before application 704 begins to access application data provided by the web application. In one embodiment, after operation 732 (eg, after an existing session has been discovered and a cookie for accessing the web application has been received by the application), the application 704 instantiates another browser control and finds Proceed to accessing the web application using the existing session (e.g., with the previously obtained cookie) and the newly instantiated browser control. This capability allows cookies to be shared across browsers (eg, between browsers). For example, in the context of acquiring a cookie from a chrome browser server, however, if the application requires certain features available on other types of browser controllers (e.g. Internet Explorer browser controller), the application newly Cookies already acquired by other types of instantiated browser controllers may be used.

図8は、ある例示的な実施の形態に係る、クライアント804上のアプリケーションまたはクライアント側コードが外部サーバ810からのデータにアクセスするためのプロセス800を示す。   FIG. 8 shows a process 800 for an application or client-side code on client 804 to access data from external server 810, according to an exemplary embodiment.

プロセス800は、クライアント804上のアプリケーションまたはクライアント側コードがウェブアプリケーションにサインオンした後、クライアント上のアプリケーションまたはクライアント側コードによって外部サーバからのデータへのアクセスが要求されたときに始まってもよい。   Process 800 may begin when an application or client-side code on client 804 signs on to a web application and then the application or client-side code on client requests access to data from an external server.

動作812において、クライアント804はサーバ102上のウェブアプリケーション806にデータ要求を送信する。要求は、セッションについて以前に取得されクライアントに保持されているクッキーを含んでもよい。要求は、要求されているデータを示す。   At act 812, the client 804 sends a data request to the web application 806 on the server 102. The request may include a cookie previously obtained for the session and held by the client. The request indicates the data being requested.

動作814において、ウェブアプリケーション806はクライアント804からの要求を受信する。動作814における処理は、要求されているデータをどこから取得するかを決定することを含んでもよい。処理はまた、要求されているデータの少なくともいくらかをローカルで決定することを含んでもよい。   At operation 814, the web application 806 receives the request from the client 804. The processing at operation 814 may include determining where to obtain the requested data. Processing may also include determining at least some of the data being requested locally.

動作816において、ウェブアプリケーションは、動作814において決定されたようにおよび/またはクライアント804からの要求で指定されるように、データ要求を外部サーバに送信する。   At act 816, the web application sends a data request to the external server as determined at act 814 and / or as specified in the request from the client 804.

動作818において、外部サーバ810は要求を受信する。ある実施の形態では、動作818における処理は正当なセッションについてローカルで維持されているテーブルをチェックすることを含んでもよい。チェックは、要求からのクッキーおよび/またはユーザ特定情報に基づくものであってもよい。ローカルで維持されているテーブルからのチェックが、ユーザがデータを受信することを承認することを示す場合、要求されているデータを提供するために処理は動作826に進んでもよい。   At operation 818, the external server 810 receives the request. In one embodiment, processing at operation 818 may include checking a locally maintained table for a valid session. The check may be based on cookies from the request and / or user specific information. If the check from the locally maintained table indicates that the user approves to receive data, processing may proceed to operation 826 to provide the requested data.

他のある例示的な実施の形態では、ローカルで維持されているテーブルをチェックすることに加えてまたはその代わりに、動作820において、外部サーバはコアサービス808に、データ要求の確認を要求するための要求を送信する。   In some other exemplary embodiments, in addition to or instead of checking the locally maintained table, at operation 820, the external server requests the core service 808 to confirm the data request. Send a request for

動作822において、コアサービスアプリケーション808はセッションテーブルおよび/または他のデータ構造をチェックすることで、データ要求が承認されるか否かを判定する。   At act 822, the core service application 808 checks the session table and / or other data structures to determine if the data request is approved.

動作824において、外部サーバに状態が報告される。   At operation 824, the status is reported to the external server.

動作826において、少なくともデータ要求が適切に承認されたかに基づいて、クライアントにデータを提供すると決定する。あるいはまた、要求が適切に承認されなかったと判定された場合、データを提供しないとの決定がなされる。   At act 826, it is determined to provide data to the client based at least on whether the data request has been properly approved. Alternatively, if it is determined that the request has not been properly approved, then a determination is made not to provide data.

動作828において、データがクライアントに提供されるべきか否かに基づいて、ウェブアプリケーション806に応答が送信される。応答は、要求されたデータを含むか、または失敗通知を含むか、のいずれかであってもよい。   At act 828, a response is sent to the web application 806 based on whether data should be provided to the client. The response may either contain the requested data or contain a failure notification.

動作830において、ウェブアプリケーションは、クライアントの要求が成功したか失敗したかを判定する。   At act 830, the web application determines whether the client's request has succeeded or failed.

動作832において、ウェブアプリケーションはクライアントに応答を送信する。   At act 832, the web application sends a response to the client.

図9は、アプリケーション120aや120bなどのアプリケーション内からユーザに提供されるログインウインドウの例示的実装を示す。例えば、アプリケーション120aが実行されている(ウインドウ900で示されるように)間に、クライアント104aのユーザが新たにサインインを行う必要があると判定された場合、ユーザのログイン資格証明を受け付けるためにログインウインドウ902が表示される。   FIG. 9 illustrates an exemplary implementation of a login window provided to a user from within an application, such as application 120a or 120b. For example, if it is determined that the user of client 104a needs to sign in anew while application 120a is running (as shown in window 900), to accept the user's login credentials. A login window 902 is displayed.

図10は、システム100のハードウエアアーキテクチャの非限定的例示的ブロック図を示す。図10に示される例では、クライアントシステム1010はネットワーク1040を介してサーバシステム1020と通信する。ネットワーク1040はインターネットなどの相互に接続された計算デバイスのネットワークを含みうる。ネットワーク1040はローカルエリアネットワーク(LAN)を含んでもよく、またはクライアントシステム1010とサーバシステム1020との間のピアツーピア接続を含んでもよい。   FIG. 10 shows a non-limiting exemplary block diagram of the hardware architecture of system 100. In the example shown in FIG. 10, client system 1010 communicates with server system 1020 via network 1040. Network 1040 may include a network of interconnected computing devices, such as the Internet. Network 1040 may include a local area network (LAN) or may include peer-to-peer connections between client system 1010 and server system 1020.

例示的なクライアントシステム1010とサーバシステム1020とは、図1に示されるクライアント104とサーバ102とに対応しうる。すなわち、図1を参照して本明細書で説明され示された種々のソフトウエアコンポーネントおよび動作を実装するために、図10で説明されるハードウエア要素を用いることができる。例えば、図10のクライアントシステム1010は、少なくともひとつのプロセッサCPU1031と、少なくともひとつのメモリ1032と、少なくともひとつの入出力デバイスI/O1033と、ユーザインタフェースUI1034を生成して表示するためのコンポーネントと、を含んでもよい。少なくともひとつのメモリ1032は、ランダムアクセスメモリ(RAM)やスタティックRAMやフラッシュメモリや磁気ディスクなどのコンピュータ可読保持媒体を含んでもよい。I/Oデバイス1033は、データを送受するトランシーバ(例えば、無線トランシーバ、有線トランシーバ)などの通信デバイスを全て包含し、それを含みうるものであってもよい。I/Oデバイス1033は、データを送受するために非一時的コンピュータ可読保持媒体をクライアントシステム1010に接続するためのインタフェースを含んでもよい。   Exemplary client system 1010 and server system 1020 may correspond to client 104 and server 102 shown in FIG. That is, the hardware elements described in FIG. 10 can be used to implement the various software components and operations described and shown herein with reference to FIG. For example, the client system 1010 of FIG. 10 includes at least one processor CPU 1031, at least one memory 1032, at least one input / output device I / O 1033, and a component for generating and displaying a user interface UI 1034. May be included. The at least one memory 1032 may include a computer readable storage medium such as a random access memory (RAM), a static RAM, a flash memory, or a magnetic disk. The I / O device 1033 may include or may include all communication devices such as transceivers (eg, wireless transceivers, wired transceivers) that transmit and receive data. The I / O device 1033 may include an interface for connecting a non-transitory computer readable carrier medium to the client system 1010 to send and receive data.

図1の例示的なウェブブラウザアプリケーション117、118およびアプリケーション120aを実装するためにクライアントシステム1010の要素の組み合わせを用いることができることは、理解されるべきである。例えば、メモリ1032はアプリケーションに関連付けられたファイル(例えば、HTML、XML、JavaScriptファイル)をロードし、CPU1031はアプリケーションに関連付けられたインストラクションを実行するために用いられてもよい。I/Oデバイス1033を用いることで、サーバシステム1020からSPAを含む種々の要素をフェッチすることができる、および/またはユーザと相互作用することができる。   It should be understood that a combination of elements of client system 1010 can be used to implement the exemplary web browser applications 117, 118 and application 120a of FIG. For example, memory 1032 may load files (eg, HTML, XML, JavaScript files) associated with the application, and CPU 1031 may be used to execute instructions associated with the application. Using I / O device 1033, various elements can be fetched from server system 1020, including SPA, and / or can interact with the user.

サーバシステム1020は、図1に示されるサーバ102または図2の200のソフトウエア要素を実装するために用いられる種々のハードウエアコンポーネントを備える。例えば、サーバシステム1020は、少なくともひとつのプロセッサCPU1021と、少なくともひとつのメモリ1022と、少なくともひとつの入出力デバイスI/O1023と、のハードウエアコンポーネントを含んでもよい。少なくともひとつのメモリ1022は、ランダムアクセスメモリ(RAM)やスタティックRAMやフラッシュメモリや磁気ディスクなどのコンピュータ可読保持媒体を含んでもよい。I/Oデバイス1023は、データを送受するトランシーバ(例えば、無線トランシーバ、有線トランシーバ)などの通信デバイスを全て包含し、それを含みうるものであってもよい。I/Oデバイス1023は、データを送受するために非一時的コンピュータ可読保持媒体をサーバシステム1020に接続するためのインタフェースを含んでもよい。ひとつの例示的な実施の形態では、クライアントシステムのI/Oデバイス1033は、サーバシステムのI/O1023とのネットワークを介した通信を行うことができる。   Server system 1020 comprises various hardware components used to implement server 102 shown in FIG. 1 or the software components of FIG. For example, server system 1020 may include the hardware components of at least one processor CPU 1021, at least one memory 1022, and at least one input / output device I / O 1023. At least one memory 1022 may include a computer readable carrier medium such as random access memory (RAM), static RAM, flash memory, magnetic disk, and the like. The I / O device 1023 may include or include all communication devices such as transceivers (eg, wireless transceivers, wired transceivers) that transmit and receive data. The I / O device 1023 may include an interface for connecting a non-transitory computer readable carrier to the server system 1020 to send and receive data. In one exemplary embodiment, the client system's I / O device 1033 can communicate with the server system's I / O 1023 via a network.

クライアントシステム1010と同様に、サーバシステム1020はアプリケーションを実装および/または実行することができる。例えば、ウェブアプリケーション112およびコアサービス114に関連付けられたウェブサーバおよびアプリケーションサーバによって用いられるコンポーネントおよびファイルに加えて、データベース110に情報を格納するためにメモリ1022を用いることができる。CPU1021は、クライアントシステム1010により要求されそれに送信される対応モジュールを生成するのに必要なソフトウエアを実行する際に用いられてもよい。例えば、CPU1021は、アプリケーションサーバによって生成される必要なモジュールを生成するために用いられてもよい。同様に、I/Oデバイス1023は、クライアントシステム1010に異なるアプリケーション要素を送信するためにウェブサーバによって用いられてもよい。無論、これらの例は非限定的であり、システムはハードウエア要素を様々な態様で用いることを想定している。   Similar to client system 1010, server system 1020 can implement and / or execute an application. For example, memory 1022 can be used to store information in database 110 in addition to components and files used by web servers and application servers associated with web application 112 and core service 114. The CPU 1021 may be used in executing software necessary to generate a corresponding module requested by the client system 1010 and transmitted thereto. For example, the CPU 1021 may be used to generate necessary modules generated by the application server. Similarly, I / O device 1023 may be used by the web server to send different application elements to client system 1010. Of course, these examples are non-limiting, and the system envisages using hardware elements in various ways.

説明されたSSOおよびMLPに関して上で説明された技術は、とりわけ、ユーザが通信ネットワークを介してウェブアプリケーションとやりとりする際の効率を改善しつつ、ウェブアプリケーションのリソースの誤用を低減する能力を提供する。上で詳述された通り、ある実施の形態は、種々のネットワーク化リソースへのユーザアクセスを、そのようなリソースについての使用明細全体が守られるように、制御するために用いられうる。   The techniques described above with respect to the described SSO and MLP, among other things, provide the ability to reduce the misuse of web application resources while improving the efficiency with which the user interacts with the web application through the communication network. . As detailed above, certain embodiments may be used to control user access to various networked resources such that the entire usage statement for such resources is adhered to.

本明細書の例では、説明を目的とし、限定を目的とせず、記載の技術の理解を提供するために、特定のノード、機能エンティティ、技術、プロトコル、規格等の具体的な詳細が説明される。他の実施の形態を、以下の詳細説明から離れて実施できることは当業者には明らかであろう。他の例では、周知の方法、デバイス、技術等の詳細説明は、不必要な詳細説明で説明を曖昧にしないために省略されている。個々の機能ブロックが図に示される。これらのブロックの機能は、個別のハードウエア回路(例えば、図10に示されるもの)を使用して、適切なプログラム化マイクロプロセッサあるいは汎用コンピュータと協働するソフトウエアプログラム(例えば、図1に示されるもの)およびデータを使用して、特定用途集積回路(ASIC)を使用して、および/または1つ以上のデジタル信号プロセッサ(DSP)を使用して、実現可能であることを当業者は理解するであろう。ソフトウエアプログラムインストラクションおよびデータは、コンピュータ可読保持媒体に保持されてもよく、このインストラクションがコンピュータあるいは他の適切なプロセッサ制御によって実行されると、コンピュータあるいはプロセッサは機能を実行する。以下でデータベースはテーブルとして示されている場合があるが、他のフォーマット(リレーショナルデータベース、オブジェクトベースモデル、および/または分散データベースを含む)を、データを保持し操作するために使用することができる。   In the examples herein, specific details are set forth such as specific nodes, functional entities, technologies, protocols, standards, etc. to provide an understanding of the described technology for purposes of illustration and not limitation. Ru. It will be apparent to those skilled in the art that other embodiments may be practiced apart from the detailed description below. In other instances, detailed descriptions of well-known methods, devices, techniques, etc. are omitted so as not to obscure the description with unnecessary detail. Individual functional blocks are shown in the figure. The functionality of these blocks is achieved by using a separate hardware circuit (e.g., as shown in FIG. 10) and a software program (e.g., as shown in FIG. 1) to cooperate with a suitable programmed microprocessor or general purpose computer. Those skilled in the art will appreciate that this can be accomplished using an application specific integrated circuit (ASIC) and / or using one or more digital signal processors (DSPs) using Will do. Software program instructions and data may be retained on a computer readable carrier medium, which when executed by a computer or other suitable processor control, perform the function. Although databases may be shown as tables below, other formats (including relational databases, object-based models, and / or distributed databases) can be used to hold and manipulate data.

処理ステップ、アルゴリズムあるいはその類が特定の順序で記載またはクレームされている場合があるが、このような処理は、異なる順序で動作するように構成設定することができる。換言すれば、明示されるかクレームされるいかなるシーケンスあるいはステップの順序も、そのステップがその順序で実行される必要性を示すものでは必ずしもない。本明細書で記載される処理のステップは、取り得る任意の順序で実行されうる。また、いくつかのステップは、非同時的に発生するように記載されているあるいは暗示されているが(例えば、あるステップは、他のステップの後に記載されているからである)、同時に実行されうる。さらに、図面における図示による処理の説明は、図示される処理が他の変形や変更について排他的であることを暗示しているのではなく、また、図示される処理あるいはその任意のステップが本技術に必要であることを暗示しているのではなく、また、図示される処理が好ましいことを暗示しているのでもない。 Although the process steps, algorithms or the like may be described or claimed in a particular order, such processes may be configured to operate in a different order. In other words, the order of any sequences or steps specified or claimed does not necessarily indicate that the steps are to be performed in that order. The steps of processing described herein may be performed in any order that is possible. Also, although some steps are described or implied to occur non-simultaneously (e.g. because some steps are described after other steps), they are performed simultaneously sell. Furthermore, the description of the illustrated process in the drawings does not imply that the illustrated process is exclusive to other variations or modifications, and the illustrated process or any step thereof is not limited to the present technology. It does not imply that it is necessary, nor does it imply that the illustrated process is preferred.

様々な形式のコンピュータ可読媒体/伝送は、プロセッサにデータ(例えば、インストラクションのシーケンス)を運ぶ際に含まれうる。例えば、データは、(i)メモリからプロセッサへ送信されてもよく、(ii)任意のタイプの送信媒体(例えば、有線、無線、光等)を介して運ばれてもよく、(iii)イーサネット(あるいはIEEE802.3)、ATP、ブルートゥース(登録商標)、TCP/IP、TDMA、CDMA、3G等のような、多くのフォーマット、規格あるいはプロトコルに従ってフォーマットおよび/または送信されてもよく、および/または(iv)周知の様々な方法の任意のものでプライバシーを確保するためにあるいは流出を防止するために暗号化されてもよい。   Various forms of computer readable media / transmissions may be involved in carrying data (e.g., sequences of instructions) to a processor. For example, data may be (i) transmitted from memory to the processor, (ii) carried via any type of transmission medium (eg, wired, wireless, optical, etc.), (iii) Ethernet May be formatted and / or transmitted according to any format, standard or protocol such as (or IEEE 802.3), ATP, Bluetooth, TCP / IP, TDMA, CDMA, 3G etc. and / or (Iv) may be encrypted to ensure privacy or to prevent leakage in any of a variety of known ways.

本書で、動作が実行され「てもよく」、「ることができ」、もしくは「うる」ことと、機能、エレメント、もしくは構成が所与のコンテキストに含まれ「てもよく」、「ることができ」、もしくは「うる」、または適用可能なことと、所与のアイテムが所与の特性を有し「てもよく」、「ることができ」、もしくは「うる」こととが説明されるときはいつでも、または「〜てもよい」、「〜できる」もしくは「〜しうる」という用語を含む任意の類似の語句が使用されるときはいつでも、所与の動作、特徴、エレメント、構成、特性、などが少なくとも1つの実施形態に示されているが、全ての実施形態に示される必要はないことが理解されたい。   In this document, operations may be performed, may be, or may be, and features, elements, or configurations may be included in a given context, or may be Are described as being able to “or” or “applicable” and “given”, “can” or “may” that a given item has a given property. Whenever, or whenever any similar phrase is used, including the terms "may", "can" or "may", a given operation, feature, element, configuration It should be understood that although at least one embodiment is shown in at least one embodiment, a property, etc. need not be shown in all embodiments.

AngularJSとの関連で技術が説明されたが、これは説明を容易にするためになされたものであって、本明細書で説明された技術が他のSPA技術や他のウェブ技術やおよび/または他のソフトウエア技術のコンテキストにおいて適用可能であることは理解される。   Although the techniques have been described in the context of Angular JS, this has been done to facilitate the description and the techniques described herein may be other SPA techniques or other web techniques and / or / or It is understood that it is applicable in the context of other software technologies.

最も実際的で好適な実施の形態であると現時点で考えられているものとの関係で本技術が説明されたが、本技術は開示された実施の形態に限定されるものではなく、むしろ種々の変形例および等価な構成をカバーするよう意図されていることは理解されるべきである。   Although the present technology has been described in relation to what is presently considered to be the most practical and preferred embodiment, the present technology is not limited to the disclosed embodiments, but rather various It should be understood that it is intended to cover variations and equivalent arrangements of

Claims (15)

少なくともひとつのクライアントデバイスとウェブアプリケーションのサーバ側プロセスを実行する少なくともひとつのサーバデバイスとを備えるシステムであって、
前記少なくともひとつのクライアントデバイスが少なくともひとつのハードウエアプロセッサを有する第1処理システムを含み、前記第1処理システムが前記ウェブアプリケーションの第1クライアント側部分を提供する第1クライアントアプリケーションと前記ウェブアプリケーションの第2クライアント側部分を提供する第2クライアントアプリケーションとを実行するよう構成され、前記第1クライアントアプリケーションがブラウザであり、前記第2クライアントアプリケーションがネイティブアプリケーションであり、
前記少なくともひとつのサーバが少なくともひとつのハードウエアプロセッサを有する第2処理システムを含み、前記第2処理システムが前記ウェブアプリケーションの前記サーバ側部分を実行するよう構成され、
前記第2処理システムは、
前記第1クライアントアプリケーションから受けた第1アクセス要求に応じて、前記第1クライアントアプリケーションに、前記ウェブアプリケーションの前記サーバ側部分によって提供されるアプリケーションデータにアクセスする前にサインオンプロセスを実行させることと、
行われる前記サインオンプロセスに関連して、第1セッションを生成することであって、後に前記第1クライアントアプリケーションに前記第1セッションを用いて前記アプリケーションデータへのアクセスが提供される、生成することと、
前記第2クライアントアプリケーションから第2要求が受け付けられた場合、前記第2要求に含まれる少なくともひとつの識別子と前記第2要求に関連付けられたブラウザタイプとを用いて、前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能か否かを判定することと、
前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能であると判定された場合、前記第2クライアントアプリケーションに、前記第1セッションを用いた前記アプリケーションデータへのアクセスを提供することと、
前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能でないと判定された場合、前記第2クライアントアプリケーションに、前記アプリケーションデータにアクセスする前にサインオンプロセスを実行させ、前記第2クライアントアプリケーションが前記サインオンプロセスを実行した後に、前記第2クライアントアプリケーションによって行われた前記サインオンプロセスに関連して生成された第2セッションを用いて前記第2クライアントアプリケーションに前記アプリケーションデータへのアクセスを提供することと、
他のクライアントデバイスで実行される、前記第1クライアントアプリケーションまたは前記第2クライアントアプリケーションのいずれかのインスタンスによるサインオンに関連して、第3セッションを生成することであって、前記他のデバイスで実行される該インスタンスに前記第3セッションを用いた前記アプリケーションデータへのアクセスを後に提供する、生成することと、
前記第3セッションを生成することに応じて、前記第1セッションを不活性化し、前記少なくともひとつのクライアントデバイスで実行される前記第1クライアントアプリケーションおよび前記第2クライアントアプリケーションによる前記アプリケーションデータへのアクセスを防ぐことと、を含む動作を行うよう構成されるシステム。
A system comprising at least one client device and at least one server device executing a server-side process of a web application, the system comprising:
A first client application comprising a first processing system wherein the at least one client device comprises at least one hardware processor, the first processing system providing a first client-side portion of the web application, and a first of the web application And a second client application configured to execute a second client application, wherein the first client application is a browser and the second client application is a native application.
The at least one server comprises a second processing system having at least one hardware processor, the second processing system being configured to execute the server side portion of the web application;
The second processing system
Having the first client application perform a sign-on process prior to accessing application data provided by the server side portion of the web application in response to a first access request received from the first client application; ,
Generating a first session in connection with the sign-on process to be performed, the access to the application data being provided to the first client application later using the first session; When,
When the second request is received from the second client application, the second client application uses the at least one identifier included in the second request and the browser type associated with the second request to use the application. Determining whether the first session can be used to access data;
If it is determined that the first client application can use the first session to access the application data, the second client application accesses the application data using the first session. To provide and
If it is determined that the second client application can not use the first session to access the application data, having the second client application perform a sign-on process before accessing the application data; After the second client application performs the sign-on process, the application data is sent to the second client application using a second session generated in connection with the sign-on process performed by the second client application. Providing access to
Creating a third session associated with sign-on by an instance of either the first client application or the second client application running on another client device , the third session running on the other device Later providing access to the application data using the third session to the instance to be created;
Deactivating the first session in response to generating the third session, and accessing the application data by the first client application and the second client application executed on the at least one client device; And a system configured to perform an action including: preventing.
前記判定することは、前記少なくともひとつのサーバデバイスのメモリに、前記識別子に対応する値が、複数のセッションレコードのうちの少なくともひとつに関連付けて保持されているか否かを判定することを含む請求項1に記載のシステム。   The determination may include determining whether a value corresponding to the identifier is stored in the memory of the at least one server device in association with at least one of a plurality of session records. The system according to 1. 前記判定することは、
前記ウェブアプリケーションに関連付けられた、対応する以前に格納された資格を特定することをさらに含み、
前記判定することはさらに前記特定された資格に基づく請求項2に記載のシステム。
The above determination is
Further including identifying a corresponding previously stored credential associated with the web application;
The system of claim 2, wherein the determining is further based on the identified qualification.
前記第1処理システムはさらに、
前記第2クライアントアプリケーションが、前記ウェブアプリケーションの前記サーバ側部分と通信するために、前記第2クライアントアプリケーションによって用いられるひとつ以上の候補ブラウザコントロールを決定することと、
前記第2クライアントアプリケーションが前記サーバデバイスに、前記第2要求の第1インスタンスを送信することであって、前記第1インスタンスが前記ひとつ以上の候補ブラウザコントロールのうちの選択された第1候補ブラウザコントロールに対応する、送信することと、
前記第2要求の送信された前記第1インスタンスに対して受信された応答に基づいて、前記第2クライアントアプリケーションが、前記アプリケーションデータにアクセスするのか、または、前記第2要求の第2インスタンスを送信するのか、を判定することであって、前記第2インスタンスが前記ひとつ以上の候補ブラウザコントロールのうちの別のひとつに対応する、判定することと、を行うよう構成される請求項1に記載のシステム。
The first processing system further comprises
Determining the one or more candidate browser controls used by the second client application to communicate with the server side portion of the web application by the second client application;
The second client application may send a first instance of the second request to the server device, wherein the first instance is a selected first candidate browser control of the one or more candidate browser controls. Corresponding to, sending, and
Whether the second client application accesses the application data or sends a second instance of the second request based on the response received for the sent first instance of the second request The method of claim 1, wherein determining whether the second instance is to correspond to another one of the one or more candidate browser controls is performed. system.
(a)前記第1クライアントアプリケーションのブラウザタイプが前記ひとつ以上の候補ブラウザコントロールのうちの選択された前記第1候補ブラウザコントロールのブラウザタイプと同じである場合、前記受信された応答は前記第1セッションの存在を示し、(b)前記第1クライアントアプリケーションの前記ブラウザタイプが前記ひとつ以上の候補ブラウザコントロールのうちの選択された前記第1候補ブラウザコントロールの前記ブラウザタイプと異なる場合、前記受信された応答は前記第2クライアントアプリケーションが使用可能な既存のセッションの発見に失敗したことを表す請求項4に記載のシステム。   (A) if the browser type of the first client application is the same as the browser type of the first candidate browser control selected from the one or more candidate browser controls, the received response is the first session The received response if the presence of (b) the browser type of the first client application differs from the browser type of the selected first candidate browser control of the one or more candidate browser controls; The system according to claim 4, wherein indicates that the second client application has failed to find an available existing session. 前記第1処理システムはさらに、
前記受信された応答が前記第1セッションの前記存在を示し、かつ、前記ひとつ以上の候補ブラウザコントロールのうちの現在選択されている候補ブラウザコントロールのブラウザタイプが所定のブラウザタイプとは異なる場合、前記応答に含まれる第1セッション識別子を取得することと、
前記所定のブラウザタイプのブラウザコントロールをインスタンス化することと、
前記所定のブラウザタイプの前記インスタンス化されたブラウザコントロールと前記第1セッション識別子とを用いて前記アプリケーションデータにアクセスすることと、を行うよう構成される請求項5に記載のシステム。
The first processing system further comprises
If the received response indicates the presence of the first session and the browser type of the currently selected candidate browser control of the one or more candidate browser controls is different from a predetermined browser type, Obtaining a first session identifier included in the response;
Instantiating the predetermined browser type browser control;
The system of claim 5, configured to access the application data using the instantiated browser control of the predetermined browser type and the first session identifier.
前記第1処理システムはさらに、
前記第2要求のひとつ以上のインスタンスを送信した後に、前記第2要求のインスタンスについて受信した応答に関連して、前記第2クライアントアプリケーションが前記サインオンを実行することを行うよう構成される請求項5に記載のシステム。
The first processing system further comprises
The second client application is configured to perform the sign on in response to a response received for an instance of the second request after sending one or more instances of the second request. The system described in 5.
前記第2処理システムはさらに、
前記第2要求のインスタンスを受信することに応じて、前記第1セッションが前記第2要求に現在関連付けられているブラウザタイプに対応するか否かを判定することと、
前記判定することが前記第1セッションが前記第2要求に現在関連付けられているブラウザタイプに対応すると判定する場合、前記第2クライアントアプリケーションに、前記第1セッションに関連付けられた第1セッション識別子を返すことと、
前記判定することが前記第1セッションが前記第2要求に現在関連付けられている前記ブラウザタイプに対応しないと判定する場合、前記第2クライアントアプリケーションに、前記第2クライアントアプリケーションが使用可能なセッションが見つからなかったことを示すものを返すことと、を行うよう構成される請求項1に記載のシステム。
The second processing system further comprises
Determining whether the first session corresponds to a browser type currently associated with the second request in response to receiving an instance of the second request;
Returning a first session identifier associated with the first session to the second client application if the determining determines that the first session corresponds to a browser type currently associated with the second request And
If it is determined that the determination does not correspond to the browser type currently associated with the second request, then the second client application finds a session usable by the second client application The system of claim 1, configured to: return an indication that it did not exist.
ウェブアプリケーションのサーバ側部分を実行するよう構成された少なくともひとつのハードウエアプロセッサを含むサーバデバイスであって、前記少なくともひとつのプロセッサは、
前記ウェブアプリケーションの第1クライアント側部分を有する第1クライアントアプリケーションであって第1クライアントデバイスによって実行される第1クライアントアプリケーションから受けた第1アクセス要求に応じて、前記第1クライアントアプリケーションに、前記ウェブアプリケーションの前記サーバ側部分によって提供されるアプリケーションデータにアクセスする前にサインオンプロセスを実行させることであって、前記第1クライアントアプリケーションがブラウザアプリケーションである、実行させることと、
行われる前記サインオンプロセスに関連して、第1セッションを生成することであって、後に前記第1クライアントアプリケーションに前記第1セッションを用いて前記アプリケーションデータへのアクセスが提供される、生成することと、
前記ウェブアプリケーションの第2クライアント側部分を有する第2クライアントアプリケーションであって第1クライアントデバイスによって実行される第2クライアントアプリケーションから第2要求が受け付けられた場合、前記第2要求に含まれる少なくともひとつの識別子と前記第2要求に関連付けられたブラウザタイプとを用いて、前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能か否かを判定することであって、前記第2クライアントアプリケーションがネイティブアプリケーションである、判定することと、
前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能であると判定された場合、前記第2クライアントアプリケーションに、前記第1セッションを用いた前記アプリケーションデータへのアクセスを提供することと、
前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能でないと判定された場合、前記第2クライアントアプリケーションに、前記アプリケーションデータにアクセスする前にサインオンプロセスを実行させ、前記第2クライアントアプリケーションが前記サインオンプロセスを実行した後に、前記第2クライアントアプリケーションによって行われた前記サインオンプロセスに関連して生成された第2セッションを用いて前記第2クライアントアプリケーションに前記アプリケーションデータへのアクセスを提供することと、
他のクライアントデバイスで実行される、前記第1クライアントアプリケーションまたは前記第2クライアントアプリケーションのいずれかのインスタンスによるサインオンに関連して、第3セッションを生成することであって、前記他のデバイスで実行される該インスタンスに前記第3セッションを用いた前記アプリケーションデータへのアクセスを後に提供する、生成することと、
前記第3セッションを生成することに応じて、前記第1セッションを不活性化し、前記第1クライアントデバイスで実行される前記第1クライアントアプリケーションおよび前記第2クライアントアプリケーションによる前記アプリケーションデータへのアクセスを防ぐことと、を含む動作を行うよう構成されるサーバデバイス。
A server device comprising at least one hardware processor configured to execute a server side portion of a web application, the at least one processor comprising:
A first client application having a first client-side portion of the web application, the first client application being responsive to a first access request received from a first client application executed by a first client device; Executing a sign-on process prior to accessing application data provided by the server-side portion of the application, wherein the first client application is a browser application;
Generating a first session in connection with the sign-on process to be performed, the access to the application data being provided to the first client application later using the first session; When,
At least one second client application having a second client-side portion of the web application, the second request being received from a second client application executed by a first client device , the second request being included in the second request Determining whether the second client application can use the first session to access the application data using an identifier and a browser type associated with the second request. Determining that the second client application is a native application;
If it is determined that the first client application can use the first session to access the application data, the second client application accesses the application data using the first session. To provide and
If it is determined that the second client application can not use the first session to access the application data, having the second client application perform a sign-on process before accessing the application data; After the second client application performs the sign-on process, the application data is sent to the second client application using a second session generated in connection with the sign-on process performed by the second client application. Providing access to
Creating a third session associated with sign-on by an instance of either the first client application or the second client application running on another client device , the third session running on the other device Later providing access to the application data using the third session to the instance to be created;
In response to creating the third session, deactivate the first session to prevent access to the application data by the first client application and the second client application executed on the first client device And a server device configured to perform an operation.
前記少なくともひとつのプロセッサはさらに、
前記第2要求のインスタンスを受信することに応じて、前記第1セッションが前記第2要求に現在関連付けられているブラウザタイプに対応するか否かを判定することと、
前記判定することが前記第1セッションが前記第2要求に現在関連付けられているブラウザタイプに対応すると判定する場合、前記第2クライアントアプリケーションに、前記第1セッションに関連付けられた第1セッション識別子を返すことと、
前記判定することが前記第1セッションが前記第2要求に現在関連付けられている前記ブラウザタイプに対応しないと判定する場合、前記第2クライアントアプリケーションに、前記第2クライアントアプリケーションが使用可能なセッションが見つからなかったことを示すものを返すことと、を行うよう構成される請求項9に記載のサーバデバイス。
The at least one processor further comprises:
Determining whether the first session corresponds to a browser type currently associated with the second request in response to receiving an instance of the second request;
Returning a first session identifier associated with the first session to the second client application if the determining determines that the first session corresponds to a browser type currently associated with the second request And
If it is determined that the determination does not correspond to the browser type currently associated with the second request, then the second client application finds a session usable by the second client application 10. The server device of claim 9, configured to: return an indication that it did not exist.
少なくともひとつのプロセッサを含むサーバデバイスによって行われる方法であって、 ウェブアプリケーションのサーバ側部分を実行することと、
前記ウェブアプリケーションの第1クライアント側部分を有する第1クライアントアプリケーションであって第1クライアントデバイスによって実行される第1クライアントアプリケーションから受けた第1アクセス要求に応じて、前記第1クライアントアプリケーションに、前記ウェブアプリケーションの前記サーバ側部分によって提供されるアプリケーションデータにアクセスする前にサインオンプロセスを実行させることであって、前記第1クライアントアプリケーションがブラウザアプリケーションである、実行させることと、
前記行われるサインオンプロセスに関連して、第1セッションを生成することであって、後に前記第1クライアントアプリケーションに前記第1セッションを用いて前記アプリケーションデータへのアクセスが提供される、生成することと、
前記ウェブアプリケーションの第2クライアント側部分を有する第2クライアントアプリケーションであって第1クライアントデバイスによって実行される第2クライアントアプリケーションから第2要求が受け付けられた場合、前記第2要求に含まれる少なくともひとつの識別子と前記第2要求に関連付けられたブラウザタイプとを用いて、前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能か否かを判定することであって、前記第2クライアントアプリケーションがネイティブアプリケーションである、判定することと、
前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能であると判定された場合、前記第2クライアントアプリケーションに、前記第1セッションを用いた前記アプリケーションデータへのアクセスを提供することと、
前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能でないと判定された場合、前記第2クライアントアプリケーションに、前記アプリケーションデータにアクセスする前にサインオンプロセスを実行させ、前記第2クライアントアプリケーションが前記サインオンプロセスを実行した後に、前記第2クライアントアプリケーションによって行われた前記サインオンプロセスに関連して生成された第2セッションを用いて前記第2クライアントアプリケーションに前記アプリケーションデータへのアクセスを提供することと、
他のクライアントデバイスで実行される、前記第1クライアントアプリケーションまたは前記第2クライアントアプリケーションのいずれかのインスタンスによるサインオンに関連して、第3セッションを生成することであって、前記他のデバイスで実行される該インスタンスに前記第3セッションを用いた前記アプリケーションデータへのアクセスを後に提供する、生成することと、
前記第3セッションを生成することに応じて、前記第1セッションを不活性化し、前記第1クライアントデバイスで実行される前記第1クライアントアプリケーションおよび前記第2クライアントアプリケーションによる前記アプリケーションデータへのアクセスを防ぐことと、を含む方法。
Executing the server side portion of the web application, the method being performed by a server device comprising at least one processor;
A first client application having a first client-side portion of the web application, the first client application being responsive to a first access request received from a first client application executed by a first client device; Executing a sign-on process prior to accessing application data provided by the server-side portion of the application, wherein the first client application is a browser application;
Generating a first session in connection with the performed sign-on process, the access to the application data being provided to the first client application later using the first session; When,
At least one second client application having a second client-side portion of the web application, the second request being received from a second client application executed by a first client device , the second request being included in the second request Determining whether the second client application can use the first session to access the application data using an identifier and a browser type associated with the second request. Determining that the second client application is a native application;
If it is determined that the first client application can use the first session to access the application data, the second client application accesses the application data using the first session. To provide and
If it is determined that the second client application can not use the first session to access the application data, having the second client application perform a sign-on process before accessing the application data; After the second client application performs the sign-on process, the application data is sent to the second client application using a second session generated in connection with the sign-on process performed by the second client application. Providing access to
Creating a third session associated with sign-on by an instance of either the first client application or the second client application running on another client device , the third session running on the other device Later providing access to the application data using the third session to the instance to be created;
In response to creating the third session, deactivate the first session to prevent access to the application data by the first client application and the second client application executed on the first client device And how to contain it.
それに保持されるプログラムインストラクションを有する非一時的コンピュータ可読保持媒体であって、前記プログラムインストラクションはサーバデバイスのコンピュータによって実行された場合、前記サーバデバイスに、
ウェブアプリケーションのサーバ側部分を実行することと、
前記ウェブアプリケーションの第1クライアント側部分を有する第1クライアントアプリケーションであって第1クライアントデバイスによって実行される第1クライアントアプリケーションから受けた第1アクセス要求に応じて、前記第1クライアントアプリケーションに、前記ウェブアプリケーションの前記サーバ側部分によって提供されるアプリケーションデータにアクセスする前にサインオンプロセスを実行させることであって、前記第1クライアントアプリケーションがブラウザアプリケーションである、実行させることと、
行われる前記サインオンプロセスに関連して、第1セッションを生成することであって、後に前記第1クライアントアプリケーションに前記第1セッションを用いて前記アプリケーションデータへのアクセスが提供される、生成することと、
前記ウェブアプリケーションの第2クライアント側部分を有する第2クライアントアプリケーションであって第1クライアントデバイスによって実行される第2クライアントアプリケーションから第2要求が受け付けられた場合、前記第2要求に含まれる少なくともひとつの識別子と前記第2要求に関連付けられたブラウザタイプとを用いて、前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能か否かを判定することと、
前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能であると判定された場合、前記第2クライアントアプリケーションに、前記第1セッションを用いた前記アプリケーションデータへのアクセスを提供することと、
前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能でないと判定された場合、前記第2クライアントアプリケーションに、前記アプリケーションデータにアクセスする前にサインオンプロセスを実行させ、前記第2クライアントアプリケーションが前記サインオンプロセスを実行した後に、前記第2クライアントアプリケーションによって行われた前記サインオンプロセスに関連して生成された第2セッションを用いて前記第2クライアントアプリケーションに前記アプリケーションデータへのアクセスを提供することと、
他のクライアントデバイスで実行される、前記第1クライアントアプリケーションまたは前記第2クライアントアプリケーションのいずれかのインスタンスによるサインオンに関連して、第3セッションを生成することであって、前記他のデバイスで実行される該インスタンスに前記第3セッションを用いた前記アプリケーションデータへのアクセスを後に提供する、生成することと、
前記第3セッションを生成することに応じて、前記第1セッションを不活性化し、前記第1クライアントデバイスで実行される前記第1クライアントアプリケーションおよび前記第2クライアントアプリケーションによる前記アプリケーションデータへのアクセスを防ぐことと、を含む動作を行わせる非一時的コンピュータ可読保持媒体。
A non-transitory computer readable storage medium having program instructions stored thereon, wherein said program instructions are executed by a server device computer on said server device,
Running the server-side part of the web application,
A first client application having a first client-side portion of the web application, the first client application being responsive to a first access request received from a first client application executed by a first client device; Executing a sign-on process prior to accessing application data provided by the server-side portion of the application, wherein the first client application is a browser application;
Generating a first session in connection with the sign-on process to be performed, the access to the application data being provided to the first client application later using the first session; When,
At least one second client application having a second client-side portion of the web application, the second request being received from a second client application executed by a first client device , the second request being included in the second request Determining whether the second client application can use the first session to access the application data using an identifier and a browser type associated with the second request;
If it is determined that the first client application can use the first session to access the application data, the second client application accesses the application data using the first session. To provide and
If it is determined that the second client application can not use the first session to access the application data, having the second client application perform a sign-on process before accessing the application data; After the second client application performs the sign-on process, the application data is sent to the second client application using a second session generated in connection with the sign-on process performed by the second client application. Providing access to
Creating a third session associated with sign-on by an instance of either the first client application or the second client application running on another client device , the third session running on the other device Later providing access to the application data using the third session to the instance to be created;
In response to creating the third session, deactivate the first session to prevent access to the application data by the first client application and the second client application executed on the first client device And non-transitory computer readable carrier medium for performing operations including.
少なくともひとつのハードウエアプロセッサを含むクライアントデバイスであって、前記少なくともひとつのハードウエアプロセッサは、ウェブアプリケーションの第1クライアント側部分を提供するブラウザアプリケーションである第1クライアントアプリケーションと前記ウェブアプリケーションの第2クライアント側部分を提供するネイティブアプリケーションである第2クライアントアプリケーションとを実行するよう構成され、前記少なくともひとつのハードウエアプロセッサは、
前記ウェブアプリケーションのサーバ側部分へ第1要求を送信した前記第1クライアントアプリケーションが、前記ウェブアプリケーションの前記サーバ側部分へのサインオンを行い、行われた前記サインオンの後に、行われた前記サインオンに関連して生成された第1セッションを用いて前記ウェブアプリケーションの前記サーバ側部分からアプリケーションデータにアクセスすることと、
前記第2クライアントアプリケーションがサーバデバイスへ、前記ウェブアプリケーションの前記サーバ側部分と通信するために、前記第2クライアントアプリケーションによって用いられるひとつ以上の候補ブラウザコントロールのうちの選択されたひとつを含む第2要求を送信することと、
送信された前記第2要求に対して受信された応答に基づいて、前記第2クライアントアプリケーションが、前記ウェブアプリケーションの前記サーバ側部分のアプリケーションデータにアクセスするのか、または、前記第2要求の別のインスタンスを送信するのか、を判定することと、を含む動作を行うよう構成され、
前記ウェブアプリケーションの前記サーバ側部分は、
前記第2クライアントアプリケーションから前記第2要求が受け付けられた場合、前記第2要求に含まれる少なくともひとつの識別子と前記第2要求に関連付けられたブラウザタイプとを用いて、前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能か否かを判定することと、
前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能であると判定された場合、前記第2クライアントアプリケーションに、前記第1セッションを用いた前記アプリケーションデータへのアクセスを提供することと、
前記第2クライアントアプリケーションが前記アプリケーションデータにアクセスするのに前記第1セッションを使用可能でないと判定された場合、前記第2クライアントアプリケーションに、前記アプリケーションデータにアクセスする前にサインオンプロセスを実行させ、前記第2クライアントアプリケーションが前記サインオンプロセスを実行した後に、前記第2クライアントアプリケーションによって行われた前記サインオンプロセスに関連して生成された第2セッションを用いて前記第2クライアントアプリケーションに前記アプリケーションデータへのアクセスを提供することと、
他のクライアントデバイスで実行される、前記第1クライアントアプリケーションまたは前記第2クライアントアプリケーションのいずれかのインスタンスによるサインオンに関連して、第3セッションを生成することであって、前記他のクライアントデバイスで実行される該インスタンスに前記第3セッションを用いた前記アプリケーションデータへのアクセスを後に提供する、生成することと、
前記第3セッションを生成することに応じて、前記第1セッションを不活性化し、前記クライアントデバイスで実行される前記第1クライアントアプリケーションおよび前記第2クライアントアプリケーションによる前記アプリケーションデータへのアクセスを防ぐことと、を行うよう構成されるクライアントデバイス。
A client device comprising at least one hardware processor, the at least one hardware processor being a browser application providing a first client-side portion of a web application, a first client application and a second client of the web application And at least one hardware processor configured to execute a second client application that is a native application providing the side part,
The first client application that has sent a first request to the server side portion of the web application signs on to the server side portion of the web application, and the sign is made after the sign on made. Accessing application data from the server side portion of the web application using a first session generated in connection with on;
Wherein the second client application Gasa Badebaisu, wherein to communicate with the server-side portion of the web application, the second request including the one selected of one or more candidate browser controls used by the second client application To send
Whether the second client application accesses application data of the server-side portion of the web application or another of the second request based on the response received for the second request sent. Determining whether to send an instance, and
The server side portion of the web application is:
When the second request is received from the second client application, the second client application may use the at least one identifier included in the second request and the browser type associated with the second request. Determining whether the first session can be used to access application data;
If it is determined that the first client application can use the first session to access the application data, the second client application accesses the application data using the first session. To provide and
If it is determined that the second client application can not use the first session to access the application data, having the second client application perform a sign-on process before accessing the application data; After the second client application performs the sign-on process, the application data is sent to the second client application using a second session generated in connection with the sign-on process performed by the second client application. Providing access to
Creating a third session in connection with sign-on by an instance of either the first client application or the second client application running on another client device, wherein the third session is performed on the other client device Generating, later providing access to the application data using the third session to the instance to be executed;
Deactivating the first session in response to creating the third session to prevent access to the application data by the first client application and the second client application executed on the client device; , Client device configured to do.
(a)前記第1クライアントアプリケーションのブラウザタイプが前記ひとつ以上の候補ブラウザコントロールのうちの選択された前記候補ブラウザコントロールのブラウザタイプと同じである場合、前記受信された応答は前記第1セッションの存在を示し、(b)前記第1クライアントアプリケーションの前記ブラウザタイプが前記ひとつ以上の候補ブラウザコントロールのうちの選択された前記候補ブラウザコントロールの前記ブラウザタイプと異なる場合、前記受信された応答は前記第2クライアントアプリケーションが使用可能な既存のセッションの発見に失敗したことを表す請求項13に記載のクライアントデバイス。   (A) if the browser type of the first client application is the same as the browser type of the candidate browser control selected from the one or more candidate browser controls, the received response indicates the presence of the first session And (b) if the browser type of the first client application is different from the browser type of the candidate browser control selected from the one or more candidate browser controls, the received response is the second The client device according to claim 13, wherein the client device represents failure to find an existing session that can be used. 前記少なくともひとつのハードウエアプロセッサはさらに
前記受信された応答が前記第1セッションの前記存在を示し、かつ、前記ひとつ以上の候補ブラウザコントロールのうちの選択された前記候補ブラウザコントロールのブラウザタイプが所定のブラウザタイプとは異なる場合、前記応答に含まれる第1セッション識別子を取得することと、
前記所定のブラウザタイプのブラウザコントロールをインスタンス化することと、
前記所定のブラウザタイプの前記インスタンス化されたブラウザコントロールと前記第1セッション識別子とを用いて前記アプリケーションデータにアクセスすることと、を行うよう構成される請求項14に記載のクライアントデバイス。
The at least one hardware processor further indicates that the received response indicates the presence of the first session, and a browser type of the selected candidate browser control of the one or more candidate browser controls is predetermined. Obtaining a first session identifier included in the response if different from a browser type;
Instantiating the predetermined browser type browser control;
15. The client device of claim 14, configured to access the application data using the instantiated browser control of the predetermined browser type and the first session identifier.
JP2018522725A 2015-11-06 2016-11-04 System and method for controlling sign-on to web applications Active JP6533871B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562252295P 2015-11-06 2015-11-06
US62/252,295 2015-11-06
US15/342,923 US9985972B2 (en) 2015-11-06 2016-11-03 Systems and methods for controlling sign-on to web applications
US15/342,923 2016-11-03
PCT/US2016/060473 WO2017079523A1 (en) 2015-11-06 2016-11-04 Systems and methods for controlling sign-on to web applications

Publications (2)

Publication Number Publication Date
JP2018536232A JP2018536232A (en) 2018-12-06
JP6533871B2 true JP6533871B2 (en) 2019-06-19

Family

ID=58663077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018522725A Active JP6533871B2 (en) 2015-11-06 2016-11-04 System and method for controlling sign-on to web applications

Country Status (5)

Country Link
US (5) US9985972B2 (en)
JP (1) JP6533871B2 (en)
AU (1) AU2016349477B2 (en)
SG (1) SG11201803649QA (en)
WO (1) WO2017079523A1 (en)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560604B2 (en) 2009-10-08 2013-10-15 Hola Networks Ltd. System and method for providing faster and more efficient data communication
US9241044B2 (en) 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US11057446B2 (en) 2015-05-14 2021-07-06 Bright Data Ltd. System and method for streaming content from multiple servers
US9985972B2 (en) 2015-11-06 2018-05-29 Nasdaq, Inc. Systems and methods for controlling sign-on to web applications
US10846107B2 (en) * 2016-10-28 2020-11-24 Calgary Scientific Inc. Multi-window architecture and data communication for a remote access application session
US11082476B2 (en) * 2016-11-15 2021-08-03 Verizon Media Inc. Computerized system and method for automatically providing networked devices non-native functionality
LT3472717T (en) 2017-08-28 2021-01-11 Luminati Networks Ltd. Method for improving content fetching by selecting tunnel devices
US11500948B1 (en) * 2018-06-01 2022-11-15 Proof of Concept, LLC Method and system for asynchronous correlation of data entries in spatially separated instances of heterogeneous databases
US11122029B2 (en) * 2019-01-11 2021-09-14 Citrix Systems, Inc. Secure cloud computing
LT4075304T (en) 2019-02-25 2023-07-25 Bright Data Ltd. SYSTEM AND METHOD FOR DOWNLOADING CONTENT USING A URL TESTING MECHANISM
FR3093835B1 (en) * 2019-03-12 2023-01-20 Amadeus Computer network for secure access to online applications
EP4027618B1 (en) 2019-04-02 2024-07-31 Bright Data Ltd. Managing a non-direct url fetching service
US11431712B2 (en) * 2019-05-29 2022-08-30 International Business Machines Corporation System and method for personalized passenger auditing in aircrafts
CN110839041A (en) * 2019-11-22 2020-02-25 苏州浪潮智能科技有限公司 Single-user login method, device, equipment and medium supporting multi-node deployment
CN111431870B (en) * 2020-03-10 2022-05-03 北京声智科技有限公司 Equipment login method and device
WO2021189229A1 (en) 2020-03-24 2021-09-30 Citrix Systems, Inc. Inter-application relevance management for application virtualization platform
US12314587B2 (en) * 2020-11-12 2025-05-27 Snowflake Inc. Enabling applications to access cloud data
CN118614039A (en) 2021-11-24 2024-09-06 海岛科技有限公司 Implementation of enterprise browser usage
US11763257B1 (en) * 2022-07-15 2023-09-19 Fevo, Inc. Group inventory management for a network traffic surge resistant platform
US11636512B1 (en) * 2022-07-15 2023-04-25 Fevo, Inc. Inventory management system protection for network traffic surge resistant platform
US12243092B2 (en) * 2022-07-15 2025-03-04 Fevo, Inc. Inventory management system protection for network traffic surge resistant platform

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026260A1 (en) * 2004-07-28 2006-02-02 Mullen Jeffrey T Method of communicating between web applications and local client application while maintaining remote user session
JP2007034956A (en) * 2005-07-29 2007-02-08 Canon Inc HTTP server / client system
US9413750B2 (en) * 2011-02-11 2016-08-09 Oracle International Corporation Facilitating single sign-on (SSO) across multiple browser instance
CN102438000B (en) 2011-03-11 2015-09-30 北京奇虎科技有限公司 A multi-account login method and device
US9118657B1 (en) * 2011-03-15 2015-08-25 Avior, Inc. Extending secure single sign on to legacy applications
US8826143B2 (en) 2012-03-14 2014-09-02 International Business Machines Corporation Central logout from multiple websites
US8769651B2 (en) * 2012-09-19 2014-07-01 Secureauth Corporation Mobile multifactor single-sign-on authentication
US8935769B2 (en) * 2012-09-28 2015-01-13 Liveensure, Inc. Method for mobile security via multi-factor context authentication
US8782766B1 (en) 2012-12-27 2014-07-15 Motorola Solutions, Inc. Method and apparatus for single sign-on collaboration among mobile devices
US9083690B2 (en) * 2013-01-30 2015-07-14 Oracle International Corporation Communication session termination rankings and protocols
US9940614B2 (en) 2013-04-11 2018-04-10 Mx Technologies, Inc. Syncing two separate authentication channels to the same account or data using a token or the like
US9552693B1 (en) * 2013-09-24 2017-01-24 Iverson Gaming Systems, Inc. Use of mobile device as a direct input/output device for a player tracking system for gaming machines
WO2015094984A1 (en) * 2013-12-16 2015-06-25 Avinash Singh System and process for controlling a portable device
US9923937B2 (en) * 2015-05-18 2018-03-20 Adobe Systems Incorporated Dynamic personalized content presentation to re-engage users during online sessions
US10185987B2 (en) * 2015-07-24 2019-01-22 Adobe Inc. Identifying the end of an on-line cart session
US9985972B2 (en) 2015-11-06 2018-05-29 Nasdaq, Inc. Systems and methods for controlling sign-on to web applications
US9992187B2 (en) * 2015-12-21 2018-06-05 Cisco Technology, Inc. Single sign-on authentication via browser for client application

Also Published As

Publication number Publication date
US9985972B2 (en) 2018-05-29
AU2016349477A1 (en) 2018-06-21
US10887313B2 (en) 2021-01-05
AU2016349477B2 (en) 2019-06-27
US10412091B2 (en) 2019-09-10
US20210119999A1 (en) 2021-04-22
US20190356665A1 (en) 2019-11-21
US20180262507A1 (en) 2018-09-13
US20230370464A1 (en) 2023-11-16
SG11201803649QA (en) 2018-05-30
WO2017079523A1 (en) 2017-05-11
JP2018536232A (en) 2018-12-06
US11706218B2 (en) 2023-07-18
US20170134385A1 (en) 2017-05-11

Similar Documents

Publication Publication Date Title
JP6533871B2 (en) System and method for controlling sign-on to web applications
CN112597472B (en) Single sign-on method, device and storage medium
US9825943B2 (en) Location determination for user authentication
CN108369615B (en) Dynamically updating CAPTCHA challenges
EP2756444B1 (en) Resource access authorization
US8141140B2 (en) Methods and systems for single sign on with dynamic authentication levels
EP3743845B1 (en) Authentication and authorization using tokens with action identification
CN105337949B (en) An SSO authentication method, web server, authentication center and token verification center
US9934310B2 (en) Determining repeat website users via browser uniqueness tracking
CN102112991B (en) Means for managing user authentication
US20180026964A1 (en) Login proxy for third-party applications
US11075922B2 (en) Decentralized method of tracking user login status
JP7120033B2 (en) Web server, login determination method and program
CN107105046A (en) Remotely access the method and system of big data

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20181030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181102

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190507

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190527

R150 Certificate of patent or registration of utility model

Ref document number: 6533871

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250