guacamole开发者文档——数据库认证

本文档详细介绍了如何在Guacamole服务器上安装和配置数据库认证扩展,支持MySQL和PostgreSQL。步骤包括下载扩展、创建数据库和用户、放置.jar文件、配置Guacamole.properties以及重启servlet容器。此外,还解释了如何进行数据库连接、用户管理以及权限设置。
      Guacamole支持通过MySQL或PostgreSQL数据库通过项目网站提供的扩展进行身份验证。使用数据库进行身份验证提供了其他功能,与默认的,由XML驱动的认证模块不同,对用户和连接的所有更改都会立即生效,用户不需要注销并返回以查看新的连接。

       虽然大多数认证扩展独立运行,但数据库认证可以在从属角色中运行,允许来自其他认证扩展的用户与数据库中的连接相关联。如果用户具有相同的用户名,则认为用户与数据库中的用户完全相同。具有多个帐户的用户将能够在成功登录后查看每个系统的数据。

要使用数据库认证扩展,需要:

     ①持的数据库 - 目前为MariaDB,MySQL或PostgreSQL。

    
②有创建新数据库,创建新用户和授予这些用户权限的足够权限。

     ③Guacamole服务器对数据库的网络访问。


下载数据库认证扩展

     数据库认证扩展可与guacamole.war分开使用。数据库认证扩展打包为.tar.gz文件,包含:

mysql /

    
包含MySQL / MariaDB身份验证扩展,guacamole-auth-jdbc-mysql-0.9.9.jar以及包含设置数据库所需的MySQL特定SQL脚本的模式/目录。 guacamole-auth-jdbc-mysql-0.9.9.jar文件最终需要放在GUACAMOLE_HOME / extensions中,而MySQL JDBC驱动程序必须放在GUACAMOLE_HOME / lib中。

    
扩展中不包括MySQL JDBC驱动程序。您必须从MySQL的网站获取JDBC驱动程序.jar。驱动程序称为“Connector / J”,所需的.jar将在.tar.gz归档文件中。

postgresql /

    
包含PostgreSQL身份验证扩展,guacamole-auth-jdbc-postgresql-0.9.9.jar,以及包含设置数据库所需的特定于PostgreSQL的SQL脚本的模式/目录。 guacamole-auth-jdbc-postgresql-0.9.9.jar文件最终将需要放在GUACAMOLE_HOME / extensions中,而PostgreSQL JDBC驱动程序必须放在GUACAMOLE_HOME / lib中。

    
PostgreSQL JDBC驱动程序不包括在扩展中。必须从PostgreSQL的网站获取JDBC驱动程序.jar。正确的.jar文件取决于安装的Java版本。

只有归档中的一个目录适用,这取决于是使用MariaDB,MySQL还是PostgreSQL。


创建Guacamole数据库

        数据库认证模块将需要一个数据库,来存储认证数据,和一个用户,来进行数据的访问与操作。您可以使用现有的数据库和现有用户,但为了简单和安全起见,将假设创建的是一个仅由Guacamole使用,并且仅用于此身份验证模块的新数据库和新用户。
 
       需要安装MariaDB,MySQL或PostgreSQL,并且必须具有足够的访问权限才能创建和管理数据库。如果不是这样,请立即安装您选择的数据库。大多数发行版将提供一个方便的MySQL或PostgreSQL软件包,它将为您设置一切,包括根数据库用户(如果适用)。

      为了清楚起见,这些指令将数据库称为“guacamole_db”,将用户称为“guacamole_user”,但数据库和用户可以按您喜欢的方式命名。当然,您还应该为您的用户选择一个真正的密码,而不是下面用作占位符的字符串“some_password”。

MySQL

    如果使用MySQL,您必须先创建数据库和用户:


      创建数据库和用户后,必须通过运行所提供的SQL脚本来应用数据库模式。 这些SQL脚本包含在您从Guacamole网站下载的存档的mysql / schema /目录中。 它们的命名方式使得它们可以使用一个命令按顺序运行:



     如果操作成功,则已成功创建所有表,并且现在可以使用数据库。


PostgreSQL

     如果使用PostgreSQL,必须首先创建数据库和模式:


     一旦数据库存在,您就可以为数据库安全地创建一个新用户,并授予该用户足够的权限来管理数据库中所有表的内容:


安装数据库认证

Guacamole扩展是自包含的.jar文件,位于GUACAMOLE_HOME / extensions目录中。要安装数据库认证扩展,您必须:

   
1.如果GUACAMOLE_HOME / extensions目录不存在,则创建它。

    2.
在GUACAMOLE_HOME / extensions中复制guacamole-auth-jdbc-mysql-0.9.9.jar或guacamole-auth-jdbc-postgresql-0.9.9.jar,具体取决于您是使用MySQL / MariaDB还是PostgreSQL。

   3.
将数据库的JDBC驱动程序复制到GUACAMOLE_HOME / lib。没有为您的数据库的JDBC驱动程序,Guacamole将无法连接和验证用户。

   4.
配置Guacamole使用数据库身份验证,如下所述。

      您将需要通过重新启动您的servlet容器,重新启动Guacamole。


   配置Guacamole进行数据库身份验证

     必须将其他属性添加到guacamole.properties以使Guacamole正确连接到数据库。 这些属性特定于正在使用的数据库,必须正确设置以使身份验证工作。

要使用MySQL数据库,您需要指定以下内容:


对于PostgreSQL,属性是相似的,但具有不同的前缀:


接下来描述如何建立与数据库的连接,以及Guacamole在查询数据库时如何认证:


请确保为您创建的数据库用户指定正确的用户名和密码,并指定正确的数据库。 如果这些参数不正确,认证将不起作用。


同时使用Guacamole连接

     数据库认证模块提供配置选项以限制连接或连接组。 这些选项通过guacamole.properties设置,并为连接和连接组指定默认并发策略。 通过属性设置的值可以稍后使用管理界面基于每个连接覆盖:

这些属性不是必需的,但是具有上述属性,尝试使用已经在使用的连接或组的用户将被拒绝访问。 默认情况下,允许并发访问。



还可以限制并发访问,使得特定用户可以仅使用连接或分组特定次数。 默认情况下,每个用户的并发使用限制为连接组(以避免允许单个用户耗尽组的内容),但在其他方面不受限制。 此默认行为可以通过guacamole.properties或管理界面中公开的每个连接设置进行修改:


上述属性替换了以前的Guacamole版本使用的“simultaneous”和“duplicate”属性。 旧的属性仍然可以工作,但现在已被弃用。 如果继续使用这些属性,您将在日志中收到警告,通知您其已弃用的状态。

完成安装

Guacamole只会重新读取guacamole.properties并在启动期间加载新安装的扩展,因此在数据库认证生效之前需要重新启动servlet容器。 重新启动您的servlet容器并尝试新的身份验证。

您只需要重新启动servlet容器。 您不需要重新启动guacd。

guacd完全独立于web应用程序,并且不以任何方式处理guacamole.properties或身份验证系统。 由于您已经重新启动servlet容器,重新启动guacd以及技术上不会伤害任何东西,但这样做是完全没有意义的。

如果Guacamole在重新启动servlet容器后没有重新联机,请检查日志。 配置数据库认证扩展时出现的问题将阻止Guacamole启动,并且任何此类错误都将记录在您的servlet容器的日志中

用户

每个用户在guacamole_user表中都有相应的条目。 每个用户都有一个相应的唯一用户名和密码。 salted密码分为两列:一个包含salt,另一个包含使用SHA-256散列的密码。

如果您选择手动设置未更改密码的哈希值,请确保您了解这样做的安全影响。

如果手动创建用户,主要的复杂性是salt,它必须在构造INSERT语句之前确定,但这可以使用变量来处理。 对于MySQL:


这种语句对于创建新用户或更改密码都很有用,特别是如果所有管理员都忘记了他们。

如果您不使用MySQL,或者您使用的是缺少SHA2功能的MySQL版本,则需要手动计算SHA-256值(例如,使用sha256sum命令)。

连接和参数

每个连接在guacamole_connection表中都有一个条目,与参数具有一对多关系,在guacamole_connection_parameter表中存储为名称/值对。

guacamole_connection表只是一个唯一的描述性名称与用于连接的协议的配对。

使用历史

当启动或终止连接时,将分别创建或更新guacamole_connection_history表中的相应条目。 每个条目都与使用连接的用户,连接本身以及连接开始的时间相关联。 如果连接已结束,则还存储结束时间。

用户不太可能需要更新此表,但是如果您想生成Guacamole使用情况的报告,则知道结构是非常有用的。

连接组

每个连接组在guacamole_connection_group表中都有一个条目,与其他组和连接具有一对多关系。

guacamole_connection_group表只是一个具有组类型的唯一和描述性名称的配对,可以是ORGANIZATIONAL或BALANCING。

权限

模式中有三个权限表,它们对应于Guacamole的认证模型中的三种权限类型:系统权限(控制影响整个系统的操作)以及用户和连接权限(控制影响特定现有用户的操作) 或连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值