Home | History | Annotate | Line # | Download | only in back-relay
      1 Relay backend sets up a relay virtual database that allows
      2 to access other databases in the same instance of slapd
      3 through different naming contexts and remapping attribute 
      4 values.
      5 
      6 The DN rewrite, filter rewrite and attributeType/objectClass
      7 mapping is done by means of the rewrite-remap overlay.
      8 
      9 The database containing the real naming context can be
     10 explicitly selected by means of the "relay" directive,
     11 which must contain the naming context of the target 
     12 database.  This also causes the rewrite-remap overlay 
     13 to be automatically instantiated.  If the optional keyword 
     14 "massage" is present, the rewrite-remap overlay is 
     15 automatically configured to map the virtual to the real 
     16 naming context and vice-versa.
     17 
     18 Otherwise, the rewrite-remap overlay must be explicitly
     19 instantiated, by using the "overlay" directive, as 
     20 illustrated below.  This allows much more freedom in target 
     21 database selection and DN rewriting.
     22 
     23 If the "relay" directive is not present, the backend is
     24 not bound to a single target database; on the contrary,
     25 the target database is selected on a per-operation basis.
     26 
     27 This allows, for instance, to relay one database for 
     28 authentication and anotheir for search/modify, or allows
     29 to use one target for persons and another for groups
     30 and so on.
     31 
     32 To summarize: the "relay" directive:
     33 - explicitly bounds the database to a single database 
     34   holding the real naming context;
     35 - automatically instantiates the rewrite-remap overlay;
     36 - automatically configures the naming context massaging
     37   if the optional "massage" keyword is added
     38 
     39 If the "relay" directive is not used, the rewrite-remap
     40 overlay must be explicitly instantiated and the massaging
     41 must be configured, either by using the "suffixmassage"
     42 directive, or by issuing more sophisticate rewrite 
     43 instructions.
     44 
     45 AttributeType/objectClass mapping must be explicitly
     46 required.
     47 
     48 Note that the rewrite-remap overlay is not complete nor 
     49 production- ready yet.
     50 Examples are given of all the suggested usages. 
     51 
     52 # automatically massage from virtual to real naming context
     53 database	relay
     54 suffix		"dc=virtual,dc=naming,dc=context"
     55 relay		"dc=real,dc=naming,dc=context" massage
     56 
     57 # explicitly massage (same as above)
     58 database	relay
     59 suffix		"dc=virtual,dc=naming,dc=context"
     60 relay		"dc=real,dc=naming,dc=context"
     61 suffixmassage	"dc=virtual,dc=naming,dc=context" \
     62 			"dc=real,dc=naming,dc=context"
     63 
     64 # explicitly massage (same as above, but dynamic backend resolution)
     65 database	relay
     66 suffix		"dc=virtual,dc=naming,dc=context"
     67 overlay		rewrite-remap
     68 suffixmassage	"dc=virtual,dc=naming,dc=context" \
     69 			"dc=real,dc=naming,dc=context"
     70 
     71 # old fashioned suffixalias, applied also to DN-valued attributes
     72 # from virtual to real naming context, but not the reverse...
     73 database	relay
     74 suffix		"dc=virtual,dc=naming,dc=context"
     75 relay		"dc=real,dc=naming,dc=context"
     76 rewriteContext	default
     77 rewriteRule	"(.*)dc=virtual,dc=naming,dc=context$" \
     78 			"$1dc=real,dc=naming,dc=context"
     79 rewriteContext	searchFilter
     80 rewriteContext	searchResult
     81 rewriteContext	searchResultAttrDN
     82 rewriteContext	matchedDN
     83 
     84