diff --git a/client/common/client.c b/client/common/client.c index 3d670d136..52f5a959e 100644 --- a/client/common/client.c +++ b/client/common/client.c @@ -1039,11 +1039,7 @@ static BOOL client_cli_get_rdsaad_access_token(freerdp* instance, const char* sc const char* client_id = freerdp_settings_get_string(instance->context->settings, FreeRDP_GatewayAvdClientID); - const char* base = - freerdp_settings_get_string(instance->context->settings, FreeRDP_GatewayAvdArmpath); - const char* tenantid = - freerdp_settings_get_string(instance->context->settings, FreeRDP_GatewayAvdAadtenantid); - if (!base || !tenantid || !client_id) + if (!client_id) goto cleanup; winpr_asprintf(&redirect_uri, &redirec_uri_len, @@ -1101,8 +1097,8 @@ static BOOL client_cli_get_avd_access_token(freerdp* instance, char** token) const char* client_id = freerdp_settings_get_string(instance->context->settings, FreeRDP_GatewayAvdClientID); - const char* base = - freerdp_settings_get_string(instance->context->settings, FreeRDP_GatewayAvdArmpath); + const char* base = freerdp_settings_get_string(instance->context->settings, + FreeRDP_GatewayAzureActiveDirectory); const char* tenantid = freerdp_settings_get_string(instance->context->settings, FreeRDP_GatewayAvdAadtenantid); if (!base || !tenantid || !client_id) diff --git a/client/common/cmdline.c b/client/common/cmdline.c index 095e2fd87..5ded23445 100644 --- a/client/common/cmdline.c +++ b/client/common/cmdline.c @@ -3716,7 +3716,7 @@ static int parse_aad_options(rdpSettings* settings, const COMMAND_LINE_ARGUMENT_ }; const struct app_map amap[] = { { "tenantid:", FreeRDP_GatewayAvdAadtenantid, parse_app_option_program }, - { "base:", FreeRDP_GatewayAvdArmpath, NULL } }; + { "ad:", FreeRDP_GatewayAzureActiveDirectory, NULL } }; for (size_t x = 0; x < count; x++) { BOOL handled = FALSE; @@ -4614,7 +4614,7 @@ static int freerdp_client_settings_parse_command_line_arguments_int( return fail_at(arg, COMMAND_LINE_ERROR_UNEXPECTED_VALUE); } #endif - CommandLineSwitchCase(arg, "aad") + CommandLineSwitchCase(arg, "azure") { int rc = parse_aad_options(settings, arg); if (rc != 0) diff --git a/client/common/cmdline.h b/client/common/cmdline.h index 89fa97cea..35d610993 100644 --- a/client/common/cmdline.h +++ b/client/common/cmdline.h @@ -26,8 +26,8 @@ static const COMMAND_LINE_ARGUMENT_A global_cmd_args[] = { { "a", COMMAND_LINE_VALUE_REQUIRED, "[,]", NULL, NULL, -1, "addin", "Addin" }, - { "aad", COMMAND_LINE_VALUE_REQUIRED, "[tenantid:],[base:]", NULL, NULL, -1, NULL, - "AAD options" }, + { "azure", COMMAND_LINE_VALUE_REQUIRED, "[tenantid:],[ad:]", NULL, NULL, -1, NULL, + "AzureAD options" }, { "action-script", COMMAND_LINE_VALUE_REQUIRED, "", "~/.config/freerdp/action.sh", NULL, -1, NULL, "Action script" }, { "admin", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "console", diff --git a/include/freerdp/settings_types_private.h b/include/freerdp/settings_types_private.h index e766d2eb9..ab174f945 100644 --- a/include/freerdp/settings_types_private.h +++ b/include/freerdp/settings_types_private.h @@ -485,7 +485,9 @@ struct rdp_settings SETTINGS_DEPRECATED(ALIGN64 char* GatewayAvdClientID); /** 2013 * @since version 3.10.0 */ - UINT64 padding2015[2015 - 2014]; /* 2014 */ + SETTINGS_DEPRECATED(ALIGN64 char* GatewayAzureActiveDirectory); /** 2014 + * @since version 3.10.0 + */ /* Proxy */ SETTINGS_DEPRECATED(ALIGN64 UINT32 ProxyType); /* 2015 */ diff --git a/libfreerdp/common/settings_getters.c b/libfreerdp/common/settings_getters.c index ec6bb64cf..4f858b886 100644 --- a/libfreerdp/common/settings_getters.c +++ b/libfreerdp/common/settings_getters.c @@ -2787,6 +2787,9 @@ const char* freerdp_settings_get_string(const rdpSettings* settings, case FreeRDP_GatewayAvdWvdEndpointPool: return settings->GatewayAvdWvdEndpointPool; + case FreeRDP_GatewayAzureActiveDirectory: + return settings->GatewayAzureActiveDirectory; + case FreeRDP_GatewayDomain: return settings->GatewayDomain; @@ -3099,6 +3102,9 @@ char* freerdp_settings_get_string_writable(rdpSettings* settings, FreeRDP_Settin case FreeRDP_GatewayAvdWvdEndpointPool: return settings->GatewayAvdWvdEndpointPool; + case FreeRDP_GatewayAzureActiveDirectory: + return settings->GatewayAzureActiveDirectory; + case FreeRDP_GatewayDomain: return settings->GatewayDomain; @@ -3421,6 +3427,9 @@ BOOL freerdp_settings_set_string_(rdpSettings* settings, FreeRDP_Settings_Keys_S case FreeRDP_GatewayAvdWvdEndpointPool: return update_string_(&settings->GatewayAvdWvdEndpointPool, cnv.c, len); + case FreeRDP_GatewayAzureActiveDirectory: + return update_string_(&settings->GatewayAzureActiveDirectory, cnv.c, len); + case FreeRDP_GatewayDomain: return update_string_(&settings->GatewayDomain, cnv.c, len); @@ -3761,6 +3770,10 @@ BOOL freerdp_settings_set_string_copy_(rdpSettings* settings, FreeRDP_Settings_K case FreeRDP_GatewayAvdWvdEndpointPool: return update_string_copy_(&settings->GatewayAvdWvdEndpointPool, cnv.cc, len, cleanup); + case FreeRDP_GatewayAzureActiveDirectory: + return update_string_copy_(&settings->GatewayAzureActiveDirectory, cnv.cc, len, + cleanup); + case FreeRDP_GatewayDomain: return update_string_copy_(&settings->GatewayDomain, cnv.cc, len, cleanup); diff --git a/libfreerdp/common/settings_str.h b/libfreerdp/common/settings_str.h index d514c2c3a..2ba03fe30 100644 --- a/libfreerdp/common/settings_str.h +++ b/libfreerdp/common/settings_str.h @@ -498,6 +498,8 @@ static const struct settings_str_entry settings_map[] = { "FreeRDP_GatewayAvdHubdiscoverygeourl" }, { FreeRDP_GatewayAvdWvdEndpointPool, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayAvdWvdEndpointPool" }, + { FreeRDP_GatewayAzureActiveDirectory, FREERDP_SETTINGS_TYPE_STRING, + "FreeRDP_GatewayAzureActiveDirectory" }, { FreeRDP_GatewayDomain, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayDomain" }, { FreeRDP_GatewayHostname, FREERDP_SETTINGS_TYPE_STRING, "FreeRDP_GatewayHostname" }, { FreeRDP_GatewayHttpExtAuthBearer, FREERDP_SETTINGS_TYPE_STRING, diff --git a/libfreerdp/core/aad.c b/libfreerdp/core/aad.c index 6f5eab9f5..212dc7db1 100644 --- a/libfreerdp/core/aad.c +++ b/libfreerdp/core/aad.c @@ -857,7 +857,7 @@ BOOL aad_fetch_wellknown(rdpAad* aad) WINPR_ASSERT(aad->rdpcontext); const char* base = - freerdp_settings_get_string(aad->rdpcontext->settings, FreeRDP_GatewayAvdArmpath); + freerdp_settings_get_string(aad->rdpcontext->settings, FreeRDP_GatewayAzureActiveDirectory); const char* tenantid = freerdp_settings_get_string(aad->rdpcontext->settings, FreeRDP_GatewayAvdAadtenantid); WINPR_JSON_Delete(aad->wellknown); @@ -993,7 +993,7 @@ WINPR_JSON* freerdp_utils_aad_get_wellknown(wLog* log, const char* base, const c free(response); if (!json) - WLog_Print(log, WLOG_ERROR, "failed to parse reponse as JSON"); + WLog_Print(log, WLOG_ERROR, "failed to parse response as JSON"); return json; } diff --git a/libfreerdp/core/gateway/arm.c b/libfreerdp/core/gateway/arm.c index a06ca73d8..d7ce1a11d 100644 --- a/libfreerdp/core/gateway/arm.c +++ b/libfreerdp/core/gateway/arm.c @@ -165,7 +165,7 @@ static BOOL arm_fetch_wellknown(rdpArm* arm) WINPR_ASSERT(arm->context); const char* base = - freerdp_settings_get_string(arm->context->settings, FreeRDP_GatewayAvdArmpath); + freerdp_settings_get_string(arm->context->settings, FreeRDP_GatewayAzureActiveDirectory); const char* tenantid = freerdp_settings_get_string(arm->context->settings, FreeRDP_GatewayAvdAadtenantid); WINPR_JSON_Delete(arm->wellknown); diff --git a/libfreerdp/core/settings.c b/libfreerdp/core/settings.c index 99429fd3e..f57f3aec6 100644 --- a/libfreerdp/core/settings.c +++ b/libfreerdp/core/settings.c @@ -824,7 +824,7 @@ rdpSettings* freerdp_settings_new(DWORD flags) if (!freerdp_settings_set_string(settings, FreeRDP_GatewayAvdClientID, "a85cf173-4192-42f8-81fa-777a763e6e2c")) goto out_fail; - if (!freerdp_settings_set_string(settings, FreeRDP_GatewayAvdArmpath, + if (!freerdp_settings_set_string(settings, FreeRDP_GatewayAzureActiveDirectory, "login.microsoftonline.com")) goto out_fail; if (!freerdp_settings_set_string(settings, FreeRDP_GatewayAvdAadtenantid, "common")) diff --git a/libfreerdp/core/test/settings_property_lists.h b/libfreerdp/core/test/settings_property_lists.h index e6d46971c..fe568d573 100644 --- a/libfreerdp/core/test/settings_property_lists.h +++ b/libfreerdp/core/test/settings_property_lists.h @@ -395,6 +395,7 @@ static const size_t string_list_indices[] = { FreeRDP_GatewayAvdGeo, FreeRDP_GatewayAvdHubdiscoverygeourl, FreeRDP_GatewayAvdWvdEndpointPool, + FreeRDP_GatewayAzureActiveDirectory, FreeRDP_GatewayDomain, FreeRDP_GatewayHostname, FreeRDP_GatewayHttpExtAuthBearer,