Add-WebApplicationProxyApplication
Publishes a web application through Web Application Proxy.
Syntax
Add-WebApplicationProxyApplication
[-Name] <String>
[-ExternalPreauthentication <String>]
[-ClientCertificateAuthenticationBindingMode <String>]
[-BackendServerCertificateValidation <String>]
-ExternalUrl <String>
[-ExternalCertificateThumbprint <String>]
[-EnableSignOut]
[-InactiveTransactionsTimeoutSec <UInt32>]
[-ClientCertificatePreauthenticationThumbprint <String>]
[-EnableHTTPRedirect]
[-ADFSUserCertificateStore <String>]
[-DisableHttpOnlyCookieProtection]
[-PersistentAccessCookieExpirationTimeSec <UInt32>]
-BackendServerUrl <String>
[-DisableTranslateUrlInRequestHeaders]
[-DisableTranslateUrlInResponseHeaders]
[-BackendServerAuthenticationSPN <String>]
[-ADFSRelyingPartyName <String>]
[-UseOAuthAuthentication]
[-CimSession <CimSession[]>]
[-ThrottleLimit <Int32>]
[-AsJob]
[<CommonParameters>]
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 preauthentication, 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 time-out value for inactive connections.
This cmdlet supports passing multiple WebApplicationProxyApplication objects through the pipeline.
Examples
Example 1: Publish a web application
PS C:\> Add-WebApplicationProxyApplication -Name "Contoso App" -ExternalPreauthentication ADFS -ExternalUrl https://ContosoApp.Contoso.com/ -ExternalCertificateThumbprint "69DF0AB8434060DC869D37BBAEF770ED5DD0C32A" -BackendServerUrl http://ContosoApp:8080/ -ADFSRelyingPartyName "ContosoAppRP"
This command publishes a web application that specifies the value of AD FS for the ExternalPreauthentication parameter.
Example 2: Publish a web application that omits external preauthentication
PS C:\> Add-WebApplicationProxyApplication -Name "ContosoApp" -BackendServerUrl http://ContosoApp/ -ExternalUrl https://ContosoApp.Contoso.com/ -ExternalPreauthentication "PassThrough" -ExternalCertificateThumbprint "D1A657E1A4F276FCC45613C0F6B3BC91AFC4633F"
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.
Example 3: Publish an Exchange Active Sync application
PS C:\>Add-WebApplicationProxyApplication -BackendServerAuthenticationSPN 'HTTP/EXCH1.contoso.com' -BackendServerUrl 'https://extmail.contoso.com/Microsoft-Server-ActiveSync/' -ExternalCertificateThumbprint '27A3F96517C27443207BBFE94FA65E1B154170BB' -EnableHTTPRedirect -ExternalUrl 'https://extmail.contoso.com/Microsoft-Server-ActiveSync/' -Name 'ActiveSync' -ExternalPreAuthentication ADFSforRichClients -ADFSRelyingPartyName 'ActiveSync' -ADFSUserCertificateStore 'Root'
This command publishes an Exchange Active Sync application. The application uses Integrated Windows Authentication with (IWA) Kerberos Constrained Delegation (KCD).
Parameters
-ADFSRelyingPartyName
Specifies the name of the relying party configured on the AD FS federation server.
Type: | String |
Aliases: | RPName |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ADFSUserCertificateStore
Specifies the certificate store for a AD FS user.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-AsJob
Runs the cmdlet as a background job. Use this parameter to run commands that take a long time to complete.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BackendServerAuthenticationSPN
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.
Type: | String |
Aliases: | SPN |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-BackendServerCertificateValidation
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
Type: | String |
Accepted values: | None, ValidateCertificate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-BackendServerUrl
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/
Type: | String |
Aliases: | BackendUrl |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-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.
Type: | CimSession[] |
Aliases: | Session |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ClientCertificateAuthenticationBindingMode
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
Type: | String |
Accepted values: | None, ValidateCertificate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ClientCertificatePreauthenticationThumbprint
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.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DisableHttpOnlyCookieProtection
Indicates that this cmdlet disables 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EnableHTTPRedirect
Indicates that this cmdlet enables HTTP redirect for Web Application Proxy.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-EnableSignOut
Indicates whether to enable sign out for Web Application Proxy.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ExternalCertificateThumbprint
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.
Type: | String |
Aliases: | ExternalCert |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ExternalPreauthentication
Specifies the preauthentication method that Web Application Proxy uses. The acceptable values for this parameter are:
- ADFS
- ClientCertificate
- PassThrough
- ADFSforRichClients
- ADFSforOAuth
- ADFSforBrowsersAndOffice
Type: | String |
Aliases: | PreAuthN |
Accepted values: | PassThrough, ADFS, ClientCertificate, ADFSforRichClients, ADFSforOAuth, ADFSforBrowsersAndOffice |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ExternalUrl
Specifies the external address, as a URL, for the web application. Include the trailing slash (/).
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InactiveTransactionsTimeoutSec
Specifies the length of time, in seconds, until Web Application Proxy closes incomplete HTTP transactions.
Type: | UInt32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Specifies a friendly name for the published web application.
Type: | String |
Aliases: | FriendlyName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PersistentAccessCookieExpirationTimeSec
Specifies the expiration time, in seconds, for persistent access cookies.
Type: | UInt32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ThrottleLimit
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.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |