Есть ли решение этой проблемы авторизации? - PullRequest
3 голосов
/ 25 февраля 2011

Я занимаюсь разработкой бесплатного мобильного приложения, которое обращается к веб-службе и регулярно загружает с нее некоторый контент.

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

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

Есть ли решение для этой проблемы?

Ответы [ 2 ]

4 голосов
/ 25 февраля 2011

Я думаю, вы могли бы сделать что-то вроде этого:

1) Ваше приложение пытается получить первый доступ к серверу

2) Сервер отправляет случайное число / код в приложение

3) Приложение разрабатывает его и преобразует с помощью вашего секретного метода (оно может объединить его с секретным паролем и создать «хеш» с результатом; «хеш» - это преобразованная кодированная строка)

4) Приложение отправляет хэш [РЕДАКТИРОВАТЬ: (и исходное случайное число / код, полученный с сервера) <- НЕТ, было бы лучше не отправлять вместе исходный код и строку с кодированной строкой: если перехвачен всем было бы достаточно отправить его снова, чтобы войти в службу ... лучше сохранить исходную строку на сервере где-нибудь с идентификатором, ожидающим хэш из вашего приложения END EDIT] </strong> на сервер снова

5) Сервер использует тот же секретный метод для «хеширования» исходного числа (объединяет его с секретным паролем и создает «хеш» с результатом) и проверяет, совпадает ли он с тем, который он получил от вашего приложения.

6) если он равен ... сервер теперь знает, что запрос на ваш веб-сервис поступил от вашего приложения, и подтверждает доступ к нему ...

другими словами: только ваше мобильное приложение и ваш сервер знают, как преобразовать случайное число в этот "хеш" ... Есть много примеров метода для получения «хеша» строки на многих языках (php, javaScript ...), поэтому просто ищите в сети ...

1 голос
/ 25 февраля 2011

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

Очень похоже на CD-ключи и современные игры, которые проверяют на сервере действительный ключ.

...