diff options
author | Jakub Hrozek <jhrozek@redhat.com> | 2016-01-25 16:11:59 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2016-02-24 14:05:16 +0100 |
commit | e2d96566aeb881bd89e5c9236d663f6a9a88019a (patch) | |
tree | 7d2026bb4c638074702785fdd75770dd06de2e0f /src/providers/ldap | |
parent | 3cf7fdfcaedb986f42a6640e26aa057007b64045 (diff) | |
download | sssd-e2d96566aeb881bd89e5c9236d663f6a9a88019a.tar.gz sssd-e2d96566aeb881bd89e5c9236d663f6a9a88019a.tar.xz sssd-e2d96566aeb881bd89e5c9236d663f6a9a88019a.zip |
IPA: Add interface to call into IPA provider from LDAP provider
https://fedorahosted.org/sssd/ticket/2522
Adds a pluggable interface that is able to resolve the IPA group's
external members. At the moment, the request calls the full be_
interface to make sure all corner cases like id-views are handled
internally.
Reviewed-by: Sumit Bose <sbose@redhat.com>
Diffstat (limited to 'src/providers/ldap')
-rw-r--r-- | src/providers/ldap/sdap.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/providers/ldap/sdap.h b/src/providers/ldap/sdap.h index 9dc2e16a0..e0e05da0c 100644 --- a/src/providers/ldap/sdap.h +++ b/src/providers/ldap/sdap.h @@ -423,6 +423,26 @@ struct sdap_domain { void *pvt; }; +typedef struct tevent_req * +(*ext_member_send_fn_t)(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + const char *ext_member, + void *pvt); +typedef errno_t +(*ext_member_recv_fn_t)(TALLOC_CTX *mem_ctx, + struct tevent_req *req, + enum sysdb_member_type *member_type, + struct sss_domain_info **_dom, + struct sysdb_attrs **_member); + +struct sdap_ext_member_ctx { + /* Typically ID context of the external ID provider */ + void *pvt; + + ext_member_send_fn_t ext_member_resolve_send; + ext_member_recv_fn_t ext_member_resolve_recv; +}; + struct sdap_options { struct dp_option *basic; struct sdap_attr_map *gen_map; @@ -435,6 +455,9 @@ struct sdap_options { /* ID-mapping support */ struct sdap_idmap_ctx *idmap_ctx; + /* Resolving external members */ + struct sdap_ext_member_ctx *ext_ctx; + /* FIXME - should this go to a special struct to avoid mixing with name-service-switch maps? */ struct sdap_attr_map *sudorule_map; struct sdap_attr_map *autofs_mobject_map; |