在APIM中自動使用Jwt Token統一進行驗證
Azure API Management ( APIM ) 是 Microsoft Azure 服務的一部分,主要功能在協助組織建立、發佈、維護、監控和保護 API。 其主要功能包含: API Gateway 限流和配額 分析和監控 保護 API 現有服務的代理和包裝 … 使用 Azure APIM 可以幫助組織提供統一的 API Gateway、提升 API 管理與發佈、更確保 API 的安全和可靠性。因此,在最近幾年許多企業開始想走微服務或是API first的架構下,常常做為API的對外閘道。 這樣做有一個好處,拿保護API做為例子,透過APIM,你只需要透過設定,就可以讓Gateway 後面的所有API都支援 JWT token驗證,你就無需在每隻API的程式碼裡面,去做token驗證的動作。 這一篇,我們就來實踐這個例子。 使用 Policy 我們做好了一組測試API,呼叫的網址是 https://testapim20231030.azure-api.net/conference/speakers ,這是APIM的雲端位置,它保護了我們原始的API Endpoint,這也是閘道器基本的功能和行為。 你會發現,預設狀況下我們透過postman在呼叫這組API的時候,是無需驗證帳號密碼的: 假設,我們希望讓 APIs 都受到JWT token驗證的保護,那只需要在 InBound Policy 這邊做設定: 加入底下這條 policy: <validate-jwt header-name="Authorization" failed-validation-httpcode="401" failed-validation-error-message="Unauthorized"> <issuer-signing-keys> <key>123456781234567812345678</key> </issuer-signing-keys> <required-claims> <claim name="admin...