PolicyKit, KDE, Qt, and integration
Dario Freddi
drf54321 at gmail.com
Tue May 26 10:24:01 PDT 2009
On Tuesday 26 May 2009 19:04:35 David Zeuthen wrote:
> But it's the other way around, the D-Bus interfaces are what the daemon
> exposes. The libpolkit-agent.so is just a small library that provides
>
>[...]
>
> Keep in mind that PolicyKit proper does not care about PAM at all; in
> fact, the authentication agent could be a simple program that just
> provides an user experience with simple "Deny/Confirm" buttons instead
> of requiring authentication.
Ok, cool stuff
>
> This is actually _a good thing_ since for some devices you want a user
> experience like that (e.g. "Deny/Confirm" instead of passwords etc.). It
> also allows us to switch to a more modern authentication stack than PAM
> should we ever get one.
>
> I agree it would be a lot of work to reimplement this just to get rid of
> the libpolkit-agent-1.so dependency. Then again, I don't see why it
> would be a problem to use this code in KDE since a) your authentication
> agent would be a separate application; and b) all the deps are on the
> disk anyway since they are also used in the PolicyKit daemon proper
> (except for PAM but that is very likely to be on the disk).
I am just looking for a confirmation that this library is here to stay. We're
about to face a rewrite because of polkit-dbus and polkit-grant being
deprecated, and I really want to avoid such a thing again if not in some
years. If you tell me I can count on polkit-agent, then there is not a problem
in using it in KDE.
> >
> > Great to hear that you're aiming for binary compatibility.
>
> I should clarify here. I don't plan to break the libpolkit-agent-1.so
> interface once 1.0 is out, not without an so-name-bump anyway.
Ok, that at least is good
>
> But we might want to break it if something better than PAM comes along.
> But since libpolkit-agent-1.so is a small library, it shouldn't be very
> painful and so-name-transitions is a pretty well-understood thing
> anyway.
My 2 cents: why not switching to a backend system? It would definitely make
the transition easier, should the case happen, and will save you a lot of
possible future work and binary compatibility of polkit-agent. I volunteer for
helping you: if you're interested in such a thing, this is definitely the
right time.
> > So the authentication is completely abstracted in the mechanism and
> > everything happens in it? That sounds really like good stuff :)
>
> Right, this is how PolicyKit 0.9.x works
>
> http://hal.freedesktop.org/docs/PolicyKit/diagram-interaction.png
>
> e.g. the desktop app needs to poke the authentication agent itself.
> Works great but means there's a lot of work needed in each app.
>
> Parden my ASCII art (I need to write proper docs for polkit 1.0, so this
> will have to do for now), this is how PolicyKit 1.0 works (where p-a-h-1
> is the setuid root authentication helper used by libpolkit-grant-1.so):
>
> +--------------+ +----------------------+ +---------+
>
> | File Manager | | Authentication Agent | <--> | p-a-h-1 |--\
>
> +--------------+ +----------------------+ +---------+ |
> ^ | ^ | PAM | |
>
> | | | +---------+ |
>
> 6.OK | | | |
>
> | | 1. Mount() | 3. BeginAuthentication() |
> |
> | V | |
>
> +-----------------+ 2. CheckAuthz() +-------------------+ |
>
> | |---------------->| | |
> |
> | org.fd.DK.Disks | | org.fd.PolicyKit1 | |
> |
> | |<----------------| | |
>
> +-----------------+ 5. Authorized +-------------------+ |
> ^ /
> \------------------------
> 4. AuthenticationAgentResponse()
>
Nice picture, definitely :)
>
> One main difference here is that call number 1., Mount(), might block a
> long time while the authentication is happening. So apps like a file
> manager need to cope with that. But file managers already needs to cope
> with stuff like that since it's an IPC call.
>
> But, anyway, as you can see the file manager (e.g. Nautilus or Dolphin)
> won't have to know anything about PolicyKit at all. Same goes for every
> other user of PolicyKit.... just simpler all around.
Ok, then I definitely understood you well in the last mail, and I can just
repeat that this change is much appreciated :)
>
> Hope this clarifies.
>
> David
--
-------------------
Dario Freddi
KDE Developer
GPG Key Signature: 511A9A3B
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://lists.freedesktop.org/archives/polkit-devel/attachments/20090526/3b20607f/attachment-0001.pgp
More information about the polkit-devel
mailing list