CROSS-REFERENCE TO RELATED APPLICATIONS

This application relates to and claims the benefit of U.S. Provisional Application No. 61/262,102 entitled “SYSTEM & METHOD FOR SINGLE SIGN ON WITH MULTIPLE AUTHENTICATION FACTORS” and filed Nov. 17, 2009, which is wholly incorporated by reference herein.

STATEMENT RE: FEDERALLY SPONSORED RESEARCH/DEVELOPMENT

Not Applicable

BACKGROUND

1. Technical Field

The present disclosure relates generally to methods and systems for authentication in secure data communications. More particularly, the present disclosure relates to systems and methods for single sign-on with multiple authentication factors.

2. Related Art

Numerous aspects of a person's day-to-day work and personal lives involve computers and online services accessed thereby. In order to secure personal information from unauthorized use, and to provide an individualized experience, access to such online services is established based upon user accounts and corresponding passwords. Because computer systems and online services are operated and managed by different entities, separate accounts and passwords are necessary for each. For example, a bank account is accessed separately from a credit card account, which is different from a household utilities account, and so forth. Furthermore, a typical person may have one or more separately accessed e-mail accounts, as well as different from accounts for social networking sites, blogging sites, and special interest message board sites. Even in an enterprise information technology (IT) environment, separate accounts may be necessary for a given employee's computer, e-mail server, and file server access.

Due to the large number of account names and passwords that must be remembered and entered upon demand for access to these various computing resources, many suffer from password fatigue. Even individuals with good memory can forget account identifiers and passwords, particularly those that are used only sparsely, or those that are required to have some level of complexity such as uppercase/lowercase letters, numbers, and symbols. Password fatigue oftentimes leads to users adopting individual password and account management practices that paradoxically lead to less security, than more security as intended with deploying different access control systems for each resource. One of the more common of such unsecure practices is selecting the same account identifier and password combination for each resource to which the user has access. If one of the systems is compromised such that the account name and password is known to a malicious third party, then all of the systems with the same account name and password combination are compromised. Another common practice is writing down or otherwise recording account identifiers and passwords in an unsecure medium, and storing the same in close physical proximity to a terminal that is used to access the resource. If physical security is breached to where such written account identifiers and passwords can be pilfered, then the security of those resources can also be breached. In order to make memorizing passwords easier, users may select common words or phrases that can be easily determined with a common dictionary attack.

As a solution to the password fatigue problem, and in order to simply the coordinated management and security of multiple user accounts tied to a single user or identity over multiple computing resources, single sign-on (SSO) has been developed. In general, single sign-on refers to an access control modality in which the user supplies login credentials just once without being prompted again to gain access to other, related computing resources. Conventional single-sign on implementations treat each component as an independent secondary security domain, but with the user initially accessing a primary domain to establish a secured session therewith.

Access to the additional resources is through the primary domain, and can occur in one of several ways. In one known method, the credentials provided to access the primary domain are directly passed on to the secondary domain for immediately signing on thereto. Alternatively, the credentials for the primary domain are used to retrieve other account name and password information for the secondary stored thereon, and then provided to the secondary domain upon requesting access without prompting the user for manual entry.

Providing access to a server by an unknown client, or supplying access credentials from the client to an unknown server, over an open network environment, raises several security concerns. The server must be assured that the client is what it asserts it is, and the client must be assured that the server is what it asserts it is. One conventional authentication or initial login process for the user to gain access to the primary domain involves verification of the user with the account identifier and the corresponding password, which is only one factor. The secret nature of passwords, at least in theory, is intended to prevent unauthorized access. However, simple password protection is ineffective because they can be mistakenly revealed, and are susceptible to brute-force attacks. Besides what the user knows, that is, the password for an account, other authentication factors including what the user has (hardware access control devices, security certificates downloaded to a client device after verification via hardware devices and the like) and what the user is (biometrics such as fingerprints and retinas) are utilized. Multiple authentication factors are understood to decrease the likelihood of unauthorized access.

Existing implementations of single sign-on that utilize multiple authentication factors is deficient in several respects. One problem is the required use of particular application programming interfaces (APIs) along with the complexities of integration attendant thereto. Furthermore, system administrators must oftentimes manage and audit each application/secondary domain separately because of differing password policies. Accordingly, there is a need in the art for improved single sign on with multiple authentication factors.

BRIEF SUMMARY

In accordance with various embodiments of the present disclosure, there is contemplated a method for authenticating a client to multiple server resources each with a standalone authentication system. The method may include initiating a login session with the authentication system of a primary one of the multiple server resources. Additionally, there may be a step of transmitting a first set of login credentials from the client to the authentication system of the primary one of the multiple server resources. The client may then be validated to the primary one of the multiple server resources based upon the first set of login credentials. The method may also include storing on the client a token received from the authentication system of the primary one of the multiple resources. The method may include transmitting the token and a second set of login credentials different from the first set of login credentials to a secondary one of the multiple server resources. The second set of login credentials may be retrieved from the client. There may also be a step of validating the client to the authentication system of the secondary one of the multiple server resources based upon the transmitted token and the second set of login credentials. Accordingly, the number of passwords that must be memorized by users in order to access each of the server resources is minimized, with the concomitant reduction in password-related help desk calls. The present invention will be best understood by reference to the following detailed description when read in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features and advantages of the various embodiments disclosed herein will be better understood with respect to the following description and drawings, in which:

FIG. 1 is a block diagram of an exemplary networked computing environment within which various embodiments of the present disclosure may be implemented;

FIG. 2 is a flowchart of one method for authenticating a client to multiple server resources, relative to the client;

FIG. 3 is a flowchart of another embodiment of the method for authenticating a client to multiple server resources, relative to the multiple server resources;

FIG. 4 is a block diagram generally illustrating a digital certificate; and

FIG. 5 is an exemplary digital certificate including various subfields thereof.

Common reference numerals are used throughout the drawings and the detailed description to indicate the same elements.

DETAILED DESCRIPTION

Various embodiments of the present disclosure contemplate single sign-on with multiple authentication factors. The following disclosed methods for authenticating a client to multiple resources are understood to secure and simplify access thereto by minimizing the number of separate passwords. The detailed description set forth below in connection with the appended drawings is intended as a description of the several presently contemplated embodiments of these methods, and is not intended to represent the only form in which the disclosed invention may be developed or utilized. The description sets forth the functions and features in connection with the illustrated embodiments. It is to be understood, however, that the same or equivalent functions may be accomplished by different embodiments that are also intended to be encompassed within the scope of the present disclosure. It is further understood that the use of relational terms such as first and second and the like are used solely to distinguish one from another entity without necessarily requiring or implying any actual such relationship or order between such entities.

The block diagram of FIG. 1 illustrates an exemplary networked computing environment 10, within which the methods contemplated in accordance with various aspects of the present disclosure may be implemented. In further detail, the networked computing environment 10 includes a client computer system 12 that accesses an enterprise computing resource 14 and its constituent domains or servers over a network 16. The client computer system 12 may be a conventional desktop computer having a central processing unit, memory, and input and output devices connected thereto such as network cards, keyboards, mice, and display units. However, such particulars are presented as examples only, and any other suitable data processing hardware such as smart phones, portable computers, and the like may be readily substituted. The client computer system 12 is understood to have software instructions loaded thereon that, when executed, perform various functions in accordance with the embodiments of the present disclosure. Among these instructions is a web browser application that exchanges data with corresponding web server applications of the enterprise computing environment.

The network 16 may be an open, wide area network such as the Internet, though in some contemplated embodiments may also be a local area network. The specific implementation of the network 16 may be dependent upon the particulars of the enterprise computing resource 14. The enterprise computing resource 14 may include a series of inter-related Web applications, or Software as a Service (SaaS) applications that are executed on the client computer system 12, or any other server computing environment in which multiple, though mostly independent functionality is provided. Regardless of the identity of the constituent parts of the enterprise computing resource 14, they are understood to be “servers” in a client-server computing framework as the provider of data and/or services. This is distinguished from the client computer system 12, i.e., the “client” in the client-server computing framework as the requestor of data and/or services.

In general, the enterprise computing resource 14 may be segregated into several domains or servers with each handling a different functionality. As will be explained in greater detail below, the servers are referred to as domains as each is responsible for its own authentication of its users and security. The example shown includes a primary domain 18, a secondary domain A 20, and a secondary domain B 22, though it is expressly contemplated that any number of primary or secondary domains may be included. The primary domain 18 includes a first set of applications 24, which in one example, may be an enterprise file server. Access to the first set of applications 24 is controlled by an authentication system 26, and is limited to users with existing accounts as defined in a corresponding directory 28. The secondary domain A 20 likewise includes a second set of applications 30. Continuing with the previous example, these may be an e-mail/messaging/calendaring groupware application of the enterprise. Similar to the first set of applications 24, access to the second set of applications 30 is limited to authorized users as validated by the authentication system 32. Account data relating to such authorized users is stored in a corresponding directory 34. The secondary domain B 22 includes a third set of applications 36, which may be related to managing the financial and accounting operations of the enterprise. An authentication system 38 is understood to limit access to authorized users included in a directory 40. Although separate directories 28, 34, and 40 are presented, it will be appreciated that these may be consolidated, with the account information stored in a single, centralized repository.

The particular functions of the primary domain 18 and the secondary domains A and B, 20, 22 are presented by way of example only, and not of limitation. These domains may provide any number of services to the client computer system 12. FIG. 1 is intended to illustrate only the logical division of the security domains, and a correspondence to any particular server hardware is not implied. For instance, the primary domain 18 and the secondary domain A 20 may be running on one server hardware device, while the secondary domain 22 may be running on another server hardware device. Such hardware devices are understood to include one or more central processing units, memory, and input and output devices connected thereto like the client computer system 12, as well as executable software instructions that, among other things, perform the steps of the contemplated methods of authentication.

The security policies of the primary domain 18, as well as the secondary domains A and B 20, 22, are flexible and can be independently configured. For instance, the directories 34, 40 of the secondary domains can be configured such that only a subset of the users of the primary domain 18 can access the same. Along these lines, the directory 28 of the primary domain 18 is understood to include all of the authorized users of the enterprise computing resource 14. In a typical basic configuration, a user 13 logs in to the primary domain 18 via the authentication system 26 by providing an account identifier and its associated password in order to access the first applications 24. Subsequently, when there is a need to access the second set of applications 30 on the secondary domain A 20, there is another separate login sequence to gain access thereto, and another account identifier and its associated password are provided to the authentication system 32. In some cases, the account identifier and password of the primary domain 18 is the same as those of the secondary domain A 20 as well as the secondary domain B 22, though because there is an independent directory 34, this is not necessary and a different account identifier and password may be set for the same user.

In the context of the foregoing exemplary network computing environment 10, with reference to the flowchart of FIG. 2, the method for authenticating the client computer system 12 to the multiple domains of the enterprise computing resource 14 will be described. One embodiment of the method begins with a step 100 of initiating a login session with the authentication system 26 of the primary domain 18. As indicated above, the applications may be delivered via the web, so the primary domain 18 is understood to include a web server with which a browser application running on the client computer system 12 exchanges data. In this case, a web page with an entry form for an account identifier and a password may be generated by the primary domain 18 for rendering by the browser application on the client computer system 12. However, any other suitable data entry modality may be readily substituted.

The method continues with a step 102 of transmitting a first set of login credentials 42 to the authentication system 26 of the primary domain 18. It is contemplated that the first set of login credentials are the aforementioned account identifier and password combination entered by the user 13 into the entry form rendered on the client computer system 12, although any other types of credentials may be utilized as the first authentication factor. The step 102 is understood to be in relation to the client computer system 12, but a corresponding step in relation to the enterprise computing resource 14 is also contemplated. With reference to the flowchart of FIG. 3, the method includes a step 200 of receiving the first set of login credentials 42 from the client computer system 12.

Preferably, though optionally, the method includes a step 103 of transmitting a second set of login credentials 44 to the primary domain 18. The corresponding method for the enterprise computing resource includes a step 201 of receiving the second set of login credentials 44 on the authentication system 26 of the primary domain 18. In some embodiments, the authentication system 26 of the primary domain 18 may require only one factor, i.e., the account identifier and password, but in most cases, the second set of login credentials 44 will be transmitted. Thus, the security and authentication processes are understood to be more in line with the processes for authenticating and accessing the other domains. The first set of login credentials 42 being generally categorized as something the purported user 31 “knows,” the second set of login credentials 44, being a second authentication factor, may be something the user 31 “has” or something the user “is.” The second set of login credentials 44 can thus be a certificate, a unique token and a personal identification number (PIN) or other such data stored in browser cookies and accessible variable stores. Although the second set of login credentials 44 can include data transmitted out-of-band to hardware tokens physically possessed by an authorized user, it will become apparent to those skilled in the art that such implementations may not be ideal for single sign-on, as will be explained more fully below. Such out-of-band data transmissions include text messages and phone calls.

In one contemplated embodiment, the second set of login credentials 42 is a digital certificate 46 retrievable by the client computer system 12. The digital certificate 46 may be stored on client computer system 12, or on an external data storage device connectible to the client computer system 12 such as a smart card, from which it is retrieved. Generally, the digital certificate 46 is understood to be associated with an application on the client computer system 12 that is complementary to the authentication system 26. This may be the aforementioned web browser application, which has digital certificate management features. However, it is also understood that the digital certificate 46 can be associated with another application on the client computer system 12 that is independent of the authentication system 26 of the primary domain 18. One example of such an application is the Adobe Flash platform. It will be appreciated that any other hardware or software-based identity management modality from which the digital certificate 46 is retrieved programmatically can also be utilized.

As shown in the block diagram of FIG. 4, the digital certificate 46 is generally comprised of a public key 48 and a signature 50. The public key 48 corresponds to a private key 49, as public and private keys are generated in related pairs. The private key 49 remains on the client computer system 12, while the public key 48 and the signature 50 may be widely distributed. It is understood that the public key infrastructure (PKI) can be utilized to encrypt and decrypt data traffic between two systems. However, as noted previously, the digital certificates 46, which are a part of PKI, can be utilized to authenticate the transmitting party to the receiving party.

Further details of the digital certificate 46 are shown in FIG. 5, including the various fields thereof. According to one embodiment, the digital certificate 46 is an X.509 certificate. It is typically issued from a certificate authority (CA), which is a trusted third party responsible for confirming the identity of those to which it is issuing the digital certificate 46, whether that is an individual user, a specific computers or a set of computers in a network, an organization, or any other entity. Accordingly, the digital certificate 46 is signed with a digital signature 66 to validate the same to any recipients.

In addition to the public key 48, the digital certificate 46 may include, for example, a version number 50, a serial number 52, a signature algorithm 54, an issuer identifier 56, a validity indicator 58 including a validity start time 60 and a validity end time 62, and a subject identifier 64. The digital certificate 46 is typically issued from a certificate authority (CA), which is a trusted third party responsible for confirming the identity of those to which it is issuing the digital certificate 46, whether that is an individual user, a specific computers or a set of computers in a network, an organization, or any other entity. Accordingly, the digital certificate 46 is signed with a digital signature 66 to validate the same to any recipients. In further detail, the version number 50 identifies the version of the X.509 standard being using for the digital certificate 46, while the serial number 52 is understood to be a unique number assigned by a particular certificate authority. The signature algorithm 54 defines the cryptographic algorithm utilized to generate the CA signature 66 such as the Secure Hash Algorithm (SHA), Digital Signature Algorithm (DSA), and so forth. The issuer identifier 56 includes the name of the CA that issued the digital certificate 46. The validity indicator 58 defines the time period within which the digital certificate 46 may be presented as a valid and proper credential, with that time period beginning with the validity start time 60 and ending with the validity end time 62. The subject identifier 64 contains the name of a person, group, or organization to which the digital certificate 46 was issued.

The method for authenticating the client computer system 12 continues with a step 104 of validating the client to the primary domain 18 based upon the first set of login credentials 42, as well as the second set of login credentials 44 to the extent the particular implementation involved the transmission of the same in step 103. The step 104 is understood to find correspondence to the step 204 in the method for authenticating the client computer system 12 in relation to the enterprise computing resource 14. As will be recognized, the disclosed method for authenticating the client to the various domains of the enterprise computing resource 14 is premised on the second set of login credentials 44 already existing on the client computer system 12. However, if this is not the case, the authentication system 26 may direct the user 13 to enroll. It is understood that the validation and enrollment procedures are specific to the configuration of the second set of login credentials 44. In the aforementioned exemplary configuration that utilizes the digital certificate 46, a procedure for such operations is contemplated in assignee's co-pending application Ser. No. 12/052,630 entitled “SYSTEM AND METHOD FOR STORING CLIENT-SIDE CERTIFICATE CREDENTIALS” filed Mar. 20, 2008, application Ser. No. 12/326,002 entitled “A METHOD AND SYSTEM FOR GENERATING DIGITAL CERTIFICATES AND CERTIFICATE SIGNING REQUESTS” filed Dec. 2, 2008, and Ser. No. 12/419,951 entitled “IDENTITY-BASED CERTIFICATE MANAGEMENT” filed Apr. 7, 2009, each of the disclosures of which are wholly incorporated by reference herein.

Referring back to the block diagram of FIG. 1, once the client computer system 12 gains access to the primary domain 18, various embodiments of the present disclosure contemplate an uninterrupted transition to the secondary domain A 20 and the secondary domain B 22 in accordance with single sign-on. In particular, once the user gains access to the primary domain 18 by providing the requested login credentials thereto, access to the secondary domains 20, 22 are possible without a manual re-submission of the same login credentials. Single sign-on is based on a trust relationship between the primary domain and the secondary domains that the primary domain has completed all of the necessary authentication steps that can be relied upon for the security needs of the secondary domains.

With reference to the flowchart of FIG. 3, the contemplated method in relation to the enterprise computing resource 14 continues with a step 206 of transmitting to the client computer system 12 a token 68 that is generated by the authentication system 26. The token 68 is generated in response to a successful validation of the first set of login credentials 42 and/or the second set of login credentials 44 per step 104, 204. Additionally, the token 68 may include an account identifier that references an account/user identity in the directory 28. It is understood that the token 68 also refers to any other modality by which the client computer system 12 is indicated as being authenticated by the primary domain 18. These modalities include browser cookie variables that are set to represent the authenticated status, a variable that is resident in memory, an application flag, and so forth. The counterpart method in relation to the client computer system 12 includes a step 106 of storing the token 68 thereon.

According to various embodiments of the present disclosure, the client computer system 12 may transition to the secondary domain A 20 and/or the secondary domain B 22 without an interactive login procedure between the user 13 and the respective authentication systems 32, 38. Referring again to the flowchart of FIG. 2, the method continues with a step 108 of transmitting the token 68 and the second set of login credentials 44 to a secondary domain in the enterprise computing resource 14. As indicated above, the second set of login credentials 44 is different from the first set of login credentials 42, considering that it is a second authentication factor. The token 68 is accepted by the secondary domains 20, 22 as evidence that the session has been properly authenticated by the primary domain 18. The account identifier in the token 68 specifies the account under which the client computer system 12 accesses the secondary domains 20, 22. The counterpart method pertaining to the enterprise computing resource 14 includes a step 208 of receiving the token 68 and the second set of login credentials 44, i.e., the digital certificate 46, on the secondary domains 20, 22.

Upon receipt by the respective authentication systems 32, 38, the client computer system 12 is validated in a step 110 and a corresponding step 210. The validation of the token 68 is understood to be the similar to step 104 and step 204, in which the account identifier is correlated to the entries in the directory 34, 40. Instead of confirming the associated password as in the exemplary implementation of step 104 and step 204, however, the token 68 is understood to serve as partial proof of authentication. The validation of the second set of login credentials 44 is understood to be the same as set forth above in relation to step 104 and step 204. After the validation step, access to the secondary domains 20, 22 is granted.

The particulars shown herein are by way of example and for purposes of illustrative discussion of the embodiments of the present disclosure only and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects. In this regard, no attempt is made to show details of the present invention with more particularity than is necessary, the description taken with the drawings making apparent to those skilled in the art how the several forms of the present invention may be embodied in practice.

signature=52ceb41d49ce2ed43689f29f1663e802,SINGLE SIGN ON WITH MULTIPLE AUTHENTICATION FACTORS相关推荐

  1. 单点登录(Single Sign On)的理解

    本文内容引用于百度百科的单点登录词条,如有侵权,请联系我删除. 简介: 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系 ...

  2. 源代码解读Cas实现单点登出(single sign out)功能实现原理

    关于Cas实现单点登入(single sing on)功能的文章在网上介绍的比较多,想必大家多多少少都已经有所了解,在此就不再做具体介绍.如果不清楚的,那只能等我把single sign on这块整理 ...

  3. 源代码解读Cas实现单点登出(single sign out)功能实现原理--转

    关于Cas实现单点登入(single sing on)功能的文章在网上介绍的比较多,想必大家多多少少都已经有所了解,在此就不再做具体介绍.如果不清楚的,那只能等我把single sign on这块整理 ...

  4. ASP.NET 安全认证(三)—— 用Form 表单认证实现单点登录(Single Sign On) .

    第三部分 实现单点登录(Single Sign On) "等了好久终于等到今天,写了好久终于就快完结,但是网友的反应却让我有一些的伤心.盼了好久终于盼到今天,忍了好久终于把此文撰写,那些受冷 ...

  5. 单点登录SSO(Single Sign On)

    文章目录 一.什么是Session 跨域问题 二.Token 机制 1.传统身份认证 2.Token 身份认证 三.Session跨域共享实现方案 1.Nginx Session共享 2.Spring ...

  6. SSO(Single Sign On)

    SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制 ...

  7. SpringSession单点登录(Single Sign On)

    什么是单点登录 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系 ...

  8. SAP Analytics Cloud和Cloud for Customer之间的Single Sign on配置

    详细方法在这篇SAP博客上能够找到: https://blogs.sap.com/2019/01/17/setup-sso-between-cloud-for-customer-and-sap-ana ...

  9. SSO(Single Sign On)系列(三)--CAS单点登录

    上篇文章介绍了SSO的原理以及5种基本流程,相信看完了之后不难理解单点登录,而CAS是SSO的一种实现方案,原理是一样的.下面介绍一下. CAS Server:负责完成对用户的认证工作,需要独立部署, ...

最新文章

  1. 再见中台,你好!企业数字化转型
  2. Python matplotlib画图出现No handles with labels found to put in legend
  3. 第 24 章 状态模式
  4. struts2与spring整合问题,访问struts2链接时,spring会负责创建Action
  5. KMP算法 C#实现 字符串查找简单实现
  6. QtCreator导入yocto sdk记录
  7. php 正则表达式 匹配 字符串,PHP 字符串与正则表达式匹配
  8. 返回顶部 模仿天猫的返回顶部代码 HTML JQuery CSS JavaScript
  9. 威纶通触摸屏上传错误_威纶通触摸屏程序怎么上传?
  10. 前端开发找实习宝贵经验总结
  11. 树莓派操控SG90舵机
  12. 微信授权登录接口合集
  13. 2022数模国赛B题无人机第一题第一小问的简单编程
  14. ESP8266(4)WIFI与IP/端口与UDP/TCP
  15. 了解面部识别的不同算法
  16. 2022-2028年全球与中国射频识别打印机行业深度分析
  17. 美国纽约大学超级计算机中心,纽约大学超级计算集群系统案例
  18. Android正确的保活方案,不要掉进保活需求死循环陷进
  19. DLT 算法计算变换矩阵及源码
  20. Linux调整风扇,Linux下风扇调速

热门文章

  1. windows 下安装 scrapy报错:error: Unable to find vcvarsall.bat
  2. C语言读入全都的文件内容2
  3. 3、使用Statement接口实现增,删,改操作
  4. 1.20 实例:数字转人民币读法
  5. 1.2 Java系统流
  6. Python程序练习题5.1-输出更大的田字格。
  7. Jemeter对HTTP接口压测(二)
  8. OpenCV3.0中的离散傅里叶变换
  9. C语言局部变量与全局变量
  10. View页面间的跳转