2013-03-19 2 views
2

Я интегрирую стороннее приложение. Он будет встроен в мой сайт через iframe. При вызове в IFRAME, имя пользователя и уникальный идентификатор (SessionID) отправляется в приложение третьей стороны в этом формате:Использование идентификатора сеанса coldfusion для аутентификации SSO

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

После того, как пользователь на сайте пытается использовать любой из функций внутри приложения Iframe стороннее приложение отправляет обратно sessionid на сервер, чтобы проверить, включен ли сеанс.

Если пользователь вошел в систему, приложение устанавливает переменную сеанса, такую ​​как Session.Auth.Authenticated, на true.

Я могу добиться этого с помощью CFID и CFTOKEN так:

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?

+0

Таким образом, ваш источник iframe является 'http: //www.thirdpartyapp.com? Username = 9999999 & uuid = appname_11111_d3d379ab97c23930-154C9639-1CC4-6169-286F5EB34A37B3C3'? Кажется, такого рода вещи обычно делаются с помощью cfhttp-разговоров. – Travis

+0

@travis, да, источник iframes будет таким. Я просто обеспокоен тем, как проверять пользователя, зарегистрированного в сеансе, используя этот sessionid. – tan369

ответ

1

«Есть ли способ проверить аутентифицированные сеансы с использованием сеанса Session.sessionid?»

Кажется, что это возможно. ColdFusion sessionid это состоит из трех вещей:

 appName_CFIDE_CFTOKEN 

В вашем случае формат параметр URL-адрес запроса отправить приложением третьей стороны является таким же, как session.sessionId:

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

Теперь, если вы включите " Использование UUID для CFTOKEN»в CF администратора в разделе„Настройки“раздела вы получите идентификатор сессии, как следующее:

 PLANTOMATIC_11201_1f8a073a0ba85bf5-2F7356F3-BE59-A0B4-F3E493BD794062C6 

Так что вам нужно сделать, это применить тыс e «Использовать UUID для cftoken» в CF Admin. После этого вы можете отправить запрос на третью сторону, как следующее:

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

Каким будет реагировать обратно с параметром «UUID». После этого вы можете проверить равенство и предпринять необходимые шаги.