2013-05-23 3 views
1

У меня есть два веб-приложения разных технологий, один из которых разработан в ColdFusion, а другой в Asp.Net.Как мне войти в Asp.Net webapp из отдельного ColdFusion Webapp?

Оба приложения имеют аутентификацию. Имена пользователей для обоих приложений такие же, как и пароли.

Так вот что я хотел сделать, я вхожу в приложение ColdFusion, и когда я нажимаю на определенную кнопку, он должен перейти к приложению Asp.Net, не прося меня снова войти в это приложение.

Это решение, с которым я столкнулся; Я передал имя пользователя из приложения ColdFusion при нажатии кнопки в качестве параметра querystring на URL-адрес Asp.Net, где он проверяет, имеет ли он ключ с запросом и если имя пользователя существует, войдите в приложение Asp.Net.

Это выглядит примерно так: http://xxxxxx.com?username=xxx Но передача имени пользователя в строке запроса небезопасна, что можно сделать, чтобы сделать ее безопасной? Я думаю о шифровании запроса, можно ли это сделать? Или я должен следовать другому методу, чтобы получить эту функцию?

+0

Как вы можете быть уверены, что имена пользователей одинаковы в 100% случаев? –

+0

Когда пользователь создается в любом из приложений, имя пользователя будет добавлено в обеих таблицах приложений ... В настоящее время я пытаюсь зашифровать querystring из приложения coldfusion с помощью 3DES и расшифровать его в Asp.net app – prvn

+0

_ «передача имени пользователя в строке запроса небезопасна» _ - имена пользователей не являются частными; им не нужно быть в безопасности - и их нельзя использовать только для входа в систему! –

ответ

1

Я бы добавил случайный указатель для каждого пользователя в обеих таблицах аутентификации системы. Аутентифицируйте их с помощью первой системы и передайте направляющую во вторую систему через POST. Возьмите направляющую с помощью второй системы и проверьте подлинность и инициализируйте сеанс пользователя.

2

1) Создайте таблицу в своем .net-приложении. Вызовите AuthorizedSessions (или что-нибудь значимое для вас).

В этой таблице храните имя пользователя, произвольно сгенерированную строку aka token, созданную дату и поле даты, чтобы отслеживать, было ли оно использовано.

2) Создайте сценарий в своем .net-приложении, чтобы принять имя пользователя/пароль из вашего приложения CF и сначала пройти аутентификацию, чтобы пользователь мог войти в систему, а затем сгенерировать запись в вашей таблице AuthorizedSessions, а затем вернуться назад tokeng обратно к coldfusion.

3) сгенерируйте еще один скрипт в .net, который будет принимать имя пользователя/токен как ссылку из coldfusion. Этот скрипт должен проверять имя пользователя/токена на таблицу сеансов авторизации И убедитесь, что «date used» имеет значение null, так как он должен использоваться только один раз.

4) В холодном состоянии, щелкнув ссылку в приложении, вы должны перенаправить вас на новую страницу в вашем приложении coldfusion, где используется тег сервера CFHTTP, чтобы отправить имя пользователя/пароль и т. Д. К вашему сценарию .net на шаге 2. Если у вас есть SSL, это будет рекомендовано для передачи информации. Ваш .net должен вернуть токен в coldfusion, и оттуда вы можете перенаправить через cflocation в свое .net-приложение, убедившись, что вы указали имя пользователя & токена для авторизованного сеанса. Убедитесь, что ваше .net-приложение помечает токен, используемый в таблице authorizedsessions, так что токен нельзя использовать снова и снова.

Я использовал этот метод в прошлом для привязки пользователей из одного приложения к другому и его работы успешно. В основном это ваша собственная сокращенная версия открытой системы токенов типа auth.

Смежные вопросы