使用coldfusion会话标识进行SSO身份验证

时间:2013-03-19 10:52:28

标签: coldfusion single-sign-on coldfusion-9 sessionid

我正在整合第三方应用程序。它将通过iframe嵌入到我的网站中。在实例化iframe时,会以这种格式向第三方应用发送用户名和唯一ID(sessionid):

  

http://www.thirdpartyapp.com?username=9999999&uuid=appname_11111_d3d379ab97c23930-154C9639-1CC4-6169-286F5EB34A37B3C3

一旦站点上的用户尝试使用Iframe中的任何功能,第三方应用程序就会将sessionid发送回服务器,以验证会话是否已登录。

如果用户已登录,则应用程序会将Session.Auth.Authenticated等会话变量设置为true。

我可以使用CFIDCFTOKEN来实现这一目标:

  

http://www.mysite.com/checkauth/index.cfm?CFID=2223344&CFTOKEN=40487e5933d11e75-F94396AF-1CC4-6169-28200888416FFC

第三方应用以以下格式发送请求:

  

http://www.mysite.com/checkauth/index.cfm?uuid=appname_11111_d3d379ab97c23930-154C9639-1CC4-6169-286F5EB34A37B3C3

基本上与我的网站提供的格式相同。有没有办法使用session.sessionid检查经过身份验证的会话?

1 个答案:

答案 0 :(得分:1)

  

“有没有办法检查使用过的身份验证会话   Session.sessionid?“

似乎有可能。 ColdFusion sessionid由三件事组成:

       appName_CFIDE_CFTOKEN

在您的情况下,第三方应用程序发送的请求的url参数格式与session.sessionId相同:

       appname_11111_d3d379ab97c23930-154C9639-1CC4-6169-286F5EB34A37B3C3

现在,如果您在“设置”部分的CF管理员中启用“使用UUID for cftoken”,您将获得如下所示的会话ID:

       PLANTOMATIC_11201_1f8a073a0ba85bf5-2F7356F3-BE59-A0B4-F3E493BD794062C6

所以你需要做的是在CF Admin中应用“使用Uft ID for cftoken”设置。然后您可以向第三方发送请求,如下所示:

       http://www.thirdpartyapp.com?username=9999999&uuid=#session.sessionid#

将使用参数“uuid”作出回应。之后,您可以检查是否相等并采取必要的步骤。