1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00
samba-mirror/librpc/idl/idmap.idl
Stefan Metzmacher 493f5d6b07 winbindd: allow idmap backends to mark entries with ID_[TYPE_WB_]REQUIRE_TYPE
This must only be used between winbindd parent and child!
It must not leak into outside world.

Some backends require ID_TYPE_UID or ID_TYPE_GID as type_hint,
while others may only need ID_TYPE_BOTH in order to validate that
the domain exists.

This will allow us to skip the wb_lookupsids_send/recv in the winbindd parent
in future and only do that on demand.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=14539

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2020-10-23 03:25:37 +00:00

54 lines
1.0 KiB
Plaintext

#include "idl_types.h"
import "security.idl";
[
pointer_default(unique)
]
interface idmap
{
typedef [public] enum {
ID_TYPE_NOT_SPECIFIED,
ID_TYPE_UID,
ID_TYPE_GID,
ID_TYPE_BOTH,
/*
* This are internal between winbindd
* parent and child.
*
* It means the idmap backend/child requires a valid type_hint
* for wbint_Sids2UnixIDs():
*
* - ID_TYPE_UID or ID_TYPE_GID means the user/group exists
* - ID_TYPE_BOTH means that only the domain exist
*/
ID_TYPE_WB_REQUIRE_TYPE
} id_type;
typedef [public] struct {
uint32 id;
id_type type;
} unixid;
typedef [public] enum {
ID_UNKNOWN,
ID_MAPPED,
ID_UNMAPPED,
ID_EXPIRED,
/*
* This means the idmap backend requires a valid type_hint
* in order to map a sid to a unix id.
*
* - ID_TYPE_UID or ID_TYPE_GID means the user/group exists
* - ID_TYPE_BOTH means that only the domain exist
*/
ID_REQUIRE_TYPE
} id_mapping;
typedef [public] struct {
dom_sid *sid;
unixid xid;
id_mapping status;
} id_map;
}