กำหนดค่าพร็อกซีสำหรับ Microsoft Graph SDK v5 และ Azure Identity
กำหนดค่าทรานสปอร์ตของ Graph API และทรานสปอร์ตของ ClientSecretCredential ระหว่างการเริ่มต้น เพื่อให้ทั้งคำขอ API และคำขอโทเค็นมีเส้นทาง
การเรียก Graph API และคำขอโทเค็นของ ClientSecretCredential มีจุดเข้าทรานสปอร์ตแยกกัน เมื่อใช้ Microsoft.Graph 5 และ Azure.Identity ให้กำหนดค่าทั้งสองก่อนสร้างไคลเอนต์:
var proxy = new System.Net.WebProxy(
"http://proxy.example.net:8080");
var tokenHandler = new System.Net.Http.HttpClientHandler
{
Proxy = proxy,
UseProxy = true
};
var credentialOptions = new Azure.Identity.ClientSecretCredentialOptions
{
Transport = new Azure.Core.Pipeline.HttpClientTransport(tokenHandler)
};
var credential = new Azure.Identity.ClientSecretCredential(
tenantId, clientId, clientSecret, credentialOptions);
var authProvider =
new Microsoft.Kiota.Authentication.Azure.AzureIdentityAuthenticationProvider(
credential, scopes: new[] { "https://graph.microsoft.com/.default" });
var graphHttp = Microsoft.Graph.GraphClientFactory.Create(proxy: proxy);
var graphClient = new Microsoft.Graph.GraphServiceClient(
graphHttp, authProvider);สำหรับเส้นทาง HTTP สาธารณะที่ไม่ต้องยืนยันตัวตน รายการพร็อกซี HTTP มีที่อยู่ที่เหมาะสมสำหรับ WebProxy ที่ใช้ร่วมกัน แอปพลิเคชันจัดหา tenantId, clientId และ clientSecret ผ่านการจัดการข้อมูลรับรองที่มีอยู่ สโคป .default ใช้สิทธิ์ของแอปพลิเคชันที่กำหนดค่าไว้สำหรับการลงทะเบียนนั้น เส้นทางไม่สามารถให้สิทธิ์ได้
อ่านสองบรรทัดทรานสปอร์ตเป็นคู่ที่สำคัญ HttpClientTransport(tokenHandler) พาคำขอโทเค็นของข้อมูลรับรอง GraphClientFactory.Create(proxy: proxy) คงการสร้างมิดเดิลแวร์ HTTP ของ Graph SDK ไว้พร้อมกับกำหนดค่าเส้นทาง API
หากตัวกลางต้องการการยืนยันตัวตน ให้กำหนดบัญชีที่จำเป็นให้กับ Credentials ของออบเจ็กต์พร็อกซี ให้เก็บทรานสปอร์ตที่เป็นเจ้าของไว้ตลอดอายุการใช้งานของคอมโพเนนต์และกำจัดเมื่อปิดระบบ
ใช้รูปแบบนี้กับรุ่น SDK ที่ระบุ ตัวอย่าง HttpProvider และ DelegateAuthenticationProvider เป็นของรุ่นก่อนหน้าและไม่สามารถผสมเข้าสู่เชนคอนสตรักเตอร์นี้ได้