[Authentication] Refactoring the realmd DBus interface

Stef Walter stefw at gnome.org
Tue Aug 14 07:35:01 PDT 2012


Stephen did a quick review of the realmd DBus interface yesterday.
Thanks Stephen!

One of the main things he pointed out was that the realmd interface
needed to be more extensible in order to be useful for non-kerberos
realms in the future, like LDAP or others.


Notes about some of the changes:

INTERFACE: org.freedesktop.realmd.Realm

 *
http://people.freedesktop.org/~stefw/docs/realmd-dbus-refactor/gdbus-org.freedesktop.realmd.Realm.html

 * a new generic interface for realms which contains generic
   properties and methods relevant to any kind of realm (kerberos
   or not).

 * It has a Configured property. If this property is blank, then
   the realm is not configured (for example just been discovered).
   Otherwise it contains the string of the interface that was
   used to configure (ie: enroll, join) the realm.

   An example of such an interface is
   o.f.r.KerberosMembership, see below.

 * A realm has a generic displayable Name property.

 * A realm has a SupportedInterfaces property, which lists all the
   other interfaces that the realm supports. These include interfaces
   which are relevant to getting more information about the realm
   such as o.f.r.Kerberos and also interfaces that
   are relevant to configuring the realm such as
   o.f.r.KerberosMembership.

   It is possible to also get a list of SupportedInterfaces through
   standard DBus introspection. The SupportedInterfaces property
   just makes things easier for some callers.

 * Details, LoginFormats, LoginPolicy and PermittedLogins are properties
   on the new generic o.f.r.Realm interface and behave the same
   way they did on the old o.f.r.Kerberos interface. Ditto for
   ChangeLoginPolicy().

 * The new Deconfigure() method allows deconfiguring a realm in a
   generic way. It is not possible to configure a realm in a generic
   way as this requires input of information, but it should be possible
   to deconfigure a realm without realm or method specific info like
   credentials.

   The realm specific configuration interfaces still contain more
   fine grained methods for deconfiguring a realm, such as:
   o.f.r.KerberosMembership.Leave(). And these do require realm
   specific input, such as credentials.

INTERFACE: org.freedesktop.realmd.Kerberos

 *
http://people.freedesktop.org/~stefw/docs/realmd-dbus-refactor/gdbus-org.freedesktop.realmd.Kerberos.html

 * This used to be the main realm interface, but most of the
   functionality is now elsewhere. It now only contains a few
   extra properties to do with kerberos realms.

 * Renamed the 'Domain' property to 'DomainName' so it's clearer.
   Ditto for 'RealmName'.

 * This interface is always implemented on a DBus object that also
   implements o.f.r.Realm. It is an extra one of the
   'SupportedInterfaces'

INTERFACE: org.freedesktop.realmd.KerberosMembership

 *
http://people.freedesktop.org/~stefw/docs/realmd-dbus-refactor/gdbus-org.freedesktop.realmd.KerberosMembership.html

 * This is a new interface that exposes functionality to configure
   a kerberos realm by having the machine become a member of that
   realm.

 * The Join() and Leave() methods are the same as the Enroll() and
   Unenroll() methods of the old o.f.r.Kerberos interface.


OTHER CHANGES

 * Documented which PolicyKit authorizations are required for the
   various realmd methods.

The interface documentation for this refactor is currently here
until it gets merged:

http://people.freedesktop.org/~stefw/docs/realmd-dbus-refactor/index.html

I've done an initial untested port of realmd to this new interface,
which is found here:
http://cgit.freedesktop.org/realmd/realmd/log/?h=wip/dbus-refactor

Stephen, if I missed anything you pointed out, please give me a heads up :)

Cheers,

Stef


More information about the Authentication mailing list