Add-WebApplicationProxyApplication

Add-WebApplicationProxyApplication

Publishes a web application through Web Application Proxy.

Syntax

Parameter Set: Add0
Add-WebApplicationProxyApplication [-Name] <String> -BackendServerUrl <Uri> -ExternalCertificateThumbprint <String> -ExternalUrl <Uri> [-ADFSRelyingPartyName <String> ] [-AsJob] [-BackendServerAuthenticationSPN <String> ] [-BackendServerCertificateValidation <String> ] [-CimSession <CimSession[]> ] [-ClientCertificateAuthenticationBindingMode <String> ] [-ClientCertificatePreauthenticationThumbprint <String> ] [-DisableHttpOnlyCookieProtection] [-DisableTranslateUrlInRequestHeaders] [-DisableTranslateUrlInResponseHeaders] [-ExternalPreauthentication <String> ] [-InactiveTransactionsTimeoutSec <UInt32> ] [-ThrottleLimit <Int32> ] [-UseOAuthAuthentication] [ <CommonParameters>]

Detailed Description

The Add-WebApplicationProxyApplication cmdlet publishes a web application through Web Application Proxy. Use this cmdlet to specify a name for the web application, and to provide an external address and the address of the backend server. External clients connect to the external address to access the web application hosted by the backend server. The cmdlet checks the external address to verify that no other published web application uses it on any of the proxies in the current Active Directory Federation Services (AD FS) installation.

You can specify the relying party for use with AD FS, the service principal name (SPN) of the backend server, a certificate thumbprint for the external address, the method of pre-authentication, and whether the proxy provides the URL of the federation server to users of Open Authorization (OAuth). You can also specify whether the application proxy validates the certificate from the backend server and verifies whether the certificate that authenticates the federation server authenticates future requests.

The proxy can translate URLs in headers. You can disable translation in either request or response headers, or both.

You can also specify a timeout value for inactive connections.

This cmdlet supports passing multiple WebApplicationProxyApplication objects through the pipeline.

Parameters

-ADFSRelyingPartyName<String>

Specifies the name of the relying party configured on the AD FS federation server.

Aliases

RPName

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-AsJob

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-BackendServerAuthenticationSPN<String>

Specifies the service principal name (SPN) of the backend server. Use this parameter if the application that the backend server hosts uses Integrated Windows authentication.

Aliases

SPN

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-BackendServerCertificateValidation<String>

Specifies whether Web Application Proxy validates the certificate that the backend server presents with the WAP configuration per application. The acceptable values for this parameter are:
-- None
-- ValidateCertificate

Aliases

none

Required?

false

Position?

named

Default Value

None

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-BackendServerUrl<Uri>

Specifies the backend address of the web application. Specify by protocol and host name or IP address. Include the trailing slash (/). You can also include a port number and path. The following examples show the form of an address:

-- http://AccountingApp.Contoso.com/
-- http://Mail.Contoso.com/Remote/
-- http://Portal/

Aliases

BackendUrl

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-CimSession<CimSession[]>

Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.

Aliases

Session

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ClientCertificateAuthenticationBindingMode<String>

If this parameter is set to ValidateCertificate then the browser sends a certificate with each request and validates that the device certificate thumbprint from the certificate is included in the token or the cookie. The acceptable values for this parameter are:

-- None
-- ValidateCertificate

Aliases

none

Required?

false

Position?

named

Default Value

None

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-ClientCertificatePreauthenticationThumbprint<String>

Specifies the certificate thumbprint, as a string, of the certificate that a client supplies for the preauthentication feature. The thumbprint is 40 hexadecimal characters. This parameter is only relevant when you specify the value of ClientCertificate for the ExternalPreauthentication parameter.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-DisableTranslateUrlInRequestHeaders

Indicates that Web Application Proxy does not translate HTTP host headers from public host headers to internal host headers when it forwards the request to the published application.

Specify this parameter if the application uses path-based information.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-DisableHttpOnlyCookieProtection

Indicates whether to disable the use of the HttpOnly flag when Web Application Proxy sets the access cookie. The access cookie provides single sign-on access to an application.

Important: by default, HttpOnly is enabled to help ensure network protection. If you disable HttpOnly flag protection, the browser may share this cookie with other components on the client device, such as ActiveX, Java Applets and JavaScript, so they can access this application without the need to perform additional preauthentication

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-DisableTranslateUrlInResponseHeaders

Indicates that Web Application Proxy does not translate internal host names to public host names in Content-Location, Location, and Set-Cookie response headers in redirect responses.

If the proxy does not translate host names in the Content-Location or Location response headers, subsequent client requests resolve incorrectly. If the proxy does not translate the host name in the Set-Cookie response header, the published web application might not use cookies properly.

Aliases

none

Required?

false

Position?

named

Default Value

false

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-ExternalCertificateThumbprint<String>

Specifies the certificate thumbprint, as a string, of the certificate to use for the address specified by the ExternalUrl parameter. The thumbprint is 40 hexadecimal characters.

The certificate must exist in the Local Computer or Local Personal certificate store. You can use a simple certificate, a subject alternative name (SAN) certificate, or a wildcard certificate.

Aliases

ExternalCert

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-ExternalPreauthentication<String>

Specifies the pre-authentication method that Web Application Proxy uses. The acceptable values for this parameter are:

-- ADFS
-- ClientCertificate
-- PassThrough

Aliases

PreAuthN

Required?

false

Position?

named

Default Value

ADFS

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-ExternalUrl<Uri>

Specifies the external address, as a URL, for the web application. Include the trailing slash (/).

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-InactiveTransactionsTimeoutSec<UInt32>

Specifies the length of time, in seconds, until Web Application Proxy closes incomplete HTTP transactions.

Aliases

none

Required?

false

Position?

named

Default Value

300

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-Name<String>

Specifies a friendly name for the published web application.

Aliases

FriendlyName

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-ThrottleLimit<Int32>

Specifies the maximum number of concurrent operations that can be established to run the cmdlet. If this parameter is omitted or a value of 0 is entered, then Windows PowerShell® calculates an optimum throttle limit for the cmdlet based on the number of CIM cmdlets that are running on the computer. The throttle limit applies only to the current cmdlet, not to the session or to the computer. Do not specify a value for this parameter greater than 1.

Aliases

none

Required?

false

Position?

named

Default Value

1

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-UseOAuthAuthentication

Indicates that Web Application Proxy provides the URL of the federation server that performs Open Authorization (OAuth) when users connect to the application by using a Windows Store app.

Aliases

none

Required?

false

Position?

named

Default Value

false

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

<CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see    about_CommonParameters (https://go.microsoft.com/fwlink/p/?LinkID=113216).

Inputs

The input type is the type of the objects that you can pipe to the cmdlet.

Outputs

The output type is the type of the objects that the cmdlet emits.

Examples

Example 1: Publish a web application

This command publishes a web application that specifies the value of AD FS for the ExternalPreauthentication parameter.

PS C:\> Add-WebApplicationProxyApplication -Name "Contoso App" -ExternalPreauthentication ADFS -ExternalUrl https://ContosoApp.Contoso.com/ -ExternalCertificateThumbprint "69DF0AB8434060DC869D37BBAEF770ED5DD0C32A" -BackendServerUrl http://ContosoApp:8080/ -ADFSRelyingPartyName "ContosoAppRP"

Example 2: Publish a web application that omits external preauthentication

This command publishes a web application named ContosoApp. The command specifies a backend server URL and an external URL. The application uses pass-through preauthentication.

PS C:\> Add-WebApplicationProxyApplication -Name "ContosoApp" -BackendServerUrl http://ContosoApp/ -ExternalUrl https://ContosoApp.Contoso.com/ -ExternalPreauthentication "PassThrough" -ExternalCertificateThumbprint "D1A657E1A4F276FCC45613C0F6B3BC91AFC4633F"

Get-WebApplicationProxyApplication

Remove-WebApplicationProxyApplication

Set-WebApplicationProxyApplication

Web Application Proxy Overview

Publishing Internal Applications using Web Application Proxy