2009-07-31 2 views
0

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

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

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

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

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

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

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

+0

Любопытный, если вы имеете в виду "веб-услуги *". Веб-службы предлагают программный API веб-URL, которые * не * предназначены для использования браузером. OpenID не работает в этом сценарии, хотя гибрид OpenID + OAuth, безусловно, может. –

ответ

0

Есть два способа вы можете убедиться, что пользователь аутентифицирован

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

  2. Через спецификацию проверки подлинности OpenIDs. Выполните этот вызов, как только пользователь передаст вам информацию, чтобы проверить его. Link to Spec