mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Mark Craig
07.06.2011 2dd190cc9d119efad9df0b4367012cb94b703e0e
Fix OPENDJ-225: Add explanation of how to do proxy authorization to the OpenDJ Admin Guide
1 files modified
66 ■■■■■ changed files
opendj3/src/main/docbkx/admin-guide/chap-ldap-operations.xml 66 ●●●●● patch | view | raw | blame | history
opendj3/src/main/docbkx/admin-guide/chap-ldap-operations.xml
@@ -491,5 +491,71 @@
  <para>The location on Windows is
  <filename>%UserProfile%/.opendj/tools.properties</filename>.</para>
 </section>
 <section>
  <title>Configuring Proxied Authorization</title>
  <para>Proxied authorization provides a standard control as defined in <link
  xlink:href='http://tools.ietf.org/html/rfc4370'>RFC 4370</link> (and an
  earlier Internet-Draft) for binding with the user credentials of a proxy, who
  carries out LDAP operations on behalf of other users. You might use proxied
  authorization, for example, to have your application bind with its
  credentials, and then carry out operations as the users who login to the
  application.</para>
  <para>Suppose you have an administrative directory client application that
  has an entry in the directory with DN
  <literal>cn=My App,ou=Apps,dc=example,dc=com</literal>. You can give that
  application the access rights and privileges to use proxied authorization.
  The default access control for OpenDJ permits authenticated users to use
  the proxied authorization control.</para>
  <para>Suppose also that when directory administrator, Kirsten Vaughan, logs
  in to your application to change Babs Jensen's entry, your application looks
  up Kirsten's entry, and finds that she has DN
  <literal>uid=kvaughan,ou=People,dc=example,dc=com</literal>. For the example
  commands in the following procedure. My App uses proxied authorization to
  make a change to Babs's entry as Kirsten.</para>
  <procedure>
   <title>To Set Up Proxied Authorization</title>
   <step>
    <para>Grant access to applications that can use proxied authorization.</para>
    <screen>$ ldapmodify -p 1389 -D "cn=Directory Manager" -w password
dn: dc=example,dc=com
changetype: modify
add: aci
aci: (target="ldap:///dc=example,dc=com") (targetattr ="*
 ")(version 3.0; acl "Allow apps proxied auth"; allow(all, proxy
 )(userdn = "ldap:///cn=*,ou=Apps,dc=example,dc=com");)
Processing MODIFY request for dc=example,dc=com
MODIFY operation successful for DN dc=example,dc=com</screen>
   </step>
   <step>
    <para>Grant the privilege to use proxied authorization to My App.</para>
    <screen>$ ldapmodify -p 1389 -D "cn=Directory Manager" -w password
dn: cn=My App,ou=Apps,dc=example,dc=com
changetype: modify
add: ds-privilege-name
ds-privilege-name: proxied-auth
Processing MODIFY request for cn=My App,ou=Apps,dc=example,dc=com
MODIFY operation successful for DN cn=My App,ou=Apps,dc=example,dc=com</screen>
   </step>
   <step>
    <para>Test that My App can use proxied authorization.</para>
    <screen>$ ldapmodify -p 1389 -D "cn=My App,ou=Apps,dc=example,dc=com" -w password
 -Y "dn:uid=kvaughan,ou=People,dc=example,dc=com"
dn: uid=bjensen,ou=People,dc=example,dc=com
changetype: modify
replace: description
description: Changed through proxied auth
Processing MODIFY request for uid=bjensen,ou=People,dc=example,dc=com
MODIFY operation successful for DN uid=bjensen,ou=People,dc=example,dc=com</screen>
   </step>
  </procedure>
 </section>
</chapter>