FreeRDP
include/freerdp/utils/aad.h
1 
21 #ifndef FREERDP_UTILS_AAD_H
22 #define FREERDP_UTILS_AAD_H
23 
27 #include <winpr/wlog.h>
28 #include <winpr/json.h>
29 
30 #include <freerdp/api.h>
31 #include <freerdp/types.h>
32 #include <freerdp/config.h>
33 
34 #ifdef __cplusplus
35 extern "C"
36 {
37 #endif
38 
42  typedef enum
43  {
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,
52  AAD_WELLKNOWN_issuer,
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;
68 
78  WINPR_ATTR_MALLOC(free, 1)
79  FREERDP_API char* freerdp_utils_aad_get_access_token(wLog* log, const char* data,
80  size_t length);
81 
89  FREERDP_API const char* freerdp_utils_aad_wellknwon_value_name(AAD_WELLKNOWN_VALUES which);
90 
99  FREERDP_API const char* freerdp_utils_aad_get_wellknown_string(rdpContext* context,
100  AAD_WELLKNOWN_VALUES which);
101 
110  FREERDP_API const char* freerdp_utils_aad_get_wellknown_custom_string(rdpContext* context,
111  const char* which);
112 
121  FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown_object(rdpContext* context,
122  AAD_WELLKNOWN_VALUES which);
123 
132  FREERDP_API WINPR_JSON* freerdp_utils_aad_get_wellknown_custom_object(rdpContext* context,
133  const char* which);
134 
144  WINPR_ATTR_MALLOC(WINPR_JSON_Delete, 1)
145  WINPR_JSON* freerdp_utils_aad_get_wellknown(wLog* log, const char* base, const char* tenantid);
146 
147 #ifdef __cplusplus
148 }
149 #endif
150 
151 #endif /* FREERDP_UTILS_AAD_H */
WINPR_API void WINPR_JSON_Delete(WINPR_JSON *item)
Delete a WinPR JSON wrapper object.
Definition: json.c:144