Microsoft Remote Desktop Web Access (Microsoft RD Web Access) is a Remote Desktop Services role in Windows Server 2016 (and later) that allows users to remotely access the desktop where they have remote desktop access (RDP). Use this guide to integrate SecureAuth® Identity Platform (formerly SecureAuth IdP) and enable secure, single sign-on (SSO) access via WS-Federation to use RD Web Access. Windows Identity Foundation (WIF) is a Microsoft software framework used to build identity-aware applications, and is a core component that must be installed on both the RD Web Access and the Identity Platform servers before configuration. Add the following line to the code: Set Claims to Windows Token Service (C2WTS). According to Microsoft, ensure that Cryptographic Services service (CryptSvc) is guaranteed to start before Claims to Windows Token Service by explicitly adding the following dependency in the service definition. In the Post Authentication section, set Authenticated User Redirect to WS-Federation Assertion. For an alternate configuration, see the Troubleshooting and common issues section at the end of this topic. In the User ID Mapping section, set the following: Leave the default value as urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified. If the service provider (SP) provides a different format for the RD Web Access, select a different option. In the SAML Assertion / WS-Federation section, set the following: Set to the fully qualified domain name (FQDN) of the Identity Platform appliance, followed by the current RD Web Access integration realm, for example, https://company.secureauth.com/secureauth2. Signing Cert Serial Number Leave this field as default, unless using a third-party certificate. To choose a different certificate, click the Select Certificate link. In the SAML Attributes / WS-Federation section, set the following for Attribute 1: Set to Aux ID 9 (default). For example, Aux ID 9 was used on the Data tab to map UPN. Configure the RD Web Access Server to integrate with the Identity Platform. Make a backup of the existing web.config file before making any modifications. At the top of the file, after the <configuration> tag, add the following lines: After the <system.web> tag, add the following lines: After the <system.web> tag, modify and add the <authorization> and <authentication> tags to display the following lines: Edit the <modules> tag to <modules runAllManagedModulesForAllRequests="true">. In the <modules> section, add the following lines shown in the code block. You must place the lines before any existing lines that begin with <add name=. Copy and paste the Thumbprint value into a text editor (see the following code example in line 28). Important: Remove all spaces and change all letters to uppercase. In the </runtime> section, from the following code block, copy and add the following lines (1-34). And do the following: In lines 7, 20, and 28, replace the values between the @@@ with the actual FQDN of the Identity Platform appliance and integrated realm number for RD Web Access Server. For example, secureauth.com/company.com/secureauth2. Replace RDWeb-FQDN with the actual FQDN of the RD Web Access Server. The issuer value in the code must match the WSFed/SAML Issuer value set in the Identity Platform Web Admin (Identity Platform configuration step 4). To test the configuration, access the RD Web Access Server page URL directly or from the Identity Platform realm. When a page displays the application icons, this indicates a successful access into the RD Web Access application. Issue Parameters are not passed correctly to the WSFedProvider.aspx page during execution. Workaround Do the following in lieu of Identity Platform configuration, step 2: Set Redirect To to include the following parameters as part of the URL, for example: Issue An exception message occurs: "Exception message: ID4175: The issuer of the security token was not recognized by the IssuerNameRegistry. To accept security tokens from this issuer, configure the IssuerNameRegistry to return a valid name for this issuer." Workaround In the RD Web Access application log, where the Identity Platform redirects back to the RD Web Access server after authentication, manually type the certificate thumbprint and trusted issuer name instead of copying and pasting this information. The thumbprint must still be in ALL CAPS with spaces removed.Prerequisites
Windows Identity Foundation (WIF) configuration
Use the Roles and Features Installer.<allowedCallers>
<clear />
<add value= "IIS APPPOOL\RDWebAccess" />
</allowedCallers>
sc config c2swts depend= CryptSvc.
Identity Platform configuration
An unalterable URL is auto-populated in the Redirect To field, which appends to the domain name and realm number in the address bar (Authorized/WSFedProvider.aspx)User ID Mapping Set to Authenticated User ID. Name ID Format WSFed Reply To/SAML Target URL Set to https://<RDWeb-FQDN>/RDWeb/Pages/. WSFed/SAML Issuer SAML Audience Set to urn:microsoft:rdweb. WS-Fed Version Set the version to 1.3. Assertion Signing Certificate Download the Assertion Signing Certificate, which is used in the RD Web Access configuration procedure. Name Set to UPN. Namespace (1.1) Set to http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn . Format Set to Basic (default). Value RD Web Access Server configuration
Update the RD Web Access Application Pool
Update the RD Web Access web.config file
<!-- SecureAuth -->
<configSections>
<section name= "microsoft.identityModel" type= "Microsoft.IdentityModel.Configuration.MicrosoftIdentityModelSection, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
<!-- /SecureAuth -->
<!-- SecureAuth -->
<httpRuntime targetFramework= "4.5" requestValidationMode="2.0"/>
<pages validateRequest="false"/>
<!-- /SecureAuth -->
<!-- SecureAuth -->
<authorization><deny users="?"/></authorization>
<authentication mode="Windows"/>
<!-- /SecureAuth -->
<!-- SecureAuth -->
<add name= "WSFederationAuthenticationModule" type= "Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition= "managedHandler" />
<add name= "SessionAuthenticationModule" type= "Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition= "managedHandler" />
<!-- /SecureAuth -->
<!--SecureAuth-->
<microsoft.identityModel>
<service>
<audienceUris>
<add value= "urn:microsoft:rdweb" />
<add value= "@@@https://RDWeb-FQDN/RDWeb/Pages/@@@" />
</audienceUris>
<securityTokenHandlers>
<remove type= "Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add type= "Microsoft.IdentityModel.Tokens.SessionSecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" >
<sessionTokenRequirement useWindowsTokenService= "true" />
</add>
<add type= "Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" >
<samlSecurityTokenRequirement mapToWindows= "true" useWindowsTokenService= "true" />
</add>
</securityTokenHandlers>
<federatedAuthentication>
<wsFederation passiveRedirectEnabled= "true" issuer= "@@@https://<SecureAuthIdPFQDN/RDWebAccessIntegratedRealm/@@@" realm= "@@@https://RDWeb-FQDN/RDWeb/Pages/@@@" requireHttps= "true" />
<cookieHandler requireSsl= "false" />
</federatedAuthentication>
<applicationService>
</applicationService>
<issuerNameRegistry type= "Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" >
<trustedIssuers>
<add thumbprint= "@@@A1B2C3D4E5F6A1B2C3D4E5F6A1B2C3D4E5F6ABCD@@@" name= "@@@https://<SecureAuthIdPFQDN/RDWebAccessIntegratedRealm@@@" />
</trustedIssuers>
</issuerNameRegistry>
<certificateValidation certificateValidationMode= "None" />
</service>
</microsoft.identityModel>
<!--/SecureAuth-->
Test the configuration
Troubleshooting and common issues
Authorized/WSFedProvider.aspx?wa=wsignin1.0&wtrealm=https%3a%2f%2f<RDWebAccessServerURL>%2fRDWeb%2fPages%2f&wctx=rm%3d0%26id%3dpassive%26ru%3d%252fRDWeb%252fPages%252f
Parameters not passing to the WSFedProvider.aspx page
ID4175 exception message