README for X2Go Session Broker
==============================

X2Go Session Broker is an X2Go component that provides
session brokerage for X2Go via HTTP(S) and/or SSH.

Dependencies:

 * This version of X2Go Session Broker requires X2Go Server
   4.0.1.16 and above.
 * This version of X2Go Session Broker works with X2Go Client
   (>= 4.0.0.0) and Python X2Go (>= 0.5.0.0)
   as a client.
 * Python modules:
    - python-setuptools (build-dependency)
    - python-argparse
    - python-netaddr
    - python-pampy
    - python-paramiko
    - python-setproctitle
    - python-tornado
    - python-wsgilog

Extra Unittest Dependencies:
  * Python modules:
    - python-nose,
    - python-paste,

Available features:

 * easily extendible backend / submodule concept
 * ACL based session profile provisioning
 * X2Go load balancing

Available backends:

 * ZEROCONF: the ,,zeroconf'' broker backend is for testing
   X2Go client applications without much hassle against the
   X2Go Session Broker
 * INIFILE (default): the ,,inifile'' broker backend scales well with
   small and medium X2Go deployments. It is configurable through
   a single file (/etc/x2go/broker/x2gobroker-sessionprofiles.conf).
   It provides flexible provisioning of session profiles based
   on user, group and host ACLs.

Available authentication mechanisms:

 * NONE: Always authenticate every user never mind if password
   is correct or not.
 * PAM: Authenticate against the local PAM setup. The service
   file /etc/pam.d/x2gobroker can be used to configure the
   authentication.
 * HTTPS_GET: Perform a http GET request against a web server.
   If the web server returned code 200, authentication is
   considered a success.

Available nameservice backends:

 * LIBNSS: Obtain uses from the broker host's libnss configuration.

Configuration files:

  /etc/default/{x2gobroker-daemon,python-x2gobroker,x2gobroker-authservice}
  /etc/x2go/x2gobroker.conf
  /etc/x2go/broker/**

Environment variables (and their defaults):

  # run X2Go Session Broker in debug mode, this will make the broker
  # available through http GET method calls (otherwise: POST method
  # only) and you will be able to test the broker through your web
  # browser
  X2GOBROKER_DEBUG=false

  # default X2Go Session Broker backend (available: zeroconf, inifile)
  X2GOBROKER_DEFAULT_BACKEND=inifile

  # path to the X2Go Session Broker's configuration file
  X2GOBROKER_CONFIG=/etc/x2go/x2gobroker.conf

  # path to the X2Go Session Broker's session profiles file (when using the inifile backend)
  X2GOBROKER_SESSIONPROFILES=/etc/x2go/broker/x2gobroker-sessionprofiles.conf

  # path to the X2Go Session Broker's agent command
  X2GOBROKER_AGENT_CMD=/usr/lib/x2go/x2gobroker-agent

  # The unix socket file for communication between the broker and the authentication service.
  X2GOBROKER_AUTHSERVICE_SOCKET=/run/x2gobroker/x2gobroker-authservice.socket

light+love,
Mike Gabriel, 20140912

