Настройки прокси в 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.