On Tue, 09 Jun 2015, Drew Erny wrote:
Hey, Freeipa, same thread new subtopic.
So, I was bouncing some ideas around with another developer (ayoung)
and I think I have a pretty good idea for self-service user
The idea is that I put self-service user registration into its own
application that calls out to ipa user-add after getting admin
Workflow goes like this:
1.) User goes to registration page, inputs details into form.
Registration page and application are not part of FreeIPA.
2.) User's registration goes into a non-FreeIPA database, something
3.) Admin gets a notification email with a link to approve/deny
A.) Admin clicks approval link, registration application (which
has limited privileges) makes call out to ipa user-add command, adding
the new user to FreeIPA.
B.) Admin click deny link, user is not added.
4.) User's registration information, approved or denied, is deleted
from the external database.
This has a couple of advantages. For starters, it provides a layer of
protection against the creation of spam accounts. Accounts do not add
directly to LDAP (inserting to LDAP is a slow operation), instead sit
in intermediate area waiting approval. Second, we don't have to write
a big extension to ipa user-add or staginguser-add that allows
anonymous access to that command. Third, it can be bundled into its
own package and given to the community separate from FreeIPA proper.
Finally, it would allow me to gracefully defer becoming buried up to
my neck in D-Bus notifications and whatever other fanciness we want to
send email, because FreeIPA won't be sending the email.
Sounds good. For external application like your portal to be able to
call IPA CLI (or JSON) with Kerberos on behalf of an admin, you need to
support S4U2Proxy configuration. See
for details how to make it working. This would allow you to have an
application running on a separate IPA client and still be able to re-use
admin Kerberos credentials to perform the work after admin granted the
permission to create a user or to reset a password.
how to communicate to IPA with JSON directly, without any dependency to
IPA client tools.
/ Alexander Bokovoy
Manage your subscription for the Freeipa-devel mailing list:
Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code