namespace ZB.MOM.WW.OtOpcUa.Host.Configuration
{
///
/// LDAP authentication and group-to-role mapping settings.
///
public class LdapConfiguration
{
///
/// Gets or sets whether LDAP authentication is enabled.
/// When true, user credentials are validated against the configured LDAP server
/// and group membership determines OPC UA permissions.
///
public bool Enabled { get; set; } = false;
///
/// Gets or sets the LDAP server hostname or IP address.
///
public string Host { get; set; } = "localhost";
///
/// Gets or sets the LDAP server port.
///
public int Port { get; set; } = 3893;
///
/// Gets or sets the base DN for LDAP operations.
///
public string BaseDN { get; set; } = "dc=lmxopcua,dc=local";
///
/// Gets or sets the bind DN template. Use {username} as a placeholder.
///
public string BindDnTemplate { get; set; } = "cn={username},dc=lmxopcua,dc=local";
///
/// Gets or sets the service account DN used for LDAP searches (group lookups).
///
public string ServiceAccountDn { get; set; } = "";
///
/// Gets or sets the service account password.
///
public string ServiceAccountPassword { get; set; } = "";
///
/// Gets or sets the LDAP connection timeout in seconds.
///
public int TimeoutSeconds { get; set; } = 5;
///
/// Gets or sets the LDAP group name that grants read-only access.
///
public string ReadOnlyGroup { get; set; } = "ReadOnly";
///
/// Gets or sets the LDAP group name that grants write access for FreeAccess/Operate attributes.
///
public string WriteOperateGroup { get; set; } = "WriteOperate";
///
/// Gets or sets the LDAP group name that grants write access for Tune attributes.
///
public string WriteTuneGroup { get; set; } = "WriteTune";
///
/// Gets or sets the LDAP group name that grants write access for Configure attributes.
///
public string WriteConfigureGroup { get; set; } = "WriteConfigure";
///
/// Gets or sets the LDAP group name that grants alarm acknowledgment access.
///
public string AlarmAckGroup { get; set; } = "AlarmAck";
}
}