21#ifndef FREERDP_UTILS_AAD_H 
   22#define FREERDP_UTILS_AAD_H 
   27#include <winpr/wlog.h> 
   28#include <winpr/json.h> 
   30#include <freerdp/api.h> 
   31#include <freerdp/types.h> 
   32#include <freerdp/config.h> 
   44    AAD_WELLKNOWN_token_endpoint = 0,
 
   45    AAD_WELLKNOWN_token_endpoint_auth_methods_supported,
 
   46    AAD_WELLKNOWN_jwks_uri,
 
   47    AAD_WELLKNOWN_response_modes_supported,
 
   48    AAD_WELLKNOWN_subject_types_supported,
 
   49    AAD_WELLKNOWN_id_token_signing_alg_values_supported,
 
   50    AAD_WELLKNOWN_response_types_supported,
 
   51    AAD_WELLKNOWN_scopes_supported,
 
   53    AAD_WELLKNOWN_request_uri_parameter_supported,
 
   54    AAD_WELLKNOWN_userinfo_endpoint,
 
   55    AAD_WELLKNOWN_authorization_endpoint,
 
   56    AAD_WELLKNOWN_device_authorization_endpoint,
 
   57    AAD_WELLKNOWN_http_logout_supported,
 
   58    AAD_WELLKNOWN_frontchannel_logout_supported,
 
   59    AAD_WELLKNOWN_end_session_endpoint,
 
   60    AAD_WELLKNOWN_claims_supported,
 
   61    AAD_WELLKNOWN_kerberos_endpoint,
 
   62    AAD_WELLKNOWN_tenant_region_scope,
 
   63    AAD_WELLKNOWN_cloud_instance_name,
 
   64    AAD_WELLKNOWN_cloud_graph_host_name,
 
   65    AAD_WELLKNOWN_msgraph_host,
 
   66    AAD_WELLKNOWN_rbac_url
 
   67  } AAD_WELLKNOWN_VALUES;
 
   78  WINPR_ATTR_MALLOC(free, 1)
 
   79  FREERDP_API 
char* freerdp_utils_aad_get_access_token(wLog* log, const 
char* data,
 
   89  FREERDP_API const 
char* freerdp_utils_aad_wellknwon_value_name(AAD_WELLKNOWN_VALUES which);
 
   99  FREERDP_API const 
char* freerdp_utils_aad_get_wellknown_string(rdpContext* context,
 
  100                                                                 AAD_WELLKNOWN_VALUES which);
 
  110  FREERDP_API const 
char* freerdp_utils_aad_get_wellknown_custom_string(rdpContext* context,
 
  121  FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown_object(rdpContext* context,
 
  122                                                                 AAD_WELLKNOWN_VALUES which);
 
  132  FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown_custom_object(rdpContext* context,
 
  145  FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown(wLog* log, const 
char* base,
 
  146                                                          const 
char* tenantid);
 
WINPR_API void WINPR_JSON_Delete(WINPR_JSON *item)
Delete a WinPR JSON wrapper object.