Проверить JWT в политике Azure APIM - PullRequest
0 голосов
/ 09 июля 2020

В Azure APIM я пытаюсь создать политику, которая будет проверять JWT. Что бы я ни пытался, я всегда получаю ошибку «401: недопустимый JWT». Кто-нибудь знает, что я делаю не так? (Может быть, я не использую правильный ключ подписи?)

Мой ключ безопасности в кодировке base64 Zm9v.

Я создаю образец токена на jwt.io, поэтому мой заголовок авторизации:

Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.Bm8tu4m18oA96xwhBL8AV_4hRpIU6OrK5UaOmGqBEsk

Вот политика, которую я использую:

<policies>
    <inbound>
        <base />
        <validate-jwt
            header-name="Authorization"
            require-expiration-time="false"
            require-scheme="Bearer"
        >
            <issuer-signing-keys>
                <key>Zm9v</key>
            </issuer-signing-keys>
        </validate-jwt>
    </inbound>
    <backend>
        <base />
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>

HTTP-ответ:

cache-control: private
content-length: 48
content-type: application/json
ocp-apim-trace-location: https://xxxxxxx
vary: Origin
{
    "statusCode": 401,
    "message": "Invalid JWT."
}

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Проблема заключалась в том, что размер моего ключа был слишком мал.

При тестировании API в Azure есть вкладка Trace, но отсутствует раздел On Error.

enter image description here

You have to go to the Message tab. There is an ocp-apim-trace-location which will show the full trace. enter image description here

It turns out the key size I was using was too small. It was only 24 and needs to be at least 128. введите описание изображения здесь

0 голосов
/ 09 июля 2020

Предоставленный вами токен: недействительная подпись . От Go до jwt.io , чтобы сначала проверить ваш токен.

Политика, которую вы предоставили. Более подробную информацию вы можете найти в этой статье .

...