2012-04-25 5 views
0

Как это нормально, если сервер возвращает ключ API и общий секретный ключ, когда клиент пытается войти в API через базовую аутентификацию? Например, если пользователь вводит эту ссылку http://api.example.com/authorize?auth=some_encoded_Base64_string, ответ будет:Rest API Basic Authentication

Content-Type: application/xml 
Date: Fri, 10 Nov 2006 20:04:45 GMT  
Transfer-Encoding: chunked 
Authorization: apiKey;secretKey 

Будут ли у меня проблемы с помощью этого метода? Я хотел бы быть таким, поскольку основные методы API будут принимать только хеши APIKey и, чтобы получить, что им необходимо использовать базовую аутентификацию, поскольку они являются первым шагом. На данный момент я не буду использовать OAuth.

Я пытаюсь использовать новый веб-API ASP.NET для этого проекта.

+0

Это прекрасно выглядит, если все сообщение превышает HTTPS. –

+0

Я думаю, это прекрасно. Например, у FogBugz есть метод, который работает точно так же. –

+0

Спасибо, ребята, я искал публичный API, используя это, но не нашел. Я пойду взглянуть на FogBugz, как они его реализуют. – gnaungayan

ответ

0

HTTP не определяет заголовок Authorization в ответе, поэтому, если вам нужно определить пользовательский заголовок, используйте префикс X-.

Также из точки проектирования HTTP-заголовки должны передавать данные, которые являются ортогональным для вызова. Кажется, вы пытаетесь передать часть данных, которые должны быть в полезной нагрузке, поэтому я бы воздержался от использования заголовков.

Я бы передал эти данные в полезной нагрузке.

Если вы используете SSL и передаете данные в URL, HTTP-заголовках или полезной нагрузке, это будет безопасно.

+0

Спасибо за ответ. Я пытаюсь переварить то, что вы сказали, но я не понимаю, что означает полезная нагрузка? Что я имею в виду под авторизацией, я буду использовать заголовок HTTP Authorization. – gnaungayan

+0

Полезная нагрузка Я имею в виду часть данных, которые вы отправляете обратно. Заголовок HTTP-авторизации подходит для запроса, но не для ответа. – Aliostad

+0

хорошо, я понял. Где я должен поставить ответ сервера? В URI? – gnaungayan