Okta JWT Verifier не работает

Я хочу проверить токен доступа OKTA. Я создал простой вариант использования в nodejs, но получаю ошибку разрешения и не нашел решения для решения этой проблемы. Вот мой код:

const OktaJwtVerifier = require('@okta/jwt-verifier');
const issuer = '{{url}}';
const cid = '{{clientid}}'

const oktaJwtVerifier = new OktaJwtVerifier({
  issuer: `http://${issuer}.com/oauth2/default`,
  assertClaims: {
    cid
  }
})

oktaJwtVerifier.verifyAccessToken("accesstoken")
  .then(jwt => {
    // the token is valid
    console.log(jwt.claims);
  })
  .catch(err => {
    console.log(JSON.stingify(err))
  });

И я получаю такую ​​ошибку:

имя: 'JwksError', сообщение: {errorCode: 'E0000006', errorSummary: 'У вас нет разрешения на выполнение запрошенного действия', errorLink: 'E0000006', errorId: 'oaezeHaXzOCS9m4D5C5P9WnZA', errorCauses: []}}}

Я проверил страницу jwt-verifier на github. и я думаю, это должно сработать.


person eL_Finito    schedule 28.05.2018    source источник
comment
прочитали ли вы support.okta.com/help/answers?id=906F0000000blRNIAY?   -  person Jaromanda X    schedule 28.05.2018
comment
Я не использую AD, я хочу использовать сервер аутентификации по умолчанию.   -  person eL_Finito    schedule 28.05.2018
comment
честно ... похоже, что это ошибка разрешения, не уверен, что вы предоставили достаточно информации (что понятно, учитывая характер вопроса)   -  person Jaromanda X    schedule 28.05.2018
comment
У меня есть действующий токен доступа на стороне клиента, но мне нужно проверить запрос на сервере ресурсов. Должен ли я установить что-то в okta? (Я чего-то не нашел в документации ..)   -  person eL_Finito    schedule 28.05.2018


Ответы (1)


Сервер авторизации "по умолчанию" также должен иметь включенный флаг функции управления доступом к API. Есть ли у вас управление доступом через API?

Чтобы проверить: перейдите в панель управления Okta> безопасность> API> проверьте, есть ли у вас вкладка с именем «Серверы авторизации» рядом с вкладкой «токен».

Если вы этого не сделаете:

  1. If your org. is a preview org. email [email protected] with your org. URL and they will enable it
    1. If your org is not preview, you have to buy it.
    2. в качестве альтернативы вы можете использовать сам Okta в качестве сервера авторизации -> таким образом, эмитент будет «эмитент: http://${issuer}.com», а не «эмитент: http://${issuer}.com/oauth2/default»

В последнем случае: вы НЕ МОЖЕТЕ проверить токен локально. Однако вы можете отправить токен в конечную точку / introspect для проверки ИЛИ запросить дополнительную информацию с токеном из / userinfo.

Вы можете получить больше информации. о выше с сайта developers.okta.com

person Sara Daqiq    schedule 29.05.2018
comment
Вы правы, в моей учетной записи не включен сервер аутентификации по умолчанию. Спасибо! - person eL_Finito; 01.06.2018