mirror of
https://github.com/morgan9e/FreeRDP
synced 2026-04-14 00:14:11 +09:00
[core,gateway] Make tenantid use optional
This commit is contained in:
@@ -1099,8 +1099,12 @@ static BOOL client_cli_get_avd_access_token(freerdp* instance, char** token)
|
||||
freerdp_settings_get_string(instance->context->settings, FreeRDP_GatewayAvdClientID);
|
||||
const char* base = freerdp_settings_get_string(instance->context->settings,
|
||||
FreeRDP_GatewayAzureActiveDirectory);
|
||||
const char* tenantid =
|
||||
freerdp_settings_get_string(instance->context->settings, FreeRDP_GatewayAvdAadtenantid);
|
||||
const BOOL useTenant =
|
||||
freerdp_settings_get_bool(instance->context->settings, FreeRDP_GatewayAvdUseTenantid);
|
||||
const char* tenantid = "common";
|
||||
if (useTenant)
|
||||
tenantid =
|
||||
freerdp_settings_get_string(instance->context->settings, FreeRDP_GatewayAvdAadtenantid);
|
||||
if (!base || !tenantid || !client_id)
|
||||
goto cleanup;
|
||||
|
||||
|
||||
@@ -3722,6 +3722,25 @@ static int parse_aad_options(rdpSettings* settings, const COMMAND_LINE_ARGUMENT_
|
||||
BOOL handled = FALSE;
|
||||
const char* val = ptr[x];
|
||||
|
||||
if (option_starts_with("use-tenantid", val))
|
||||
{
|
||||
PARSE_ON_OFF_RESULT bval = parse_on_off_option(val);
|
||||
if (bval == PARSE_FAIL)
|
||||
{
|
||||
rc = COMMAND_LINE_ERROR_UNEXPECTED_VALUE;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!freerdp_settings_set_bool(settings, FreeRDP_GatewayAvdUseTenantid,
|
||||
bval != PARSE_OFF))
|
||||
{
|
||||
rc = COMMAND_LINE_ERROR_UNEXPECTED_VALUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
for (size_t y = 0; y < ARRAYSIZE(amap); y++)
|
||||
{
|
||||
const struct app_map* cur = &amap[y];
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
|
||||
static const COMMAND_LINE_ARGUMENT_A global_cmd_args[] = {
|
||||
{ "a", COMMAND_LINE_VALUE_REQUIRED, "<addin>[,<options>]", NULL, NULL, -1, "addin", "Addin" },
|
||||
{ "azure", COMMAND_LINE_VALUE_REQUIRED, "[tenantid:<id>],[ad:<url>]", NULL, NULL, -1, NULL,
|
||||
"AzureAD options" },
|
||||
{ "azure", COMMAND_LINE_VALUE_REQUIRED, "[tenantid:<id>],[use-tenantid[:[on|off]],[ad:<url>]",
|
||||
NULL, NULL, -1, NULL, "AzureAD options" },
|
||||
{ "action-script", COMMAND_LINE_VALUE_REQUIRED, "<file-name>", "~/.config/freerdp/action.sh",
|
||||
NULL, -1, NULL, "Action script" },
|
||||
{ "admin", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, "console",
|
||||
|
||||
@@ -495,7 +495,10 @@ struct rdp_settings
|
||||
SETTINGS_DEPRECATED(ALIGN64 UINT16 ProxyPort); /* 2017 */
|
||||
SETTINGS_DEPRECATED(ALIGN64 char* ProxyUsername); /* 2018 */
|
||||
SETTINGS_DEPRECATED(ALIGN64 char* ProxyPassword); /* 2019 */
|
||||
UINT64 padding2112[2112 - 2020]; /* 2020 */
|
||||
SETTINGS_DEPRECATED(ALIGN64 BOOL GatewayAvdUseTenantid); /** 2020
|
||||
* @since version 3.10.0
|
||||
*/
|
||||
UINT64 padding2112[2112 - 2021]; /* 2021 */
|
||||
|
||||
/**
|
||||
* RemoteApp
|
||||
|
||||
@@ -240,6 +240,9 @@ BOOL freerdp_settings_get_bool(const rdpSettings* settings, FreeRDP_Settings_Key
|
||||
case FreeRDP_GatewayArmTransport:
|
||||
return settings->GatewayArmTransport;
|
||||
|
||||
case FreeRDP_GatewayAvdUseTenantid:
|
||||
return settings->GatewayAvdUseTenantid;
|
||||
|
||||
case FreeRDP_GatewayBypassLocal:
|
||||
return settings->GatewayBypassLocal;
|
||||
|
||||
@@ -904,6 +907,10 @@ BOOL freerdp_settings_set_bool(rdpSettings* settings, FreeRDP_Settings_Keys_Bool
|
||||
settings->GatewayArmTransport = cnv.c;
|
||||
break;
|
||||
|
||||
case FreeRDP_GatewayAvdUseTenantid:
|
||||
settings->GatewayAvdUseTenantid = cnv.c;
|
||||
break;
|
||||
|
||||
case FreeRDP_GatewayBypassLocal:
|
||||
settings->GatewayBypassLocal = cnv.c;
|
||||
break;
|
||||
|
||||
@@ -109,6 +109,7 @@ static const struct settings_str_entry settings_map[] = {
|
||||
"FreeRDP_FrameMarkerCommandEnabled" },
|
||||
{ FreeRDP_Fullscreen, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_Fullscreen" },
|
||||
{ FreeRDP_GatewayArmTransport, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GatewayArmTransport" },
|
||||
{ FreeRDP_GatewayAvdUseTenantid, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GatewayAvdUseTenantid" },
|
||||
{ FreeRDP_GatewayBypassLocal, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GatewayBypassLocal" },
|
||||
{ FreeRDP_GatewayEnabled, FREERDP_SETTINGS_TYPE_BOOL, "FreeRDP_GatewayEnabled" },
|
||||
{ FreeRDP_GatewayHttpExtAuthSspiNtlm, FREERDP_SETTINGS_TYPE_BOOL,
|
||||
|
||||
@@ -868,8 +868,12 @@ BOOL aad_fetch_wellknown(rdpAad* aad)
|
||||
|
||||
const char* base =
|
||||
freerdp_settings_get_string(aad->rdpcontext->settings, FreeRDP_GatewayAzureActiveDirectory);
|
||||
const char* tenantid =
|
||||
freerdp_settings_get_string(aad->rdpcontext->settings, FreeRDP_GatewayAvdAadtenantid);
|
||||
const BOOL useTenant =
|
||||
freerdp_settings_get_bool(aad->rdpcontext->settings, FreeRDP_GatewayAvdUseTenantid);
|
||||
const char* tenantid = "common";
|
||||
if (useTenant)
|
||||
tenantid =
|
||||
freerdp_settings_get_string(aad->rdpcontext->settings, FreeRDP_GatewayAvdAadtenantid);
|
||||
rdp->wellknown = freerdp_utils_aad_get_wellknown(aad->log, base, tenantid);
|
||||
return rdp->wellknown ? TRUE : FALSE;
|
||||
}
|
||||
|
||||
@@ -170,8 +170,12 @@ static BOOL arm_fetch_wellknown(rdpArm* arm)
|
||||
|
||||
const char* base =
|
||||
freerdp_settings_get_string(arm->context->settings, FreeRDP_GatewayAzureActiveDirectory);
|
||||
const char* tenantid =
|
||||
freerdp_settings_get_string(arm->context->settings, FreeRDP_GatewayAvdAadtenantid);
|
||||
const BOOL useTenant =
|
||||
freerdp_settings_get_bool(arm->context->settings, FreeRDP_GatewayAvdUseTenantid);
|
||||
const char* tenantid = "common";
|
||||
if (useTenant)
|
||||
tenantid =
|
||||
freerdp_settings_get_string(arm->context->settings, FreeRDP_GatewayAvdAadtenantid);
|
||||
|
||||
rdp->wellknown = freerdp_utils_aad_get_wellknown(arm->log, base, tenantid);
|
||||
return rdp->wellknown ? TRUE : FALSE;
|
||||
|
||||
@@ -829,6 +829,8 @@ rdpSettings* freerdp_settings_new(DWORD flags)
|
||||
goto out_fail;
|
||||
if (!freerdp_settings_set_string(settings, FreeRDP_GatewayAvdAadtenantid, "common"))
|
||||
goto out_fail;
|
||||
if (!freerdp_settings_set_bool(settings, FreeRDP_GatewayAvdUseTenantid, FALSE))
|
||||
goto out_fail;
|
||||
if (!freerdp_settings_set_uint32(settings, FreeRDP_DesktopPhysicalWidth, 1000))
|
||||
goto out_fail;
|
||||
if (!freerdp_settings_set_uint32(settings, FreeRDP_DesktopPhysicalHeight, 1000))
|
||||
|
||||
@@ -64,6 +64,7 @@ static const size_t bool_list_indices[] = {
|
||||
FreeRDP_FrameMarkerCommandEnabled,
|
||||
FreeRDP_Fullscreen,
|
||||
FreeRDP_GatewayArmTransport,
|
||||
FreeRDP_GatewayAvdUseTenantid,
|
||||
FreeRDP_GatewayBypassLocal,
|
||||
FreeRDP_GatewayEnabled,
|
||||
FreeRDP_GatewayHttpExtAuthSspiNtlm,
|
||||
|
||||
Reference in New Issue
Block a user