Веб-сервисы Аутентификация Джунгли - PullRequest
1 голос
/ 18 мая 2010

В последнее время я проводил некоторые исследования о лучших подходах к аутентификации вызовов веб-сервисов (REST SOAP или что-то еще). Но ни один из Подходов не убедил меня ... Но я все еще не могу сделать выбор ...
Некоторые говорят о базовой аутентификации SSL и http -login / password-, что просто кажется странным для машины (я имею в виду необходимость назначить логин / пароль для машины, или нет?).
Некоторые говорят, что ключи API (похоже, что эта схема больше используется для отслеживания, а не для защиты).
Некоторые говорят токены (например, идентификаторы сеансов), но разве мы не должны оставаться без состояния (особенно если в стиле REST)?

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

Есть мысли?

1 Ответ

1 голос
/ 20 мая 2010

Итак, у вас есть User -> clientServer -> yourServer, да?

Вам необходимо аутентифицировать clientServer -> yourServer, чтобы убедиться, что никто не может общаться с вашим сервером.

Если это установившиеся доверительные отношения (то есть вы, ребята, общаетесь, подписываете документы и делаете что-то «вне диапазона»), то вы можете просто использовать SSL-сертификаты, сертификаты, которые вы можете подписать.

Обычно вы устанавливаете свой собственный центр сертификации, создаете корневой сертификат, а затем создаете сертификат клиента, подписанный этим корневым сертификатом.

Затем вы отправляете этот сертификат на clientServer и не позволяете никому подключаться к вашей службе, у которой нет сертификата, подписанного вашим корневым сертификатом.

Если клиент когда-либо прекращает свои отношения, вы можете отозвать его сертификат, и он больше не может с вами разговаривать.

Что касается идентификации пользователя, он должен быть частью API. Клиент должен правильно их аутентифицировать, а затем направить вам все необходимые учетные данные.

Это может быть часть первого класса вашего веб-сервиса (например, параметр), или, если вы используете SOAP, его можно передать во вложении SAML в заголовке SOAP, которое затем можно извлечь.

WS-Security предлагает около 8000 способов защиты веб-служб SOAP, как вы, возможно, обнаружили.

Итак, это отчасти зависит от того, что вы хотите сделать, и от других требований. Но учитывая то, что у тебя мало, это должно сработать.

...