Налаштування проксі в Microsoft Graph Java 6 для клієнтів API і токенів
Використовуйте маршрут Netty від Azure Identity і маршрут OkHttp від Graph, що зберігає проміжне програмне забезпечення під час ініціалізації.
var address = new java.net.InetSocketAddress("proxy.example", 8080);
var tokenProxy = new com.azure.core.http.ProxyOptions(
com.azure.core.http.ProxyOptions.Type.HTTP, address);
var tokenHttp = new com.azure.core.http.netty.NettyAsyncHttpClientBuilder()
.proxy(tokenProxy).build();
var credential = new com.azure.identity.ClientSecretCredentialBuilder()
.tenantId(tenantId).clientId(clientId).clientSecret(clientSecret)
.httpClient(tokenHttp).build();
String[] scopes = {"https://graph.microsoft.com/.default"};
String[] allowedHosts = {"graph.microsoft.com"};
var auth = new com.microsoft.kiota.authentication.AzureIdentityAuthenticationProvider(
credential, allowedHosts, scopes);
var graphHttp = com.microsoft.graph.core.requests.GraphClientFactory.create()
.proxy(new java.net.Proxy(java.net.Proxy.Type.HTTP, address))
.build();
var graph = new com.microsoft.graph.serviceclient.GraphServiceClient(auth, graphHttp);Використовуйте наявні облікові дані орендаря/клієнта. Там, де публічні посередники дозволені і для кінцевої точки токена, і для Graph, список HTTP-проксі пропонує кандидатів для спільної адреси HTTP-проксі без облікового запису. Показані області публічної хмари та дозволений хост мають відповідати запланованому розгортанню в хмарі.
httpClient(tokenHttp) забезпечує маршрут токена Azure Identity. GraphClientFactory.create() зберігає типове проміжне програмне забезпечення Graph, додаючи проксі API; для операцій використовуйте підсумковий клієнт graph.
Автентифікованому посереднику потрібне налаштування облікового запису на обох шляхах: Azure ProxyOptions.setCredentials і OkHttp proxyAuthenticator обслуговують свої відповідні транспорти. Кешований токен може приховати неналаштований шлях токена.
Зберігайте й очищайте власні транспорти разом із компонентом. Старіші будівники TokenCredentialAuthProvider орієнтовані на інше покоління SDK.