Как да удостоверя REST API с интеграция на Stormpath във Facebook

Проектирам прост REST API с Stormpath Facebook интеграция и се чудя кой би бил най-добрият модел за удостоверяване на потребителите. В момента нямам крайна точка за създаване на потребители, така че всички заявки към моите крайни точки се удостоверяват по следния начин:

  1. Вземете Stormpath Application обект въз основа на API_ID и API_SECRET, конфигуриран в моето приложение
  2. Вземете Stormpath Account обект въз основа на Facebook токен, посочен във всяка заявка
  3. Въз основа на състоянието на акаунта заявка за удостоверяване или отхвърляне

Това следва горе-долу официалното ръководство и работи добре, защото въпреки че потребителският акаунт не съществува той ще бъде създаден при първа заявка за получаване на акаунт към Stormpath. Има ли смисъл и достатъчно безопасно ли е? Търсих някаква документация или най-добри практики, но не можах да намеря нищо.

Също така ще трябва да получа/генерирам уникален потребителски идентификатор, за да мога да направя някои връзки с потребителските данни в моята система - така че друг въпрос, кой е най-добрият подход тук:

  1. Генерирайте някакъв уникален идентификатор, свържете го с имейла на потребителя, получен от Stormpath, и го запазете в моята система - мисля, че това малко нарушава идеята за такава услуга като Stormapth, която капсулира всички потребителски данни
  2. Направете същото като по-горе, но го запазете в Stormpath Account customData
  3. Използвайте идентификатор на потребителски ресурс Stormapth, който може да бъде получен от URI на потребителя

Моля, посъветвайте.

Само за протокола използвам Stormpath Java SDK и проектирам API да бъде бекенд за мобилни устройства социално приложение, така че сигурността е много важна за мен.


person mkorszun    schedule 05.05.2015    source източник


Отговори (1)


Пълно разкриване, управлявам Product @ Stormpath. Ще използвам вашите отзиви за подобряване на документацията.

Трудно е да се каже дали е безопасно или не, без да разбирате REST API, който създавате. Ако сте направили REST API за снимки на котки, моят отговор ще бъде различен в сравнение с медицинска/финансова информация. Един от начините да го разгледаме е, че Facebook има Graph API (REST) ​​и те защитават достъпа, изисквайки същия токен за достъп, който използвате. Има други флагове, които биха ме накарали да кажа, че не е безопасно, например ако използвате HTTP без TLS.

На втория ви въпрос, как да свържете Stormpath с вашите данни. Не бих казал, че бихте нарушили нещо относно Stormpath, като моделирате вашето приложение, което има смисъл за вас и вашето приложение. Stormpath има клиенти, които съхраняват ВСИЧКО за своите потребители в Stormpath. Stormpath също има клиенти, които използват Stormpath единствено за данни за удостоверяване и оторизация и използват customData, за да направят връзката между потребителски акаунт на Stormpath и техните данни.

Как/къде съхранявате информацията зависи от вашите нужди. Ако започвате с удостоверяване на потребителския акаунт със Stormpath, би имало смисъл да поставите уникалния идентификатор/първичен ключ в customData на потребителския акаунт. Ако започвате със запитване към вашето хранилище за данни за потребителските данни и трябва да получите потребителския акаунт на Stormpath, тогава ще трябва да съхраните href за потребителския акаунт във вашето хранилище за данни.

Хубава функция в Stormpath SDK за Java е, че когато се удостоверявате с Facebook, върнатият обект ще разкрие дали акаунтът е създаден наскоро или Stormpath има съществуващ акаунт за токена за достъп:

https://docs.stormpath.com/java/apidocs/com/stormpath/sdk/provider/ProviderAccountResult.html

Това означава, че ще знаете кога трябва да създадете запис за акаунта във вашето хранилище за данни и да свържете двете чрез customData и/или потребителския акаунт href.

person Tom Abbott    schedule 05.05.2015
comment
Искам този API да бъде бекенд за мобилно социално приложение, така че сигурността е важна тук. Мисля, че ще се придържам към това, което имам в момента, но бих искал да видя в бъдеще актуализирана документация с акцент върху модели за социално влизане/api удостоверяване/най-добри практики при използване на Stormpath. - person mkorszun; 05.05.2015