1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-26 21:57:41 +03:00

s4:auth_winbind: remove unused 'winbind_wbclient' backend

This is no longer useful as it doesn't support async requests.

It could be readded using pthreadpool_tevent_job_send()
and wbcCtxAuthenticateUserEx() if required.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
Stefan Metzmacher 2017-11-27 13:48:34 +01:00 committed by Andrew Bartlett
parent 0b72d0b7e5
commit 6fb5704c11

View File

@ -295,102 +295,6 @@ static NTSTATUS winbind_check_password_recv(struct tevent_req *req,
return NT_STATUS_OK;
}
/*
Authenticate a user with a challenge/response
using the samba3 winbind protocol via libwbclient
*/
static NTSTATUS winbind_check_password_wbclient(struct auth_method_context *ctx,
TALLOC_CTX *mem_ctx,
const struct auth_usersupplied_info *user_info,
struct auth_user_info_dc **user_info_dc,
bool *authoritative)
{
struct wbcAuthUserParams params;
struct wbcAuthUserInfo *info = NULL;
struct wbcAuthErrorInfo *err = NULL;
wbcErr wbc_status;
NTSTATUS nt_status;
struct netr_SamInfo6 *info6 = NULL;
union netr_Validation validation;
/* Send off request */
const struct auth_usersupplied_info *user_info_temp;
nt_status = encrypt_user_info(mem_ctx, ctx->auth_ctx,
AUTH_PASSWORD_RESPONSE,
user_info, &user_info_temp);
if (!NT_STATUS_IS_OK(nt_status)) {
return nt_status;
}
user_info = user_info_temp;
ZERO_STRUCT(params);
ZERO_STRUCT(validation);
/*params.flags = WBFLAG_PAM_INFO3_NDR;*/
params.parameter_control = user_info->logon_parameters;
params.parameter_control |= WBC_MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT |
WBC_MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT;
params.level = WBC_AUTH_USER_LEVEL_RESPONSE;
params.account_name = user_info->client.account_name;
params.domain_name = user_info->client.domain_name;
params.workstation_name = user_info->workstation_name;
DEBUG(5,("looking up %s@%s logging in from %s\n",
params.account_name, params.domain_name,
params.workstation_name));
memcpy(params.password.response.challenge,
ctx->auth_ctx->challenge.data.data,
sizeof(params.password.response.challenge));
params.password.response.lm_length =
user_info->password.response.lanman.length;
params.password.response.nt_length =
user_info->password.response.nt.length;
params.password.response.lm_data =
user_info->password.response.lanman.data;
params.password.response.nt_data =
user_info->password.response.nt.data;
wbc_status = wbcAuthenticateUserEx(&params, &info, &err);
if (wbc_status == WBC_ERR_AUTH_ERROR) {
if (err) {
DEBUG(1, ("error was %s (0x%08x)\nerror message was '%s'\n",
err->nt_string, err->nt_status, err->display_string));
nt_status = NT_STATUS(err->nt_status);
wbcFreeMemory(err);
} else {
nt_status = NT_STATUS_LOGON_FAILURE;
}
NT_STATUS_NOT_OK_RETURN(nt_status);
} else if (!WBC_ERROR_IS_OK(wbc_status)) {
DEBUG(1, ("wbcAuthenticateUserEx: failed with %u - %s\n",
wbc_status, wbcErrorString(wbc_status)));
if (err) {
DEBUG(1, ("error was %s (0x%08x)\nerror message was '%s'\n",
err->nt_string, err->nt_status, err->display_string));
}
return NT_STATUS_LOGON_FAILURE;
}
info6 = wbcAuthUserInfo_to_netr_SamInfo6(mem_ctx, info);
wbcFreeMemory(info);
if (!info6) {
DEBUG(1, ("wbcAuthUserInfo_to_netr_SamInfo6 failed\n"));
return NT_STATUS_NO_MEMORY;
}
validation.sam6 = info6;
nt_status = make_user_info_dc_netlogon_validation(mem_ctx,
user_info->client.account_name,
6, &validation,
true, /* This user was authenticated */
user_info_dc);
return nt_status;
}
static const struct auth_operations winbind_ops = {
.name = "winbind",
.want_check = winbind_want_check,
@ -398,12 +302,6 @@ static const struct auth_operations winbind_ops = {
.check_password_recv = winbind_check_password_recv
};
static const struct auth_operations winbind_wbclient_ops = {
.name = "winbind_wbclient",
.want_check = winbind_want_check,
.check_password = winbind_check_password_wbclient
};
_PUBLIC_ NTSTATUS auth4_winbind_init(TALLOC_CTX *ctx)
{
NTSTATUS ret;
@ -414,11 +312,5 @@ _PUBLIC_ NTSTATUS auth4_winbind_init(TALLOC_CTX *ctx)
return ret;
}
ret = auth_register(ctx, &winbind_wbclient_ops);
if (!NT_STATUS_IS_OK(ret)) {
DEBUG(0,("Failed to register 'winbind_wbclient' auth backend!\n"));
return ret;
}
return NT_STATUS_OK;
}