Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 44D8F200BBA for ; Sat, 5 Nov 2016 07:34:25 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 43696160AEF; Sat, 5 Nov 2016 06:34:25 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 65676160AE0 for ; Sat, 5 Nov 2016 07:34:24 +0100 (CET) Received: (qmail 98656 invoked by uid 500); 5 Nov 2016 06:34:23 -0000 Mailing-List: contact user-help@guacamole.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@guacamole.incubator.apache.org Delivered-To: mailing list user@guacamole.incubator.apache.org Received: (qmail 98646 invoked by uid 99); 5 Nov 2016 06:34:23 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 05 Nov 2016 06:34:23 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id CD3B3C166E for ; Sat, 5 Nov 2016 06:34:22 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 1.798 X-Spam-Level: * X-Spam-Status: No, score=1.798 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=2, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=guac-dev-org.20150623.gappssmtp.com Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id VTQvjy7OwIHn for ; Sat, 5 Nov 2016 06:34:20 +0000 (UTC) Received: from mail-ua0-f176.google.com (mail-ua0-f176.google.com [209.85.217.176]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id EB4FB5F246 for ; Sat, 5 Nov 2016 06:34:19 +0000 (UTC) Received: by mail-ua0-f176.google.com with SMTP id 12so83261619uas.2 for ; Fri, 04 Nov 2016 23:34:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=guac-dev-org.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=x2VHWHh5+H1GPjsu6A91NjF2nOVYII0XNojtFIUoBUI=; b=CJT8GeCdnhz9QyMig82WUofDPuyb4SblX4D6XbWIrAegYjSwbgC0zMoEOdDqtnGDWb 1bdCdNQIToN0YQM0UXYo7n/0iC4iD3G/1YJJogE99g1IW1BbOBLk8/VALvcoHaNaGITU QsE77ctbFdm386bRSC+0HVXI39d9c2FhT0OGP+exw5+swND6FSiZXROlf1z5uqrviq0N C5yFwWmxPa1h/xFvwSYqB5rZD5bHO+Y8yqBf5H13ux77Z/hQnXbQLp9wsuDJpen7Ffup +/eaeAM21G+uzCpDyd+/EaXAy8Gxt3On5cAzM5aEVSbekTtfstz2ozqcBl8jP4vujqvY uP8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=x2VHWHh5+H1GPjsu6A91NjF2nOVYII0XNojtFIUoBUI=; b=f4+ULtsEjpVqMTwkM0RrvYZm+AGKkk991cWd+MoAvdZvuofX/U41gUpiVodmAq7btb z+sQvRop1dXALgw+mmlE7HoN9e5oEu/VOfh0x/OdpnU3XwHtnllQZJz6asK5Yq902wln /gEUfgsTmpa7YE+LwPkGEk694dPPCFlHs62Oc74cDy2yI0j99s+u5Fbf8t9YFBnyLYEW kbfB5M7KUCjQWjAqo+wNL5HkDNh5TtSX3mFjT07wInouJIQjVXTL84pUQzc1JfZO1BEX O+cHaumgFn4LC/98Do5QfgLUaPLOU6kFQ81LsSlPACoSe+84OZ1n2wkKuH/tMJfl7TeU FZEQ== X-Gm-Message-State: ABUngvfbx04DCndFo6GsY+DGQxm/Xi4Qus88WRKl2Ed4Qo2f6dbwv5iiyyf+fDPMm1BIwpbE36976Ve5bKXK8A== X-Received: by 10.176.3.84 with SMTP id 78mr13768441uat.117.1478327658811; Fri, 04 Nov 2016 23:34:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.83.221 with HTTP; Fri, 4 Nov 2016 23:34:18 -0700 (PDT) X-Originating-IP: [67.164.58.106] In-Reply-To: References: From: Mike Jumper Date: Fri, 4 Nov 2016 23:34:18 -0700 Message-ID: Subject: Re: Apache front end with HTTP Basic authentication Windows AD LDAP - username and password tokens To: user@guacamole.incubator.apache.org Content-Type: multipart/alternative; boundary=001a113f0326f728c3054087fa3d archived-at: Sat, 05 Nov 2016 06:34:25 -0000 --001a113f0326f728c3054087fa3d Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Mon, Oct 31, 2016 at 6:51 AM, Patrick L Archibald (PLA) =E2=98=AE < patrick.archibald@gmail.com> wrote: > Hi, > > Our Intranet is an Apache front end configured with HTTP Basic > authentication via LDAP to a Windows AD. Apache uses ProxyPass > websocket-tunnel to the Guac Tomcat application server. > > I would like to pass the HTTP Basic authentication user name and > password to Windows 2008 R2 RDS VMs and Windows 7 VMs. Guacamole will do this automatically, at least in part. If the "Authorization" header is present from HTTP Basic authentication, Guacamole's authentication system will automatically pull the username and password and pass them to installed authentication extensions. > I had noauth-config.xml configured like so: > If you want usernames or passwords to have any meaning, using NoAuth (the extension which effectively neuters the authentication system) is definitely not the way to go. More on this below. > Before I roll my own authentication, is there a BASIC_USERNAME and > BASIC_PASSWORD token? > > There are no such tokens, but if there is no true separation of identity between the user authenticating via HTTP Basic and the user authenticating with the RDP server, I think it would be a mistake to try to force such a separation within Guacamole. It would be better to embrace Guacamole's concept of a user and credentials, and allow the layers to communicate properly. For an arbitrary user X, you currently have the following layers, connected in order: 1) Proxy (configured to verify and recognize user X) 2) Guacamole (configured to not recognize anyone thanks to NoAuth) 3) RDP (configured to verify and recognize user X) The system here breaks down because the middle layer (Guacamole) has been explicitly configured to not care about identity. What you should be doing instead is: 1) Proxy (configured to verify and recognize user X) 2) Guacamole (configured to verify and recognize user X) 3) RDP (configured to verify and recognize user X) If each layer is configured to verify and recognize the user in the same way, then each layer will function as expected, including the behavior of things like the ${GUAC_USERNAME} and ${GUAC_PASSWORD} tokens. Any other suggestions? > > I'd recommend using the LDAP authentication included with Guacamole, either on its own or together with a database. As long as you configure the LDAP authentication to use the same Windows AD server as your proxy, the username/password within the HTTP Basic authentication will just magically work, and users will not need to manually log in. You would end up with a system which re-verifies the credentials provided, and then pulls connection data from elsewhere. If eventually someone manages to access your Guacamole server without going through your authenticating proxy, Guacamole would itself enforce authentication, and things remain secure. Thanks, - Mike --001a113f0326f728c3054087fa3d Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
On M= on, Oct 31, 2016 at 6:51 AM, Patrick L Archibald (PLA) =E2=98=AE <patrick.archibald@gmail.com> wrote:
Hi,

Our Intranet is an Apache front end configured with HTTP Basic
authentication via LDAP to a Windows AD. Apache uses ProxyPass
websocket-tunnel to the Guac Tomcat application server.

I would like to pass the HTTP Basic authentication user name and
password to Windows 2008 R2 RDS VMs and Windows 7 VMs.
Guacamole will do this automatically, at least in part. If the = "Authorization" header is present from HTTP Basic authentication,= Guacamole's authentication system will automatically pull the username= and password and pass them to installed authentication extensions.
=C2=A0
I had=C2= =A0noauth-config.xml configured like so:

If you want usernames or passwords to have any meaning, using NoAuth (the= extension which effectively neuters the authentication system) is definite= ly not the way to go. More on this below.


Before I roll my own authentication, is there a BASIC_USERNAME and
BASIC_PASSWORD token?


There are no such tokens, but if there= is no true separation of identity between the user authenticating via HTTP= Basic and the user authenticating with the RDP server, I think it would be= a mistake to try to force such a separation within Guacamole. It would be = better to embrace Guacamole's concept of a user and credentials, and al= low the layers to communicate properly.

For an arb= itrary user X, you currently have the following layers, connected in order:=

1) Proxy (configured to verify and recognize user= X)
2) Guacamole (configured to not recognize anyone thanks to No= Auth)
3) RDP=C2=A0(configured to verify and recognize user X)

The system here breaks down because the middle layer = (Guacamole) has been explicitly configured to not care about identity. What= you should be doing instead is:

1) Proxy (co= nfigured to verify and recognize user X)
2) Guacamole=C2=A0(confi= gured to verify and recognize user X)
3) RDP=C2=A0(configured to = verify and recognize user X)

If each layer i= s configured to verify and recognize the user in the same way, then each la= yer will function as expected, including the behavior of things like the ${= GUAC_USERNAME} and ${GUAC_PASSWORD} tokens.

Any other suggestions?


I'd recommend using the LDAP authe= ntication included with Guacamole, either on its own or together with a dat= abase. As long as you configure the LDAP authentication to use the same Win= dows AD server as your proxy, the username/password within the HTTP Basic a= uthentication will just magically work, and users will not need to manually= log in.

You would end up with a system which re-v= erifies the credentials provided, and then pulls connection data from elsew= here. If eventually someone manages to access your Guacamole server without= going through your authenticating proxy, Guacamole would itself enforce au= thentication, and things remain secure.

Thanks= ,

- Mike

--001a113f0326f728c3054087fa3d--