1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/librpc/idl/winbind.idl
Ralph Boehme 71f99cb132 winbindd: pass domain SID to wbint_UnixIDs2Sids
This makes the domain SID available to the idmap child for
wbint_UnixIDs2Sids mapping request. It's not used yet anywhere, this
comes in the next commit.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=13052

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
2017-10-10 15:51:27 +02:00

221 lines
5.2 KiB
Plaintext

#include "idl_types.h"
import "lsa.idl", "netlogon.idl", "misc.idl", "security.idl", "idmap.idl";
[
uuid("bf09192c-ed60-4928-9dff-d0d7bcb03ed8"),
endpoint("ncalrpc:"),
pointer_default(unique),
version(1.0),
helpstring("winbind parent-child protocol"),
no_srv_register
]
interface winbind
{
/* Private methods */
void wbint_Ping(
[in] uint32 in_data,
[out] uint32 *out_data
);
NTSTATUS wbint_LookupSid(
[in] dom_sid *sid,
[out] lsa_SidType *type,
[out,string,charset(UTF8)] char **domain,
[out,string,charset(UTF8)] char **name
);
NTSTATUS wbint_LookupSids(
[in] lsa_SidArray *sids,
[out,ref] lsa_RefDomainList *domains,
[out,ref] lsa_TransNameArray *names
);
NTSTATUS wbint_LookupName(
[in,string,charset(UTF8)] char *domain,
[in,string,charset(UTF8)] char *name,
[in] uint32 flags,
[out] lsa_SidType *type,
[out] dom_sid *sid
);
typedef struct {
id_type type;
uint32 domain_index;
uint32 rid;
unixid xid;
} wbint_TransID;
typedef struct {
uint32 num_ids;
[size_is(num_ids)] wbint_TransID ids[];
} wbint_TransIDArray;
NTSTATUS wbint_Sids2UnixIDs(
[in] lsa_RefDomainList *domains,
[in,out] wbint_TransIDArray *ids
);
NTSTATUS wbint_UnixIDs2Sids(
[in,string,charset(UTF8)] char *domain_name,
[in] dom_sid domain_sid,
[in] uint32 num_ids,
[in,out] unixid xids[num_ids],
[out] dom_sid sids[num_ids]
);
NTSTATUS wbint_AllocateUid(
[out] hyper *uid
);
NTSTATUS wbint_AllocateGid(
[out] hyper *gid
);
typedef [public] struct {
[string,charset(UTF8)] char *domain_name;
[string,charset(UTF8)] char *acct_name;
[string,charset(UTF8)] char *full_name;
[string,charset(UTF8)] char *homedir;
[string,charset(UTF8)] char *shell;
hyper uid;
hyper primary_gid;
[string,charset(UTF8)] char *primary_group_name;
dom_sid user_sid;
dom_sid group_sid;
} wbint_userinfo;
NTSTATUS wbint_GetNssInfo(
[in,out] wbint_userinfo *info
);
typedef [public] struct {
uint32 num_sids;
[size_is(num_sids)] dom_sid sids[];
} wbint_SidArray;
typedef [public] struct {
uint32 num_rids;
[size_is(num_rids)] uint32 rids[];
} wbint_RidArray;
NTSTATUS wbint_LookupUserAliases(
[in] wbint_SidArray *sids,
[out] wbint_RidArray *rids
);
NTSTATUS wbint_LookupUserGroups(
[in] dom_sid *sid,
[out] wbint_SidArray *sids
);
NTSTATUS wbint_QuerySequenceNumber(
[out] uint32 *sequence
);
typedef [public] struct {
dom_sid sid;
lsa_SidType type;
[string,charset(UTF8)] char *name;
} wbint_Principal;
typedef [public] struct {
int num_principals;
[size_is(num_principals)] wbint_Principal principals[];
} wbint_Principals;
NTSTATUS wbint_LookupGroupMembers(
[in] dom_sid *sid,
[in] lsa_SidType type,
[out] wbint_Principals *members
);
typedef [public] struct {
uint32 num_userinfos;
[size_is(num_userinfos)] wbint_userinfo userinfos[];
} wbint_userinfos;
NTSTATUS wbint_QueryGroupList(
[out] wbint_Principals *groups
);
NTSTATUS wbint_QueryUserRidList(
[out] wbint_RidArray *rids
);
NTSTATUS wbint_DsGetDcName(
[in,string,charset(UTF8)] char *domain_name,
[in,unique] GUID *domain_guid,
[in,string,unique,charset(UTF8)] char *site_name,
[in] uint32 flags,
[out] netr_DsRGetDCNameInfo **dc_info
);
NTSTATUS wbint_LookupRids(
[in] dom_sid *domain_sid,
[in] wbint_RidArray *rids,
[out,string,charset(UTF8)] char **domain_name,
[out] wbint_Principals *names
);
NTSTATUS wbint_CheckMachineAccount(
);
NTSTATUS wbint_ChangeMachineAccount(
);
NTSTATUS wbint_PingDc(
[out,string,charset(UTF8)] char **dcname
);
/* Public methods available via IRPC */
typedef [switch_type(uint16)] union netr_LogonLevel netr_LogonLevel;
typedef [switch_type(uint16)] union netr_Validation netr_Validation;
/*
* do a netr_LogonSamLogon() against the right DC
*/
NTSTATUS winbind_SamLogon(
[in] uint16 logon_level,
[in] [switch_is(logon_level)] netr_LogonLevel logon,
[in] uint16 validation_level,
[out] [switch_is(validation_level)] netr_Validation validation,
[out] uint8 authoritative
);
NTSTATUS winbind_DsrUpdateReadOnlyServerDnsRecords(
[in,unique] [string,charset(UTF16)] uint16 *site_name,
[in] uint32 dns_ttl,
[in,out,ref] NL_DNS_NAME_INFO_ARRAY *dns_names
);
/*
* do a netr_LogonControl2Ex() against the right DC
*/
typedef [v1_enum] enum netr_LogonControlCode netr_LogonControlCode;
typedef [switch_type(netr_LogonControlCode)] union netr_CONTROL_DATA_INFORMATION netr_CONTROL_DATA_INFORMATION;
typedef [switch_type(uint32)] union netr_CONTROL_QUERY_INFORMATION netr_CONTROL_QUERY_INFORMATION;
WERROR winbind_LogonControl(
[in] netr_LogonControlCode function_code,
[in] uint32 level,
[in,ref][switch_is(function_code)] netr_CONTROL_DATA_INFORMATION *data,
[out,ref][switch_is(level)] netr_CONTROL_QUERY_INFORMATION *query
);
/*
* do a netr_GetForestTrustInformation() against the right DC
*/
WERROR winbind_GetForestTrustInformation(
[in,unique] [string,charset(UTF16)] uint16 *trusted_domain_name,
[in] uint32 flags,
[out,ref] lsa_ForestTrustInformation **forest_trust_info
);
NTSTATUS winbind_SendToSam(
[in] netr_SendToSamBase message
);
}