Соответствует ли этот рабочий процесс для аутентификации и запрашивания ресурсов требованиям для OAuth2? - PullRequest
0 голосов
/ 26 апреля 2020

Судя по тому, что я прочитал, у меня все еще нет хорошего понимания того, что делает рабочий процесс для аутентификации и запроса ресурсов учитывающим OAuth2. Соответствует ли следующий сценарий, который я собираюсь описать, требованиям для OAuth2?

Шаг 1 У меня есть веб-сайт, который отправляет следующий код через JavaScript:

// login to get an access token in json web token format
const jwt = null;
fetch('/login',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({username:'john',password:'pass'})})
.then(r=>r.json())
.then(r=>jwt = r.accessToken)

Шаг 2 Когда я хочу получить информацию из API, я делаю что-то вроде:

// list all my invoices
fetch('/invoices',{method:'GET',headers:{'Content-Type':'application/json','Authorizaton':'`Bearer ${jwt}`});

Соответствует ли мой рабочий процесс требованиям реализации OAuth2?

Когда я пытаюсь аутентифицироваться и запрашивать ресурсы у других API, таких как Facebook, LinkedIn et c ... во время входа в систему требуется выполнить больше шагов, где мне нужно указать hmac tokens, scopes, and redirect_url, чтобы получить client_secret. Затем я использую client_secret, чтобы запросить access_token. Требует ли OAuth2, чтобы я также реализовал рабочий процесс, включающий scopes, redirect_url, and client_secret? Или мой первоначальный сценарий выше достаточен для удовлетворения OAuth2?

1 Ответ

1 голос
/ 26 апреля 2020

То, что вы описали, это тип предоставления доступа к паролю владельца ресурса :

Учетные данные следует использовать только при высокой степени доверия между владельцем ресурса и клиентом. (например, клиент является частью операционной системы устройства или приложения с высоким уровнем привилегий), и когда другие типы разрешений авторизации недоступны (например, код авторизации).

Единственный случай, когда I Можно представить, что использование этого типа гран является вашим официальным мобильным приложением.

OAuth2 предназначен для использования во многих типах приложений (клиенты браузера, демоны, собственные приложения и т. Д. c.). Вот почему у него есть несколько типов грантов.

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

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