Реализация OpenId для веб-сервисов - нужны советы / помощь - PullRequest
0 голосов
/ 31 июля 2009

Предположим, я пытаюсь внедрить OpenId для использования на моем n-уровневом веб-сайте, который использует веб-сервисы. Пожалуйста, скажите мне, если некоторые шаги кажутся странными.

1) Я хочу, чтобы пользователь ввел свой URL OpenId в текстовое поле. например: http://vidalsasoon.myopenid.com

2) Затем пользователь нажимает кнопку «Отправить», где введенный URL-адрес отправляется в мой веб-сервис с использованием API OpenId. С помощью API OpenId на сервере я могу создать правильный запрос OpenId.

3) Пользователь получает URL-адрес, по которому он должен пройти аутентификацию.

4) Пользователь перенаправляется к своему провайдеру, входит в систему, перенаправляется обратно на мой веб-сайт.

КОНФУЗИЯ ЗДЕСЬ: Теперь шаги 2 - 4 происходят между пользователем и поставщиком. Мой веб-сервис не участвует в этих шагах.

Я бы хотел, чтобы пользователь отправил желаемое имя пользователя и OpenId обратно в веб-службу на этом этапе. Проблема в том, как я могу узнать, что пользователь / клиент не вмешивался в них?

1 Ответ

0 голосов
/ 31 июля 2009

Существует два способа убедиться, что пользователь правильно аутентифицирован

  1. Установите общий секрет между вами и провайдером OpenID. Когда пользователь входит в систему у провайдера, он делится секретом с ним, который, в свою очередь, делится с вами секретом, который вы затем можете проверить по первоначальному общему секрету.

  2. Через OpenIDs check_authentication spec. Сделайте этот вызов, как только пользователь передаст вам информацию, чтобы проверить ее. Ссылка на Spec

...