# Setting up accounts-sso Accounts-SSO is the framework we are using to store secrets (tokens, passwords) and for storing Accounts (small pieces of information containing a name, a provider, etc). https://accounts-sso.gitlab.io/ ## Accounts This is a fairly simply yet powerful framework, it stores all information into a sqlite database and then propagates the modifications using dbus so all applications using libaccounts will be aware of the modifications. ### libaccounts-glib The first thing to compile is libaccounts-glib, which is the code implementing all the Read/Write/Notification of Accounts: git clone https://gitlab.com/accounts-sso/libaccounts-glib libaccounts-glib cd libaccounts-glib meson build ninja -C build && ninja -C build install ### libaccounts-qt This is the Qt bindings for libaccounts-glib, it uses qmake. git clone https://gitlab.com/accounts-sso/libaccounts-qt libaccounts-qt cd libaccounts-qt qmake make && make install Note that at this very day libaccounts-qt qmake does **NOT** support compiling the library outside the source directory, this means that the command qmake must be executed within the root of libaccounts-qt and not for example in a build directory. ##SSO Single Sign On is the part of the framework responsible for storing and obtaining credentials. It stores the credentials in a secure way (in case of KDE within KWallet) and has a plugin system to do authentication in most common cases such oauth/2 or simple user and password. An interface can be plugged into SSO, at this moment we are using ubuntu's implementation signon-ui but that will changes in the future. ### signond This includes a daemon that will be dbus activated and will offer a set of dbus api to access to credentials and to authenticate to services (google/facebook oauth or owncloud user/password). Within this same repo there is a Qt library that we'll use in our applications to talk to the daemon. git clone https://gitlab.com/accounts-sso/signond signond qmake make && make install Note: Since signond is *dbus* activated be sure that the file `com.google.code.AccountsSSO.SingleSignOn.service` is in a location where dbus can find it (usually /usr/share/dbus-1/services) ### Wallet support In order for sigond to talk to KWallet we need a plugin for it, otherwise it will store secrets (tokens and passwords) in plain text git clone git://anongit.kde.org/signon-kwallet-extension.git mkdir signon-kwallet-extension/build cd signon-kwallet-extension/build cmake .. make && make install ### oauth2 plugin This plugin makes signond able to deal with oauth2 authentication git clone https://gitlab.com/accounts-sso/signon-plugin-oauth2 signon-plugin-oauth2 mkdir signon-plugin-oauth2/build cd signon-plugin-oauth2/build qmake .. make install ### signon-ui signon-ui provides the user interface for logging-into various accounts. git clone https://gitlab.com/accounts-sso/signon-ui signon-ui cd signon-ui qmake make install ### kde providers This are the providers and services that at this very moment we provide support for. For example in Facebook we support Chat, Contacts Calendar... for what we need a facebook.provider and chat/contacts/calendar.service files. This is basically a bunch of icons and .xml files git clone git://anongit.kde.org/kaccount-providers.git mkdir kaccount-providers/build cd kaccount-providers/build cmake .. make install