Должен ли я использовать OAuth (или что-то еще) для серверной части мобильного приложения? - В таких случаях существует только * одно * "стороннее" приложение - PullRequest
2 голосов
/ 10 марта 2020

Я занимаюсь разработкой мобильного приложения и его бэкенда (Java). Как мне аутентифицировать пользователей (используя нашу собственную систему учетных записей, а не такие, как учетные записи Google / GitHub)? Одним из способов является создание сервера OAuth2. Однако мой бэкэнд не гигантский, и у меня есть только одно «стороннее приложение» в определении OAuth ...

Так что мне интересно, каков наилучший способ аутентификации? в таком мобильном приложении? Спасибо!

PS Еще одна идея - использовать куки, как в старые времена при разработке веб-страниц браузера. Но я редко вижу, чтобы приложения делали так. Я вижу, что большинство из них отправляют Authorization: Bearer the_token_values ...

PS2 Я использую Flutter и Java Spring.

1 Ответ

2 голосов
/ 10 марта 2020

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

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

Помните, что OAuth - не единственная игра в городе. Есть и другие прекрасные протоколы. Вероятно, самое пуленепробиваемое доказательство - mTLS Для этого требуется надежная ключевая инфраструктура Publi c, но ее, вероятно, сложнее всего взломать. Если вы находитесь в среде старой школы с Active Directory и пишете внутреннее приложение, рассмотрите Kerberos. И наконец, есть SAML, который очень предприимчив и труден для работы, но он немного более гибкий, чем простой OAuth.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...