1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-22 13:34:15 +03:00

s4:kdc: Add a flag indicating that the device should be added to the default groups

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Joseph Sutton 2023-10-19 20:02:32 +13:00 committed by Andrew Bartlett
parent 7728a0622e
commit fc2f886441
2 changed files with 24 additions and 4 deletions

View File

@ -41,6 +41,7 @@ enum auth_password_state {
#define AUTH_SESSION_INFO_UNIX_TOKEN 0x08 /* The returned token must have the unix_token and unix_info elements provided */
#define AUTH_SESSION_INFO_NTLM 0x10 /* The returned token must have authenticated-with-NTLM flag set */
#define AUTH_SESSION_INFO_FORCE_COMPOUNDED_AUTHENTICATION 0x20 /* The user authenticated with a device. */
#define AUTH_SESSION_INFO_DEVICE_DEFAULT_GROUPS 0x40 /* Add the device to the default world and network groups */
struct auth_usersupplied_info
{

View File

@ -190,10 +190,29 @@ _PUBLIC_ NTSTATUS auth_generate_security_token(TALLOC_CTX *mem_ctx,
return NT_STATUS_NO_MEMORY;
}
/*
* TODO: if we find out that we need to add default SIDs to the device
* SIDs, as well as to the client SIDs, well do that here.
*/
for (i = 0; i < num_device_sids; i++) {
device_sids[i] = device_info_dc->sids[i];
}
if (session_info_flags & AUTH_SESSION_INFO_DEVICE_DEFAULT_GROUPS) {
device_sids = talloc_realloc(tmp_ctx,
device_sids,
struct auth_SidAttr,
num_device_sids + 2);
if (device_sids == NULL) {
TALLOC_FREE(tmp_ctx);
return NT_STATUS_NO_MEMORY;
}
device_sids[num_device_sids++] = (struct auth_SidAttr) {
.sid = global_sid_World,
.attrs = SE_GROUP_DEFAULT_FLAGS,
};
device_sids[num_device_sids++] = (struct auth_SidAttr) {
.sid = global_sid_Network,
.attrs = SE_GROUP_DEFAULT_FLAGS,
};
}
}
nt_status = security_token_create(mem_ctx,