Ρύθμιση διαμεσολαβητή για το 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 middleware του Graph SDK ενώ ρυθμίζει τη διαδρομή API του.
Αν ο ενδιάμεσος απαιτεί έλεγχο ταυτότητας, αντιστοιχίστε τον απαιτούμενο λογαριασμό στην ιδιότητα Credentials του αντικειμένου διαμεσολαβητή. Διατηρήστε τις μεταφορές που σας ανήκουν για όλη τη διάρκεια ζωής του στοιχείου και απελευθερώστε τις κατά τον τερματισμό.
Χρησιμοποιήστε αυτό το μοτίβο με τη γενιά SDK που αναφέρεται. Τα παραδείγματα με HttpProvider και DelegateAuthenticationProvider ανήκουν σε προηγούμενη γενιά και δεν μπορούν να αναμειχθούν σε αυτή την αλυσίδα κατασκευαστή.