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

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

岩佐 孝浩
岩佐 孝浩
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'
岩佐 孝浩

岩佐 孝浩

Software Developer at KAKEHASHI Inc.
AWS を活用したクラウドネイティブ・アプリケーションの要件定義・設計・開発に従事。 株式会社カケハシで、処方箋データ収集の新たな基盤の構築に携わっています。 Japan AWS Top Engineers 2020-2023