我已经设法使用运行服务器 2016 的活动目录服务器设置 ldap 身份验证。我可以使用 AD 帐户完美地向 guacamole 进行身份验证。
现在开始分配 AD 用户桌面。我们在所有连接上都使用 RDP。我想要做的是向每个用户展示他们自己的工作桌面。我已设法使用 user-mappings.xml 文件将桌面映射到 Ldap 用户。但我必须将纯文本密码添加到文件中,从安全角度来看,或者如果用户更改密码,这不太好。
这是我的 user-mappings.xml 对于 LDAP 用户的示例:
<authorize username="USERNAME" password="PASSWORD">
<protocol>rdp</protocol>
<param name="hostname">x.x.x.x</param>
<param name="port">3389</param>
<param name="security">tls</param>
</authorize>
问题在于顶部的 USERNAME 和 PASSWORD 部分。有什么方法可以做到这一点而无需指定用户的用户名和密码吗?
有人能向我解释一下如何为 ldap 用户分配域加入的桌面吗?我厌倦了使用 Google 文档教程,但当编辑 Active Directory 上的架构时,我遇到了大量错误。有人有最新的教程吗?
答案1
参数标记
(http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens)
连接参数的值可以包含“令牌”,使用时将被 Guacamole 替换。这些令牌允许连接参数的值根据使用连接的用户而动态变化,并提供一种简单的转发身份验证信息的方法,而无需将该信息存储在连接配置本身中,只要远程桌面连接使用与 Guacamole 相同的凭据即可。
每个标记的形式为 ${TOKEN_NAME},其中 TOKEN_NAME 是该标记所代表的值的描述性名称。没有对应值的标记永远不会被替换,但如果您需要在连接参数中使用这些文本,并且希望保证这些文本不会被标记值替换,您可以通过在前面添加额外的“$”来转义该标记,例如“$${TOKEN_NAME}”。
${GUAC_用户名}
当前 Guacamole 用户的用户名。当用户访问连接时,此令牌将动态替换为他们登录 Guacamole 时提供的用户名。
${GUAC_密码}
当前 Guacamole 用户的密码。当用户访问连接时,此令牌将动态替换为他们登录 Guacamole 时使用的密码。
答案2
在 guacamole user-mapping.xml 上使用 NLA 安全性:https://guacamole.apache.org/doc/0.9.0/gug/configuring-guacamole.html
LDAP:https://i12bretro.github.io/tutorials/0140.html--> 您需要知道如何使用 Active Directory 上的属性编辑器来填写字段。
转到 http://yourserverhere:8080/guacamole
以管理员用户登录:
删除:
#<param name="username">adminapg</param>
#<param name="password">ThePasswordHere</param>
------------------
# User-Mapping.xml
<user-mapping>
<authorize
username="admin"
password="copy hash md5 here"
encoding="md5">
<connection name="CentOS7">
<protocol>ssh</protocol>
<param name="hostname">120.120.10.246</param>
<param name="port">22</param>
<param name="username">root</param>
</connection>
<connection name="Windows Server">
<protocol>rdp</protocol>
<param name="hostname">120.120.12.102</param>
<param name="port">3389</param>
#<param name="username">adminapg</param>
<param name="security">nla</param>
<param name="domain">thedomainhere.com</param>
<param name="server-layout">en-us-qwerty</param>
#<param name="password">ThePasswordHere</param>
<param name="ignore-cert">true</param>
</connection>
</authorize>
</user-mapping>