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);

Use las credenciales existentes de inquilino/cliente. Cuando se permiten intermediarios públicos tanto para el token como para los puntos de conexión de Graph, la lista de proxies HTTP ofrece candidatos para la dirección HTTP compartida sin cuenta. Los ámbitos de la nube pública y el host permitido mostrados deben coincidir con el despliegue en la nube previsto.

httpClient(tokenHttp) proporciona la ruta de token de Azure Identity. GraphClientFactory.create() conserva el middleware predeterminado de Graph al añadir el proxy de la API; use el cliente final graph para las operaciones.

Un intermediario autenticado necesita configurar la cuenta en ambas rutas: Azure ProxyOptions.setCredentials y OkHttp proxyAuthenticator sirven a sus respectivos transportes. Un token en caché puede ocultar una ruta de token sin configurar.

Conserve y limpie los transportes propios junto con el componente. Los constructores TokenCredentialAuthProvider más antiguos apuntan a otra generación del SDK.

Artículos relacionados