ACCUMULO-3452 Add user manual documentation on impersonation

Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/ef6042fc
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/ef6042fc
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/ef6042fc

Branch: refs/heads/master
Commit: ef6042fc5ef55385d35688a029e854d08976c60e
Parents: 98ced20
Author: Josh Elser <els...@apache.org>
Authored: Wed Jan 21 18:36:11 2015 -0500
Committer: Josh Elser <els...@apache.org>
Committed: Wed Jan 21 18:36:11 2015 -0500

----------------------------------------------------------------------
 docs/src/main/asciidoc/chapters/kerberos.txt | 36 +++++++++++++++++++++++
 1 file changed, 36 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/ef6042fc/docs/src/main/asciidoc/chapters/kerberos.txt
----------------------------------------------------------------------
diff --git a/docs/src/main/asciidoc/chapters/kerberos.txt 
b/docs/src/main/asciidoc/chapters/kerberos.txt
index 3dcac6d..05d7384 100644
--- a/docs/src/main/asciidoc/chapters/kerberos.txt
+++ b/docs/src/main/asciidoc/chapters/kerberos.txt
@@ -184,6 +184,42 @@ something similar to the following in the application log.
 2015-01-07 11:57:56,830 [security.UserGroupInformation] INFO : Login 
successful for user accumulo/hostn...@example.com using keytab file 
/etc/security/keytabs/accumulo.service.keytab
 ----
 
+===== Impersonation
+
+Impersonation is functionality which allows a certain user to act as another. 
One direct application
+of this concept within Accumulo is the Thrift proxy. The Thrift proxy is 
configured to accept
+user requests and pass them onto Accumulo, enabling client access to Accumulo 
via any thrift-compatible
+language. When the proxy is running with SASL transports, this enforces that 
clients present a valid
+Kerberos identity to make a connection. In this situation, the Thrift proxy 
server does not have
+access to the secret key material in order to make a secure connection to 
Accumulo as the client,
+it can only connect to Accumulo as itself. Impersonation, in this context, 
refers to the ability
+of the proxy to authenticate to Accumulo as itself, but act on behalf of an 
Accumulo user.
+
+Accumulo supports basic impersonation of end-users by a third party via static 
rules in Accumulo's
+site configuration file.
+
+----
+<property>
+  <name>instance.rpc.sasl.impersonation.$PROXY_USER.users</name>
+  <value>*</value>
+</property>
+
+<property>
+  <name>instance.rpc.sasl.impersonation.$PROXY_USER.hosts</name>
+  <value>*</value>
+</property>
+----
+
+The value +$PROXY_USER+ is the Kerberos principal of the server which is 
acting on behalf of a user.
+Impersonation is enforced by the Kerberos principal and the host from which 
the RPC originated. Both
+of the above properties expects values which are comma-separated lists. The 
value of each user in the
+list should be the complete Kerberos principal of the user which the give 
+$PROXY_USER+ can impersonate,
+and each value of the hosts list should be the FQDN of the machine which the 
+$PROXY_USER+ can submit
+requests from.
+
+Both the hosts and users configuration properties also accept a value of +*+ 
to denote that any user or host
+is acceptable for +$PROXY_USER+.
+
 ==== Clients
 
 ===== Create client principal

Reply via email to