[Freeipa-users] JSON-RPC documentation?

Brian Smith brs at usf.edu
Tue Jan 15 15:20:02 UTC 2013


These posts have all been really helpful (especially -vv... its mostly
trivial to translate to JSON from the XML).  Thanks a lot for the
suggestions!

I do have one question that might be a new thread, but for me its related.
 I've added a service account user to the passSyncManagersDNs multi-valued
list to avoid the initial account expiration, but it seems to put a 3 month
expiration on the account despite the fact that my global password policy
is 180 days.  Anyone know what gives?

Thanks again!
-Brian


On Tue, Jan 15, 2013 at 6:55 AM, Petr Vobornik <pvoborni at redhat.com> wrote:

> Spying Web UI might be another way how to learn the API.
>
> Web UI uses JSON interface for everything it does. You can open developer
> tools in Chrome (hit F12) and watch communication (network tab). Do
> something and then look for requests named 'json' a inspect the request
> payload.
>
> To inspect the API alone you can go through metadata (in console tab)
> which are stored in IPA.metadata object but I guess inspecting python code
> might be easier.
>
> HTH
>
>
> On 01/15/2013 03:55 AM, Brian Smith wrote:
>
>> That helps a lot.  Thanks!  I would use ipalib, but I'm developing a Rails
>> application, so the JSON interface is the quickest (and since XML may be
>> deprecated) best way forward (unless you know a way to use it in Ruby :).
>>   I'm guessing in JSON, the structure would look something like this:
>>
>> {
>>    "method": "user_add",
>>    "params": [
>>      [],
>>      {
>>        "uid":"testuser",
>>        "givenname":"Test",
>>        "sn":"User",
>>        "userpassword":"**mySecretPasswordBlahBlah"
>>        ...
>>      }
>>    ]
>> }
>>
>> Maybe I'll try to compile some documentation.  I know that this page
>> helped
>> a lot, to cook up a quick ruby client with Curb:
>> http://adam.younglogic.com/**2010/07/talking-to-freeipa-**
>> json-web-api-via-curl/<http://adam.younglogic.com/2010/07/talking-to-freeipa-json-web-api-via-curl/>
>>
>>
>> On Mon, Jan 14, 2013 at 9:35 PM, Rob Crittenden <rcritten at redhat.com>
>> wrote:
>>
>>  Dmitri Pal wrote:
>>>
>>>  On 01/14/2013 08:16 PM, Brian Smith wrote:
>>>>
>>>>  Before I pester the dev list, I was wondering if anyone here could
>>>>> point me to documentation on the JSON-RPC interface to FreeIPA.  I'm
>>>>> not doing anything fancy, just adding users and updating passwords, so
>>>>> my requirements are pretty tame.  I've gone through the Python code
>>>>> and have somewhat pieced it together myself, but would be more
>>>>> comfortable if there were official docs.
>>>>>
>>>>>   I do not remember us having documentation about XML-RPC but I will
>>>>>
>>>> check.
>>>> We are actually debating deprecating XML-RPC over time in favor of JSON.
>>>>
>>>>
>>> There is no official documentation on either XML-RPC or JSON. The format
>>> is rather straightforward once you get the hang of things. Each command
>>> is
>>> effectively an RPC function (e.g ipa user-add -> user_add). The arguments
>>> consist of positional arguments followed by named arguments (there is
>>> usually only one positional arg).
>>>
>>> For XML-RPC it is generally fairly easy to work out what it's doing by
>>> adding -vv option to the command-line to see the raw request and
>>> response.
>>> I personally haven't done a lot of raw JSON work.
>>>
>>> The final option is to skip all that and use the ipalib to do the work
>>> for
>>> you.
>>>
>>> For example, to add a user you'd do something like:
>>>
>>> from ipalib import api
>>> from ipalib import errors
>>>
>>> api.bootstrap(context='cli')
>>> api.finalize()
>>> api.Backend.xmlclient.connect(****)
>>>
>>> try:
>>>      api.Command['user_add'](u'****newuser',
>>>
>>>                              loginshell=u'/bin/something',
>>>                              givenname=u'New', sn=u'User')
>>> except errors.DuplicateEntry:
>>>      print "user already exists"
>>> else:
>>>      print "user added"
>>>
>>>
>>>
>> ______________________________**_________________
>> Freeipa-users mailing list
>> Freeipa-users at redhat.com
>> https://www.redhat.com/**mailman/listinfo/freeipa-users<https://www.redhat.com/mailman/listinfo/freeipa-users>
>>
>>
>
> --
> Petr Vobornik
>



-- 
Brian Smith
Assistant Director
Research Computing, University of South Florida
4202 E. Fowler Ave. SVC4010
Office Phone: +1 813 974-1467
Organization URL: http://rc.usf.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/freeipa-users/attachments/20130115/dc50f5fb/attachment.htm>


More information about the Freeipa-users mailing list