В чем преимущество пользовательского API в Auth0? - PullRequest
0 голосов
/ 18 июня 2019

Вопрос

У меня проблема с пониманием некоторых основных вещей об auth0, возможно, кто-то может мне помочь.

В учебнике SPA + API одна из первых строк в TDLR такая:

И панель SPA, и API-интерфейс должны быть настроены на информационной панели Auth0

Я не понимаю, почему мне нужно настроить API на Auth0. Кажется, мой код работает, и может ли кто-нибудь помочь мне понять, что я делаю что-то не так, или каковы преимущества, если я на самом деле добавляю собственный API в свою панель?

Настройка

  • SPA (React)
  • Auth0
  • REST API (ктор)

Что я делаю

  • Создан SPA на Auth0
  • Войдите в мой SPA через Auth0, чтобы получить JWT (google token)
  • Отправка JWT в качестве носителя аутентификации в моих звонках в REST API
  • REST API проверяет токен JWT у провайдера JWK, используя URL-адрес Auth0 mydomain.eu.auth0.com/.well-known/jwks.json.
  • Аутентификация работает

1 Ответ

2 голосов
/ 18 июня 2019

Отличный вопрос, я предполагаю, что ваш запрос аутентификации включает параметр аудитории, который представляет ваш пользовательский API (Rest API) прямо сейчас. В терминах oauth2 это называется Resource Server. Каждый ресурсный сервер может иметь много разрешений, которые вы включаете в область при запуске запроса аутентификации. Давайте вернемся назад и поговорим о формате токена. Auth0 выдает токен в двух форматах:

  • Непрозрачные строки: если пользовательский API не используется
  • JSON Web Tokens (JWT): при использовании пользовательского API

https://auth0.com/docs/tokens/reference/access-token/access-token-formats#how-does-all-this-affect-the-token-format-

Как объяснено выше по ссылке, формат токена зависит от параметра аудитории (Custom API). Поэтому, когда запрос аутентификации включает аудиторию, auth0 выдает токен JWT со всеми необходимыми разрешениями. Затем необходимо проверить токен JWT на сервере API, прежде чем возвращать ресурсы клиенту переднего плана.

Должно иметь смысл, зачем вам нужно создавать собственный API в auth0 и определять разрешения. Если вы не создаете пользовательский API в auth0, нет способа узнать, какое разрешение вам нужно в токене, что приведет к ошибке (указана неверная аудитория)

...