Microsoft Azure API Management の validate-jwt policy を使用する方法

Microsoft Azure API Management の validate-jwt policy を使用する方法

Takahiro Iwasa
Takahiro Iwasa
2 min read
Authentication

Azure API Management の validate-jwt policy を使用する必要がありましたので、備忘録として残します。 署名アルゴリズムは HS256 (共通鍵) を使用していますが、要件に応じて RS256 もご検討ください。

validate-jwt policy 追加

API 設定画面を開き、 Inbound processingAdd policy をクリックしてください。

Validate JWT を選択してください。

Validate JWT を、以下を参考にして設定してください。

フィールド
Validated byHeader
Header nameAuthorization
Failed validation HTTP code401 - Unauthorized
Require expiration time / Required signed tokensYES
Require schemeBearer
Issuer signing keys推測が困難な任意の値
e.g. date +%s | sha256sum | base64
128 bit 以上の値を指定しないと、正常な JWT も 401 Unauthorized となります。
Audiences/Issuers/Required claims任意の値

API テスト

下記の <API Endpoint>, <JWT>, <API Management Subscription Key> に適切な値を設定して、実行してください。 JWT の生成は、jwt.io が便利です。

curl -X GET \
  <API Endpoint> \
  -H 'Accept: */*' \
  -H 'Accept-Encoding: gzip, deflate' \
  -H 'Authorization: Bearer <JWT>' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Ocp-Apim-Subscription-Key: <API Management Subscription Key>' \
  -H 'cache-control: no-cache'
Takahiro Iwasa

Takahiro Iwasa

Software Developer at KAKEHASHI Inc.
Involved in the requirements definition, design, and development of cloud-native applications using AWS. Now, building a new prescription data collection platform at KAKEHASHI Inc. Japan AWS Top Engineers 2020-2023.