idmap_config.h revision 148c5f43199ca0b43fc8e3b643aab11cd66ea327
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed/*
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * CDDL HEADER START
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * The contents of this file are subject to the terms of the
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * Common Development and Distribution License (the "License").
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * You may not use this file except in compliance with the License.
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * or http://www.opensolaris.org/os/licensing.
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * See the License for the specific language governing permissions
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * and limitations under the License.
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * When distributing Covered Code, include this CDDL HEADER in each
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * If applicable, add the following below this CDDL HEADER, with the
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * fields enclosed by brackets "[]" replaced with your own identifying
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * information: Portions Copyright [yyyy] [name of copyright owner]
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * CDDL HEADER END
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed/*
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#ifndef _IDMAP_CONFIG_H
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#define _IDMAP_CONFIG_H
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#include "idmap.h"
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#include "addisc.h"
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#include <libscf.h>
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#include <synch.h>
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#ifdef __cplusplus
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern "C" {
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#endif
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#define MAX_POLICY_SIZE 1023
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#define DIRECTORY_MAPPING_NONE 0
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#define DIRECTORY_MAPPING_NAME 1
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#define DIRECTORY_MAPPING_IDMU 2
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedstruct enum_lookup_map {
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed int value;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed char *string;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed};
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern struct enum_lookup_map directory_mapping_map[];
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern const char *enum_lookup(int value, struct enum_lookup_map *map);
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed/* SMF and auto-discovery context handles */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedtypedef struct idmap_cfg_handles {
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed pthread_mutex_t mutex;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed scf_handle_t *main;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed scf_instance_t *instance;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed scf_service_t *service;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed scf_propertygroup_t *config_pg;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed scf_propertygroup_t *debug_pg;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed ad_disc_t ad_ctx;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed} idmap_cfg_handles_t;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed/*
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * This structure stores AD and AD-related configuration
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedtypedef struct idmap_trustedforest {
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed char *forest_name;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed idmap_ad_disc_ds_t
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *global_catalog; /* global catalog hosts */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed ad_disc_domainsinforest_t
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *domains_in_forest;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed} idmap_trustedforest_t;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedtypedef struct idmap_pg_config {
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed uint64_t list_size_limit;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed char *machine_sid; /* machine sid */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed char *default_domain; /* default domain name */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed char *domain_name; /* AD domain name */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed boolean_t domain_name_auto_disc;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed idmap_ad_disc_ds_t
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *domain_controller; /* domain controller hosts */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed boolean_t domain_controller_auto_disc;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed char *forest_name; /* forest name */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed boolean_t forest_name_auto_disc;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed char *site_name; /* site name */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed boolean_t site_name_auto_disc;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed idmap_ad_disc_ds_t
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *global_catalog; /* global catalog hosts */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed boolean_t global_catalog_auto_disc;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed ad_disc_domainsinforest_t
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *domains_in_forest;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed ad_disc_trusteddomains_t
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *trusted_domains; /* Trusted Domains */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed int num_trusted_forests;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed idmap_trustedforest_t
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed *trusted_forests; /* Array of trusted forests */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed /*
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * Following properties are associated with directory-based
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed * name-mappings.
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed char *ad_unixuser_attr;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed char *ad_unixgroup_attr;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed char *nldap_winname_attr;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed int directory_based_mapping; /* enum */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed boolean_t eph_map_unres_sids;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed boolean_t use_lsa;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed boolean_t disable_cross_forest_trusts;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed} idmap_pg_config_t;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedtypedef struct idmap_cfg {
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed idmap_pg_config_t pgcfg; /* live AD/ID mapping config */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed idmap_cfg_handles_t handles;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed int initialized;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed} idmap_cfg_t;
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern void idmap_cfg_unload(idmap_pg_config_t *);
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern int idmap_cfg_load(idmap_cfg_t *, int);
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern idmap_cfg_t *idmap_cfg_init(void);
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern int idmap_cfg_fini(idmap_cfg_t *);
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern int idmap_cfg_upgrade(idmap_cfg_t *);
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern int idmap_cfg_start_updates(void);
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern void idmap_cfg_poke_updates(void);
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reedextern void idmap_cfg_hup_handler(int);
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#define CFG_DISCOVER 0x1
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#define CFG_LOG 0x2
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#ifdef __cplusplus
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed}
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#endif
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed#endif /* _IDMAP_CONFIG_H */
7ddc9b1afd18f260b9fb78ec7732facd91769131Darren Reed