1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-09 08:58:35 +03:00
samba-mirror/source4/kdc/authn_policy_util.h
Joseph Sutton b3a8565582 auth: Move authn_policy code into auth subsystem
This ensures that this code will still be usable by other libraries and
subsystems if Samba is built with ‘--without-ad-dc’.

We also drop dependencies on ‘ldb’ and ‘talloc’ that we shouldn’t have
needed anyway.

Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
2023-06-15 05:29:28 +00:00

91 lines
2.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Unix SMB/CIFS implementation.
Samba Active Directory authentication policy utility functions
Copyright (C) Catalyst.Net Ltd 2023
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef KDC_AUTHN_POLICY_UTIL_H
#define KDC_AUTHN_POLICY_UTIL_H
#include "lib/replace/replace.h"
#include "auth/authn_policy.h"
#include <talloc.h>
struct ldb_context;
struct loadparm_context;
struct ldb_message;
bool authn_policy_silos_and_policies_in_effect(struct ldb_context *samdb);
bool authn_policy_allowed_ntlm_network_auth_in_effect(struct ldb_context *samdb);
/*
* Look up the silo assigned to an account. If one exists, returns its details
* and whether it is enforced or not. silo_attrs comprises the attributes to
* include in the search result, the relevant set of which can differ depending
* on the accounts objectClass.
*/
int authn_policy_get_assigned_silo(struct ldb_context *samdb,
TALLOC_CTX *mem_ctx,
const struct ldb_message *msg,
const char *const *silo_attrs,
const struct ldb_message **silo_msg_out,
bool *is_enforced);
/* Authentication policies for Kerberos clients. */
/*
* Get the applicable authentication policy for an account acting as a Kerberos
* client.
*/
int authn_policy_kerberos_client(struct ldb_context *samdb,
TALLOC_CTX *mem_ctx,
const struct ldb_message *msg,
const struct authn_kerberos_client_policy **policy_out);
/* Return whether an authentication policy enforces device restrictions. */
bool authn_policy_device_restrictions_present(const struct authn_kerberos_client_policy *policy);
/* Authentication policies for NTLM clients. */
/*
* Get the applicable authentication policy for an account acting as an NTLM
* client.
*/
int authn_policy_ntlm_client(struct ldb_context *samdb,
TALLOC_CTX *mem_ctx,
const struct ldb_message *msg,
const struct authn_ntlm_client_policy **policy_out);
/* Authentication policies for servers. */
struct authn_server_policy;
/*
* Get the applicable authentication policy for an account acting as a
* server.
*/
int authn_policy_server(struct ldb_context *samdb,
TALLOC_CTX *mem_ctx,
const struct ldb_message *msg,
const struct authn_server_policy **policy_out);
/* Return whether an authentication policy enforces restrictions. */
bool authn_policy_restrictions_present(const struct authn_server_policy *policy);
#endif