Как использовать JWT с балериной - PullRequest
2 голосов
/ 27 апреля 2020

Я читаю о JWT и думаю, что понимаю, как это работает, но когда все сводится к примерам балерины, я ничего не понимаю:

Как мне установить алгоритм, который я хочу использовать вместе с JWT и срок действия?

Как использовать собственный закрытый ключ?

Как получить токен из этого примера, например "https://ballerina.io/learn/by-example/secured-service-with-jwt-auth"?

Может быть, как я могу получить токен, используя CURL (для целей тестирования)?

Также мне интересно, как использовать JWT без необходимости иметь базу данных с пользователями и паролями ..

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

1 Ответ

4 голосов
/ 27 апреля 2020

Модуль JWT Ballerina [1] обеспечивает следующие функциональные возможности.

  1. Выпуск JWT

    Вы можете выпустить / сгенерировать JWT, предоставив jwt:JwtIssuerConfig. Вы можете настроить имя пользователя, эмитента, аудиторию, срок действия, алгоритм подписи, пользовательские утверждения и конфигурацию для подписи (конфигурация хранилища ключей). Пожалуйста, обратитесь к документации API jwt:JwtIssuerConfig [2] . Пример кода можно найти по адресу [3] .

  2. Проверка JWT

    Вы можете проверить JWT, указав jwt:JwtValidatorConfig. Вы можете настроить ожидаемого эмитента, ожидаемую аудиторию, перекос часов, конфигурации кэша и конфигурации для проверки подписи (конфигурация доверенного хранилища). Пожалуйста, обратитесь к документации API jwt: JwtValidatorConfig [4] . Пример кода можно найти по адресу [3] .

  3. Защита службы с помощью JWT

    . Вы можете использовать JWT для защиты и службы HTTP. Заголовок Authorization входящего HTTP-запроса будет проверен и проверен в соответствии с предоставленными конфигурациями. Пожалуйста, обратитесь к документации API jwt:InboundJwtAuthProvider [5] . Пример кода можно найти по адресу [6] .

  4. Вызов службы с помощью JWT

    Вы можете использовать JWT для вызова на внешний сервер который аутентифицирован с JWT. Исходящий HTTP-запрос подготовлен с заголовком Authorization в соответствии с предоставленными конфигурациями. Пожалуйста, обратитесь к документации API jwt:OutboundJwtAuthProvider [7] . Пример кода можно найти по адресу [8] .

Ответы на вопросы:

Как это сделать я устанавливаю алгоритм, который я хочу использовать вместе с JWT и временем истечения?

Вы можете настроить jwt:JwtIssuerConfig [2] , как описано выше.

Как использовать собственный закрытый ключ?

В поле jwt:JwtKeyStoreConfig можно указать jwt:JwtIssuerConfig [2] , используя свой закрытый ключ.

Как я могу получить токен из этого примера, например "https://ballerina.io/learn/by-example/secured-service-with-jwt-auth"? Может быть, как я могу получить токен, используя CURL (для целей тестирования)?

Это пример службы, защищенной с помощью JWT. Маркер, используемый для вызова этого сервиса, находится внизу примера. Также предоставляется способ вызова этой службы с помощью CURL.

Также мне интересно, как использовать JWT без необходимости иметь базу данных с пользователями и паролями.

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

Ссылки:

1 https://ballerina.io/learn/api-docs/ballerina/jwt/index.html

2 https://ballerina.io/learn/api-docs/ballerina/jwt/records/JwtIssuerConfig.html

3 https://ballerina.io/learn/by-example/jwt-issue-validate.html

4 https://ballerina.io/learn/api-docs/ballerina/jwt/records/JwtValidatorConfig.html

5 https://ballerina.io/learn/api-docs/ballerina/jwt/objects/InboundJwtAuthProvider.html

6 https://ballerina.io/learn/by-example/secured-service-with-jwt-auth.html

7 https://ballerina.io/learn/api-docs/ballerina/jwt/objects/OutboundJwtAuthProvider.html

8 https://ballerina.io/learn/by-example/secured-client-with-jwt-auth.html

...