curl --location --request POST 'http://localhost:8082/connect/token' --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'client_id=embedded_******' --data-urlencode 'client_secret=******' --data-urlencode 'grant_type=client_credentials' --data-urlencode 'scope=dashboard_read embedded' --data-urlencode 'dashboard_guid=******' --data-urlencode 'public=false' --data-urlencode 'login=alice' --data-urlencode 'attributes=[{"name":"Region","values":["Alsace", "\"l'Auvergne\""]}]'
<!doctype html> <html lang="fr"> <head> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <meta charset="utf-8"> <title>myreport Embedded</title> </head> <body> <?php function GetToken($IdentityURL, $client_id, $client_secret, $dashboard_guid, $public, $login, $attributes) { $url = "http://localhost:8082/connect/token"; $encoded = array( 'scope' => 'dashboard_read embedded', 'grant_type' => 'client_credentials', 'client_id' => $client_id, 'client_secret' => $client_secret, 'dashboard_guid' => $dashboard_guid, 'public' => $public, 'login' => $login, 'attributes' => $attributes ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($encoded)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec($ch); curl_close($ch); //echo $server_output; $jsonoutput = json_decode($server_output, true); return $jsonoutput['access_token']; } ?> <?php $clientURL = "http://localhost:8080/embedded"; $IdentityURL = "http://localhost:8082/connect/token"; $publicToken = GetToken($IdentityURL, '*******', '*******', '*******', 'true', 'Public', '[]'); $privateTokenAlice = GetToken($IdentityURL, '********', '*******', '********', 'false', 'alice', '[{"name":"Region","values":["Alsace","Auvergne"]}]'); $optionalIFrameParams = "&responsive=true&vertical_stretch=true"; $publicURL = $clientURL . "?access_token=" . $publicToken . $optionalIFrameParams; $privateURL = $clientURL . "?access_token=" . $privateTokenAlice . $optionalIFrameParams; ?> <iframe width="1200" height="650" frameborder="0" src="<?php echo $$publicURL; ?>"></iframe> <iframe width="1200" height="650" frameborder="0" src="<?php echo $privateURL; ?>"></iframe> </body> </html>
Lorsque la demande d'access token est réalisée depuis un environnement C# / .NET, il est recommandé d'utiliser la bibliothèqueIdentityModel, accessible via le gestionnaire de paquets NuGet.
L'implémentation est la suivante (exemple issu de la documentation) :
var response = await client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = "http://localhost:8082/connect/token", GrantType = "grantType", ClientId = "clientId", ClientSecret = "clientSecret", Scope = "scope", Parameters = ... });
Si la requête s'est déroulée avec succès, l'access token peut être récupéré ainsi :
var accessToken = response.AccessToken;