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) Graph SDK ਦੀ HTTP ਮਿਡਲਵੇਅ ਬਣਾਵਟ ਨੂੰ ਬਣਾਈ ਰੱਖਦੇ ਹੋਏ ਇਸਦਾ API ਰਾਹ ਕਨਫਿਗਰ ਕਰਦਾ ਹੈ।
ਜੇ ਵਿਚੋਲਾ ਪ੍ਰਮਾਣੀਕਰਨ ਮੰਗਦਾ ਹੈ, ਤਾਂ ਲੋੜੀਂਦਾ ਖਾਤਾ ਪ੍ਰੌਕਸੀ ਆਬਜੈਕਟ ਦੀ Credentials ਨੂੰ ਸੌਂਪੋ। ਕੰਪੋਨੈਂਟ ਦੀ ਉਮਰ ਭਰ ਆਪਣੇ ਟ੍ਰਾਂਸਪੋਰਟ ਰੱਖੋ ਅਤੇ ਬੰਦ ਕਰਨ ਵੇਲੇ ਉਹਨਾਂ ਨੂੰ ਛੱਡ ਦਿਓ।
ਇਹ ਪੈਟਰਨ ਦੱਸੀ SDK ਪੀੜ੍ਹੀ ਨਾਲ ਵਰਤੋ। HttpProvider ਅਤੇ DelegateAuthenticationProvider ਵਾਲੇ ਉਦਾਹਰਨ ਪਿਛਲੀ ਪੀੜ੍ਹੀ ਦੇ ਹਨ ਅਤੇ ਇਸ ਕੰਸਟ੍ਰਕਟਰ ਚੇਨ ਵਿੱਚ ਨਹੀਂ ਮਿਲਾਏ ਜਾ ਸਕਦੇ।