Microsoft Azure API Management の validate-jwt policy を使用する方法
Takahiro Iwasa
2 min read
Authentication
It has been more than 3 years since this post was published.
Azure API Management の validate-jwt policy を使用する必要がありましたので、備忘録として残します。 署名アルゴリズムは HS256 (共通鍵) を使用していますが、要件に応じて RS256 もご検討ください。
validate-jwt policy 追加
URL Copied!
API 設定画面を開き、 Inbound processing
の Add policy
をクリックしてください。
Validate JWT
を選択してください。
Validate JWT
を、以下を参考にして設定してください。
フィールド | 値 |
---|---|
Validated by | Header |
Header name | Authorization |
Failed validation HTTP code | 401 - Unauthorized |
Require expiration time / Required signed tokens | YES |
Require scheme | Bearer |
Issuer signing keys | 推測が困難な任意の値 e.g. date +%s | sha256sum | base64 128 bit 以上の値を指定しないと、正常な JWT も 401 Unauthorized となります。 |
Audiences/Issuers/Required claims | 任意の値 |
API テスト
URL Copied!
下記の <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'