mirror of
https://github.com/bitwarden/directory-connector
synced 2025-12-18 17:23:27 +00:00
80 lines
2.7 KiB
C#
80 lines
2.7 KiB
C#
using Bit.Core.Enums;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.DirectoryServices;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Bit.Core.Models
|
|
{
|
|
public class SyncConfiguration
|
|
{
|
|
public SyncConfiguration() { }
|
|
|
|
public SyncConfiguration(DirectoryType type)
|
|
{
|
|
Ldap = new LdapSyncConfiguration(type);
|
|
|
|
switch(type)
|
|
{
|
|
case DirectoryType.ActiveDirectory:
|
|
break;
|
|
case DirectoryType.AzureActiveDirectory:
|
|
GroupFilter = null;
|
|
UserFilter = null;
|
|
break;
|
|
case DirectoryType.Other:
|
|
IntervalMinutes = 60;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
public string GroupFilter { get; set; }
|
|
public string UserFilter { get; set; }
|
|
public bool SyncGroups { get; set; } = true;
|
|
public bool SyncUsers { get; set; } = true;
|
|
public int IntervalMinutes { get; set; } = 5;
|
|
public LdapSyncConfiguration Ldap { get; set; } = new LdapSyncConfiguration();
|
|
|
|
public class LdapSyncConfiguration
|
|
{
|
|
public LdapSyncConfiguration() { }
|
|
|
|
public LdapSyncConfiguration(DirectoryType type)
|
|
{
|
|
switch(type)
|
|
{
|
|
case DirectoryType.ActiveDirectory:
|
|
CreationDateAttribute = "whenCreated";
|
|
RevisionDateAttribute = "whenChanged";
|
|
UserEmailPrefixAttribute = "sAMAccountName";
|
|
UserPath = "Users";
|
|
GroupPath = "Users";
|
|
break;
|
|
case DirectoryType.Other:
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
public string UserPath { get; set; }
|
|
public string GroupPath { get; set; }
|
|
public string UserObjectClass { get; set; } = "person";
|
|
public string GroupObjectClass { get; set; } = "group";
|
|
public string MemberAttribute { get; set; } = "member";
|
|
public string GroupNameAttribute { get; set; } = "name";
|
|
public string UserEmailAttribute { get; set; } = "mail";
|
|
public bool EmailPrefixSuffix { get; set; } = false;
|
|
public string UserEmailPrefixAttribute { get; set; } = "cn";
|
|
public string UserEmailSuffix { get; set; } = "@companyname.com";
|
|
public string CreationDateAttribute { get; set; }
|
|
public string RevisionDateAttribute { get; set; }
|
|
}
|
|
}
|
|
}
|