← KTp/Setting up KAccounts You do not have permission to edit this page, for the following reason: The action you have requested is limited to users in one of the groups: Users, Administrators, trusted, KDEDevelopers. You can view and copy the source of this page. ==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://code.google.com/p/accounts-sso/ First of all set up your paths, that allows to easily just copy-paste the rest from below. This is needed for the set-up only, not for the runtime. However, it uses D-BUS activation, so make sure the path you set for ACCOUNTS_PREFIX allows for D-BUS autostarting (ie. $ACCOUNTS_PREFIX/share/dbus-1/services is loaded by D-BUS). <syntaxhighlight lang="bash"> export ACCOUNTS_PREFIX=your path here export ACCOUNTS_LIBDIR=your lib dir here </syntaxhighlight> An example: <syntaxhighlight lang="bash"> export ACCOUNTS_PREFIX=/opt/kde export ACCOUNTS_LIBDIR=/opt/kde/lib </syntaxhighlight> ==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: <syntaxhighlight lang="bash"> git clone https://code.google.com/p/accounts-sso.libaccounts-glib/ libaccounts-glib cd libaccounts-glib HAVE_GCOV_FALSE='#' ./autogen.sh --prefix=$ACCOUNTS_PREFIX --enable-debug make make install </syntaxhighlight> ===libaccounts-qt=== This is the Qt bindings for libaccounts-glib, it uses qmake :/ <syntaxhighlight lang="bash"> git clone https://code.google.com/p/accounts-sso.libaccounts-qt/ libaccounts-qt cd libaccounts-qt qmake PREFIX=$ACCOUNTS_PREFIX LIBDIR=$ACCOUNTS_LIBDIR make install </syntaxhighlight> 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 responsable 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. ===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. <syntaxhighlight lang="bash"> git clone https://code.google.com/p/accounts-sso.signond/ signond qmake PREFIX=$ACCOUNTS_PREFIX LIBDIR=$ACCOUNTS_LIBDIR "QMAKE_RPATHDIR+=$ACCOUNTS_LIBDIR" make install </syntaxhighlight> 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 <syntaxhighlight lang="bash"> git clone git://anongit.kde.org/signon-kwallet-extension.git mkdir signon-kwallet-extension/build cd signon-kwallet-extension/build cmake ../ -DCMAKE_INSTALL_PREFIX=$ACCOUNTS_PREFIX make install </syntaxhighlight> ===oauth2 plugin=== This plugin makes signond able to deal with oauth2 authentication <syntaxhighlight lang="bash"> git clone https://code.google.com/p/accounts-sso.signon-plugin-oauth2/ signon-plugin-oauth2 mkdir signon-plugin-oauth2/build cd signon-plugin-oauth2/build qmake .. PREFIX=$ACCOUNTS_PREFIX LIBDIR=$ACCOUNTS_LIBDIR "QMAKE_RPATHDIR+=$ACCOUNTS_LIBDIR" make install </syntaxhighlight> ===signon-ui=== At the moment we are u sing Ubuntu's UI which is under CLA and hosted in Launchpad. <syntaxhighlight lang="bash"> bzr branch lp:signon-ui cd signon-ui qmake PREFIX=$ACCOUNTS_PREFIX LIBDIR=$ACCOUNTS_LIBDIR "QMAKE_RPATHDIR+=$ACCOUNTS_LIBDIR" make install </syntaxhighlight> Note that this project does **NOT** support out of tree builds ==KAccounts 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 <syntaxhighlight lang="bash"> git clone kde:kaccounts-providers --branch frameworks mkdir kaccounts-providers/build cd kaccounts-providers/build cmake ../ -DCMAKE_INSTALL_PREFIX=$ACCOUNTS_PREFIX make install </syntaxhighlight> ==KAccounts integration== This is a support library, a kcm module and a daemon running in the background. <syntaxhighlight lang="bash"> git clone kde:kaccounts-integration --branch frameworks mkdir kaccounts-integration/build cd kaccounts-integration/build cmake ../ -DCMAKE_INSTALL_PREFIX=$ACCOUNTS_PREFIX make install </syntaxhighlight> Templates used on this page: Template:Box (view source) Template:Warning (view source) Return to KTp/Setting up KAccounts. Retrieved from "https://community.kde.org/KTp/Setting_up_KAccounts"