X-Git-Url: http://git.samba.org/samba.git/?p=kai%2Fsamba.git;a=blobdiff_plain;f=source4%2Fauth%2Fsession.h;h=8ab6288d64203d7133d3b43cc61499b560afd936;hp=933b14a1b4481dc96e93b34277c02473e5221193;hb=e3821f2c40691cc747d887bac14d4e3d37f0763b;hpb=28c29e7ad364a5e0a3aaa91d2dfd4400596ac691 diff --git a/source4/auth/session.h b/source4/auth/session.h index 933b14a1b44..8ab6288d642 100644 --- a/source4/auth/session.h +++ b/source4/auth/session.h @@ -21,49 +21,59 @@ #ifndef _SAMBA_AUTH_SESSION_H #define _SAMBA_AUTH_SESSION_H -struct auth_session_info { - struct security_token *security_token; - struct auth_serversupplied_info *server_info; - DATA_BLOB session_key; - struct cli_credentials *credentials; -}; - +#include "libcli/security/security.h" #include "librpc/gen_ndr/netlogon.h" +#include "librpc/gen_ndr/auth.h" +struct tevent_context; +struct ldb_context; +struct ldb_dn; /* Create a security token for a session SYSTEM (the most * trusted/prvilaged account), including the local machine account as * the off-host credentials */ -struct auth_session_info *system_session(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx) ; - -/* - * Create a system session, but with anonymous credentials (so we do - * not need to open secrets.ldb) - */ -struct auth_session_info *system_session_anon(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx); - +struct auth_session_info *system_session(struct loadparm_context *lp_ctx) ; -NTSTATUS auth_anonymous_server_info(TALLOC_CTX *mem_ctx, - const char *netbios_name, - struct auth_serversupplied_info **_server_info) ; -NTSTATUS auth_generate_session_info(TALLOC_CTX *mem_ctx, - struct event_context *event_ctx, - struct loadparm_context *lp_ctx, - struct auth_serversupplied_info *server_info, - struct auth_session_info **_session_info) ; - -NTSTATUS make_server_info_netlogon_validation(TALLOC_CTX *mem_ctx, - const char *account_name, - uint16_t validation_level, - union netr_Validation *validation, - struct auth_serversupplied_info **_server_info); +NTSTATUS auth_anonymous_user_info_dc(TALLOC_CTX *mem_ctx, + const char *netbios_name, + struct auth_user_info_dc **interim_info); +NTSTATUS auth_generate_session_info(TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx, /* Optional, if you don't want privilages */ + struct ldb_context *sam_ctx, /* Optional, if you don't want local groups */ + struct auth_user_info_dc *interim_info, + uint32_t session_info_flags, + struct auth_session_info **session_info); NTSTATUS auth_anonymous_session_info(TALLOC_CTX *parent_ctx, - struct event_context *ev_ctx, struct loadparm_context *lp_ctx, - struct auth_session_info **_session_info); + struct auth_session_info **session_info); +struct auth_session_info *auth_session_info_from_transport(TALLOC_CTX *mem_ctx, + struct auth_session_info_transport *session_info_transport, + struct loadparm_context *lp_ctx, + const char **reason); +NTSTATUS auth_session_info_transport_from_session(TALLOC_CTX *mem_ctx, + struct auth_session_info *session_info, + struct tevent_context *event_ctx, + struct loadparm_context *lp_ctx, + struct auth_session_info_transport **transport_out); + +/* Produce a session_info for an arbitary DN or principal in the local + * DB, assuming the local DB holds all the groups + * + * Supply either a principal or a DN + */ +NTSTATUS authsam_get_session_info_principal(TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx, + struct ldb_context *sam_ctx, + const char *principal, + struct ldb_dn *user_dn, + uint32_t session_info_flags, + struct auth_session_info **session_info); struct auth_session_info *anonymous_session(TALLOC_CTX *mem_ctx, - struct event_context *event_ctx, struct loadparm_context *lp_ctx); +struct auth_session_info *admin_session(TALLOC_CTX *mem_ctx, + struct loadparm_context *lp_ctx, + struct dom_sid *domain_sid); + #endif /* _SAMBA_AUTH_SESSION_H */