aboutsummaryrefslogtreecommitdiff
path: root/docs/objects-and-schemes
diff options
context:
space:
mode:
Diffstat (limited to 'docs/objects-and-schemes')
-rw-r--r--docs/objects-and-schemes100
1 files changed, 100 insertions, 0 deletions
diff --git a/docs/objects-and-schemes b/docs/objects-and-schemes
new file mode 100644
index 0000000..57c2f9f
--- /dev/null
+++ b/docs/objects-and-schemes
@@ -0,0 +1,100 @@
+ Supported Object Types and ACL Schemes
+
+Introduction
+
+ This is a list of all supported wallet object types and ACL schemes in
+ the current version of wallet, with some brief information about the
+ properties of each one. For more detailed documentation, see the
+ documentation of the underlying Wallet::Object::* class or
+ Wallet::ACL::* class referenced here.
+
+Object Types
+
+ file
+
+ Stores an arbitrary file and allows retrieval of that file. The file
+ must be stored before it can be retrieved. All files are stored on
+ the local file system of the wallet server in a directory organized by
+ a hash of the name of the file object. The size of file objects is
+ limited by wallet server configuration. File contents may include nul
+ characters.
+
+ Implemented via Wallet::Object::File.
+
+ keytab
+
+ Stores a keytab representing private keys for a given Kerberos
+ principal. The object name is the Kerberos principal (without the
+ realm). On object creation, the Kerberos principal is created in the
+ underlying KDC; on object destruction, the Kerberos principal is also
+ deleted. Normally, any retrieval of the object creates new random
+ keys for all supported enctypes and then returns a new keytab
+ containing those keys. Store is not supported.
+
+ Keytab objects with the unchanging flag set will retrieve the existing
+ keys from the Kerberos KDC instead of randomizing the keys. For MIT
+ Kerberos, this requires a custom backend be installed on the KDC.
+
+ The enctypes of the returned keys can be restricted by setting the
+ enctypes attribute on the wallet object.
+
+ Implemented via Wallet::Object::Keytab.
+
+ACL Schemes
+
+ krb5
+
+ The value is a string representation of a Kerberos principal name.
+ This ACL grants access if the authenticated wallet client user (as
+ determined by remctl or whatever other protocol is used for the wallet
+ transport) equals the ACL value.
+
+ Implemented via Wallet::ACL::Krb5.
+
+ krb5-regex
+
+ Like krb5, but instead of taking the principal string, takes a regular
+ expression that is matched against the principal string. Grants
+ access if the regular expression matches the user identity.
+
+ Implemented via Wallet::ACL::Krb5::Regex.
+
+ ldap-attr
+
+ The value is an LDAP attribute, an equal sign, and the value that
+ attribute must have. The LDAP entry for the user (determined via
+ site-local customization in the wallet configuration file) is
+ retrieved, and the wallet server checks that the user's LDAP entry
+ contains that attribute with that value. If so, access is granted.
+ This effectively implements an entitlement check.
+
+ Implemented via Wallet::ACL::LDAP::Attribute.
+
+ netdb
+
+ The value is a hostname. NetDB (a system for managing DNS, DHCP, and
+ related machine information) is queried to see what roles the client
+ user has for that hostname. If the user has a role of user, admin, or
+ team, the ACL grants access.
+
+ Implemented via Wallet::ACL::NetDB.
+
+ netdb-root
+
+ Identical to netdb, except that the user identity is taken as a
+ Kerberos principal and must be in the form of <user>/root@<realm>.
+ The /root part is stripped before checking NetDB for roles. This
+ forces users to use /root instances for wallet operations instead of
+ their normal principals.
+
+ Implemented via Wallet::ACL::NetDB::Root.
+
+License
+
+ Copyright 2012, 2013
+ The Board of Trustees of the Leland Stanford Junior University
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. This file is offered as-is,
+ without any warranty.