как получить доступ к открытому ключу iphone?

Итак, у моей компании есть приложение для iPhone. Мы публикуем API на нашем сервере, и нам нужно аутентифицировать клиентское приложение (не пользователя, мы хотим знать, является ли это приложение для iPhone, за которое оно претендует).

Я бы хотел, чтобы приложение отправляло нашему серверу открытый ключ для приложения в магазине приложений Apple как часть своего первоначального запроса. Затем я хотел бы, чтобы наш сервер мог спрашивать магазин Apple, «является ли этот открытый ключ ключом для приложения, которое, как мне кажется, есть?» Если это так, то мы выдадим действующий токен для всех остальных запросов, если нет - откажем запрос.

Я понимаю, что этот подход можно подделать (в том смысле, что кто-то может просто найти открытый ключ на взломанном телефоне и притвориться приложением), но для начальных выпусков приложения нам все равно, потому что мы ХОТИМ, чтобы люди использовали приложение. Позже мы хотим указать атрибуцию запросов API от партнеров (которым разрешено отправлять запросы с использованием метода, описанного выше), но на данный момент нет необходимости подписывать или подлинно авторизовать запросы (с помощью двух- или трехстороннего oAuth).

Итак, проще говоря: o Есть ли способ для приложения iPhone запросить у iOS открытый ключ, используемый для подписи приложения? o Есть ли способ для сервера или другой программы спросить магазин Apple, «является ли этот открытый ключ ключом для приложения, которое я думаю?»

По сути, я пытаюсь использовать магазин Apple в качестве центра аутентификации. Я знаю: они уже в том, что они должны быть подписаны и одобрены Apple, но мне нужна проверка времени запроса сервера.

Спасибо заранее.


person twajjo    schedule 06.05.2013    source источник


Ответы (1)


Почему бы просто не создать свой собственный ключ и не сохранить его в своем приложении? Затем передайте этот ключ вместе со всеми запросами к API.

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

person savner    schedule 06.05.2013
comment
Проблема в том, что действовать в качестве моего собственного центра сертификации - это то же самое, что принимать КАЖДОЕ приложение. Мне действительно нужна третья сторона для аутентификации приложения в соответствии с тем, за что оно претендует. Потенциальные партнеры, которые будут писать для нас приложения, не обязательно достаточно квалифицированы, чтобы написать сервер, на котором мы могли бы пройти аутентификацию. Например, сценарий, в котором приложение получает токен со своего собственного сервера и передает его нашему серверу, который может проверить его, вызвав свой сервер, прежде чем мы выдадим свой, невозможен. - person twajjo; 07.05.2013