Я ищу использование OAuth для защиты некоторых веб-сервисов. OAuth 2 подходит для использования в случаях использования, когда пользователь может получить доступ к своим собственным данным с помощью API или предоставить доступ к кому-либо, чтобы вызвать API от его имени.Руководство по генерации токенов доступа OAuth
Однако первоначальный набор пользователей API не очень технический, и они не хотели бы выполнять усилия по созданию вызовов API только для создания токенов. Я думаю о реализации следующего решения, но не уверен, что это правильный путь.
Если пользователь является разработчиком, то
- есть экран, где он/она может зарегистрировать заявку. Это создаст ключ API/секретную пару.
- Для доступа к своим собственным данным (для 2-х месяцев Auth) есть экран пользовательского интерфейса, где пользователь может создать токен доступа для одного зарегистрированного приложения. Он может указать области и продолжительность в форме.
- Если он является сторонним разработчиком, ему необходимо передать его API API приложений лицу, от имени которого ему необходимо получить доступ к API и получить токен доступа взамен.
Если пользователь хочет другое приложение/разработчика, чтобы получить доступ к API от его имени, то
- Есть экран, на котором он может ввести ключ API третьей стороны, объемы и продолжительность разрешения. Он может передать созданный токен доступа разработчику, который получит доступ к API-интерфейсу
Я собираюсь использовать те же библиотеки OAuth, чтобы генерировать токен, который я использовал бы, если бы ушел маршрут веб-сервиса. Кроме того, я могу также развивать услуги всякий раз, когда текущая ситуация не масштабируется или возникает необходимость, и существующие токены все еще будут работать.
Конечно, это было бы тривиально решить, просто не предоставив опцию для истечения срока действия токена и получив его, как бы это было в естественном потоке. Вся причина, по которой я пытаюсь принять этот подход, заключается в том, что клиенты не захотят проходить через код (или не способны) только для OAuth. Кроме того, мои API будут на HTTPS, поэтому получение токена доступа не будет тривиальным. Не уверен, что я понимаю вашу точку зрения на то, что кто-то получает доступ к идентификатору клиента и к токену доступа, поскольку, если это произойдет, я буду вкручен, независимо от того, какой подход я беру. – anfab
HTTPS хорош, если у вас есть код, который заботится о Oauth. Но как только вы сделаете это руководство, вы не можете полагаться на разработчика, чтобы убедиться, что он использует его только в правильных местах. Он может быть обменен на электронную почту, чат, опубликовать заметки и что нет. Добавленный с не-expire на сгенерированных токенах доступа, это только увеличивает вероятность того, что некоторые вины будут происходить со временем. – s1d