การกำหนดค่า OpenID Connect ใน Azure API Management (APIM) เกี่ยวข้องกับแนวทางปฏิบัติที่ดีที่สุดหลายประการเพื่อให้แน่ใจว่าการรับรองความถูกต้องและการอนุญาตที่ปลอดภัยและมีประสิทธิภาพสำหรับ API ของคุณ นี่คือข้อควรพิจารณาที่สำคัญบางประการ:
1. สร้างแอปพลิเคชันโฆษณา Azure:
- ลงทะเบียนแอปพลิเคชันใน Azure Active Directory (AAD) เพื่อเป็นตัวแทน API ของคุณ แอปพลิเคชันนี้จะใช้เพื่อกำหนดค่า OpenID Connect ใน APIM [3]
- ตรวจสอบให้แน่ใจว่าแอปพลิเคชันถูกทำเครื่องหมายเป็นผู้เช่าหลายคนหากคุณวางแผนที่จะใช้กับพอร์ทัลนักพัฒนา [3]
2. กำหนดค่าการอนุญาต OpenID Connect:
- ในพอร์ทัล Azure นำทางไปยังอินสแตนซ์ APIM ของคุณและเพิ่มเซิร์ฟเวอร์การอนุญาต OpenID Connect ใหม่ภายใต้ส่วน "OpenID Connect" [1] [3]
-จัดเตรียม URL จุดสิ้นสุดของ OpenID Connect Metadata สำหรับผู้เช่า Azure AD ของคุณโดยทั่วไปในแบบฟอร์ม `https://login.microsoftonline.com/ {Tenant-id}/.well-known/openid-configuration`
- ป้อนรหัสลูกค้าและความลับของไคลเอนต์ของแอปพลิเคชัน Azure AD ที่คุณสร้างขึ้น [1] [3]
3. กำหนดค่าการเปลี่ยนเส้นทาง URIS:
- ในแอปพลิเคชัน Azure AD ให้เพิ่มการเปลี่ยนเส้นทาง URIs สำหรับรหัสการอนุญาตและการไหลของการให้ทุนโดยนัย โดยทั่วไปแล้ว URIs เหล่านี้จะจัดทำโดย APIM ในระหว่างการตั้งค่า OpenID Connect [1] [3]
4. เปิดใช้งาน OpenID Connect สำหรับ API ของคุณ:
- ใน APIM เลือก API ที่คุณต้องการปกป้องและไปที่การตั้งค่า ภายใต้ความปลอดภัยให้เลือก OAuth 2.0 และเลือกเซิร์ฟเวอร์การอนุญาต OpenID Connect ที่คุณกำหนดค่า [1]
5. ตรวจสอบโทเค็น JWT:
- ใช้นโยบาย `การตรวจสอบความถูกต้อง- jwt` ใน APIM เพื่อตรวจสอบโทเค็น JWT ที่ส่งในส่วนหัวการอนุญาต นโยบายนี้ตรวจสอบการเรียกร้องผู้ชมของโทเค็นเพื่อให้แน่ใจว่าตรงกับรหัสลูกค้าแบ็กเอนด์ของคุณ [5] [8]
- พิจารณาใช้ค่าที่มีชื่อหรือ Azure Key Vault เพื่อจัดเก็บข้อมูลที่ละเอียดอ่อนเช่น URL OpenID Connect ผู้ชมและผู้ออก [6]
6. การทดสอบและการตรวจสอบ:
- ทดสอบ API ของคุณโดยใช้พอร์ทัล APIM Developer เพื่อให้แน่ใจว่า OpenID Connect Authentication ทำงานได้อย่างถูกต้อง [3]
- ตรวจสอบการรับส่งข้อมูล API และการตรวจสอบความถูกต้องเพื่อระบุปัญหาหรือช่องโหว่ด้านความปลอดภัย [7]
โดยทำตามแนวทางปฏิบัติที่ดีที่สุดเหล่านี้คุณสามารถรักษาความปลอดภัย APIs ของคุณด้วย OpenID Connect ใน Azure APIM ได้อย่างมีประสิทธิภาพ
การอ้างอิง:
[1] https://www.cloudfronts.com/uncategorized/securing-an-api-using-open-id-connect-from-aapim-part-part-2-configure-setup-enable-open-id-connect-in-the-devolower-console
[2] https://stackoverflow.com/questions/77698997/configure-azure-apim-application-with-outh-2-0- ซึ่ง which-will-secure-api-with-jwt-t-t-t
[3] https://winterdom.com/2017/11/11/openid-connect-api-Management
[4] https://www.liatrio.com/resources/blog/azure-api-Management-okta-integration
[5] https://learn.microsoft.com/en-us/azure/api-management/api-Management-howto-protect-backend-with-aad
[6] https://stackoverflow.com/questions/72716297/can-the-openid-config-url-audience-issuer-value-in-the-azure-apim-policies-be/72716409
[7] https://techcommunity.microsoft.com/discussions/azure/api-management-service-secure-configuration-for-standard-v2-sku/4336449
[8] https://learn.microsoft.com/en-us/azure/api-management/authentication-authorization-overview