asdasdasd
This commit is contained in:
@@ -61,6 +61,7 @@ return [
|
|||||||
'group_assignment_mode' => getenv('LDAP_GROUP_ASSIGNMENT_MODE') ?: 'group_memberuid',
|
'group_assignment_mode' => getenv('LDAP_GROUP_ASSIGNMENT_MODE') ?: 'group_memberuid',
|
||||||
'group_member_attribute' => getenv('LDAP_GROUP_MEMBER_ATTRIBUTE') ?: 'memberUid',
|
'group_member_attribute' => getenv('LDAP_GROUP_MEMBER_ATTRIBUTE') ?: 'memberUid',
|
||||||
'default_login_shell' => '/bin/sh',
|
'default_login_shell' => '/bin/sh',
|
||||||
|
'apple_schema_enabled' => filter_var(getenv('LDAP_APPLE_SCHEMA_ENABLED') ?: 'false', FILTER_VALIDATE_BOOL),
|
||||||
'home_directory_prefix' => '/home',
|
'home_directory_prefix' => '/home',
|
||||||
'uid_number_start' => (int) (getenv('LDAP_UID_NUMBER_START') ?: 1000010),
|
'uid_number_start' => (int) (getenv('LDAP_UID_NUMBER_START') ?: 1000010),
|
||||||
'gid_number_default' => (int) (getenv('LDAP_GID_NUMBER_DEFAULT') ?: 1000012),
|
'gid_number_default' => (int) (getenv('LDAP_GID_NUMBER_DEFAULT') ?: 1000012),
|
||||||
|
|||||||
@@ -321,16 +321,14 @@ final class LdapProvisioner
|
|||||||
$unixHash = $this->cryptSha512($plainPassword);
|
$unixHash = $this->cryptSha512($plainPassword);
|
||||||
$now = time();
|
$now = time();
|
||||||
$shadowLastChange = (string) floor($now / 86400);
|
$shadowLastChange = (string) floor($now / 86400);
|
||||||
|
$appleSchemaEnabled = (bool) ($this->config['ldap']['apple_schema_enabled'] ?? false);
|
||||||
|
|
||||||
return [
|
$entry = [
|
||||||
'objectClass' => [
|
'objectClass' => [
|
||||||
'apple-user',
|
|
||||||
'extensibleObject',
|
|
||||||
'inetOrgPerson',
|
'inetOrgPerson',
|
||||||
'organizationalPerson',
|
'organizationalPerson',
|
||||||
'person',
|
'person',
|
||||||
'posixAccount',
|
'posixAccount',
|
||||||
'sambaIdmapEntry',
|
|
||||||
'sambaSamAccount',
|
'sambaSamAccount',
|
||||||
'shadowAccount',
|
'shadowAccount',
|
||||||
'top',
|
'top',
|
||||||
@@ -342,13 +340,12 @@ final class LdapProvisioner
|
|||||||
'sn' => $familyName !== '' ? $familyName : $username,
|
'sn' => $familyName !== '' ? $familyName : $username,
|
||||||
'uid' => $username,
|
'uid' => $username,
|
||||||
'uidNumber' => $uidNumber,
|
'uidNumber' => $uidNumber,
|
||||||
'apple-generateduid' => $appleGeneratedUid,
|
|
||||||
'authAuthority' => ';basic;',
|
|
||||||
'displayName' => $displayName !== '' ? $displayName : $username,
|
'displayName' => $displayName !== '' ? $displayName : $username,
|
||||||
'gecos' => $gecos,
|
'gecos' => $gecos,
|
||||||
'givenName' => $givenName,
|
'givenName' => $givenName,
|
||||||
'loginShell' => $loginShell,
|
'loginShell' => $loginShell,
|
||||||
'mail' => $mail,
|
'mail' => $mail,
|
||||||
|
'pwdLastSet' => '0',
|
||||||
'sambaAcctFlags' => '[U ]',
|
'sambaAcctFlags' => '[U ]',
|
||||||
'sambaLMPassword' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
|
'sambaLMPassword' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
|
||||||
'sambaNTPassword' => $ntHash,
|
'sambaNTPassword' => $ntHash,
|
||||||
@@ -363,6 +360,15 @@ final class LdapProvisioner
|
|||||||
'shadowWarning' => (string) ($this->config['ldap']['shadow_warning'] ?? 7),
|
'shadowWarning' => (string) ($this->config['ldap']['shadow_warning'] ?? 7),
|
||||||
'userPassword' => $unixHash,
|
'userPassword' => $unixHash,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if ($appleSchemaEnabled) {
|
||||||
|
array_unshift($entry['objectClass'], 'extensibleObject');
|
||||||
|
array_unshift($entry['objectClass'], 'apple-user');
|
||||||
|
$entry['apple-generateduid'] = $appleGeneratedUid;
|
||||||
|
$entry['authAuthority'] = ';basic;';
|
||||||
|
}
|
||||||
|
|
||||||
|
return $entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ final class RegistrationLdifBuilder
|
|||||||
$mail = trim((string) ($request['email'] ?? ''));
|
$mail = trim((string) ($request['email'] ?? ''));
|
||||||
$appleGeneratedUid = trim((string) ($provisioning['apple_generateduid'] ?? $this->generateUuidV4()));
|
$appleGeneratedUid = trim((string) ($provisioning['apple_generateduid'] ?? $this->generateUuidV4()));
|
||||||
$sambaSid = trim((string) ($provisioning['samba_sid'] ?? ''));
|
$sambaSid = trim((string) ($provisioning['samba_sid'] ?? ''));
|
||||||
|
$appleSchemaEnabled = (bool) ($this->config['ldap']['apple_schema_enabled'] ?? false);
|
||||||
$shadowExpire = (string) ($this->config['ldap']['shadow_expire'] ?? 1);
|
$shadowExpire = (string) ($this->config['ldap']['shadow_expire'] ?? 1);
|
||||||
$shadowFlag = (string) ($this->config['ldap']['shadow_flag'] ?? 0);
|
$shadowFlag = (string) ($this->config['ldap']['shadow_flag'] ?? 0);
|
||||||
$shadowInactive = (string) ($this->config['ldap']['shadow_inactive'] ?? 0);
|
$shadowInactive = (string) ($this->config['ldap']['shadow_inactive'] ?? 0);
|
||||||
@@ -77,16 +78,19 @@ final class RegistrationLdifBuilder
|
|||||||
}
|
}
|
||||||
|
|
||||||
$lines[] = 'dn: uid=' . $username . ',' . $usersDn;
|
$lines[] = 'dn: uid=' . $username . ',' . $usersDn;
|
||||||
$lines[] = 'objectClass: apple-user';
|
|
||||||
$lines[] = 'objectClass: extensibleObject';
|
|
||||||
$lines[] = 'objectClass: inetOrgPerson';
|
$lines[] = 'objectClass: inetOrgPerson';
|
||||||
$lines[] = 'objectClass: organizationalPerson';
|
$lines[] = 'objectClass: organizationalPerson';
|
||||||
$lines[] = 'objectClass: person';
|
$lines[] = 'objectClass: person';
|
||||||
$lines[] = 'objectClass: posixAccount';
|
$lines[] = 'objectClass: posixAccount';
|
||||||
$lines[] = 'objectClass: sambaIdmapEntry';
|
|
||||||
$lines[] = 'objectClass: sambaSamAccount';
|
$lines[] = 'objectClass: sambaSamAccount';
|
||||||
$lines[] = 'objectClass: shadowAccount';
|
$lines[] = 'objectClass: shadowAccount';
|
||||||
$lines[] = 'objectClass: top';
|
$lines[] = 'objectClass: top';
|
||||||
|
|
||||||
|
if ($appleSchemaEnabled) {
|
||||||
|
$lines[] = 'objectClass: apple-user';
|
||||||
|
$lines[] = 'objectClass: extensibleObject';
|
||||||
|
}
|
||||||
|
|
||||||
$lines[] = 'cn: ' . $cn;
|
$lines[] = 'cn: ' . $cn;
|
||||||
|
|
||||||
if ($gidNumber !== '') {
|
if ($gidNumber !== '') {
|
||||||
@@ -106,9 +110,12 @@ final class RegistrationLdifBuilder
|
|||||||
$lines[] = 'uidNumber: ' . $uidNumber;
|
$lines[] = 'uidNumber: ' . $uidNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$lines[] = 'displayName: ' . ($displayName !== '' ? $displayName : $username);
|
||||||
|
|
||||||
|
if ($appleSchemaEnabled) {
|
||||||
$lines[] = 'apple-generateduid: ' . strtoupper($appleGeneratedUid);
|
$lines[] = 'apple-generateduid: ' . strtoupper($appleGeneratedUid);
|
||||||
$lines[] = 'authAuthority: ;basic;';
|
$lines[] = 'authAuthority: ;basic;';
|
||||||
$lines[] = 'displayName: ' . ($displayName !== '' ? $displayName : $username);
|
}
|
||||||
|
|
||||||
if ($gecos !== '') {
|
if ($gecos !== '') {
|
||||||
$lines[] = 'gecos: ' . $gecos;
|
$lines[] = 'gecos: ' . $gecos;
|
||||||
@@ -125,6 +132,11 @@ final class RegistrationLdifBuilder
|
|||||||
$lines[] = 'memberOf: ' . $groupDn;
|
$lines[] = 'memberOf: ' . $groupDn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$lines[] = 'pwdLastSet: 0';
|
||||||
|
$lines[] = 'sambaAcctFlags: [U ]';
|
||||||
|
$lines[] = 'sambaLMPassword: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
|
||||||
|
$lines[] = 'sambaPasswordHistory: 0000000000000000000000000000000000000000000000000000000000000000';
|
||||||
|
$lines[] = 'sambaPwdLastSet: 0';
|
||||||
$lines[] = 'shadowExpire: ' . $shadowExpire;
|
$lines[] = 'shadowExpire: ' . $shadowExpire;
|
||||||
$lines[] = 'shadowFlag: ' . $shadowFlag;
|
$lines[] = 'shadowFlag: ' . $shadowFlag;
|
||||||
$lines[] = 'shadowInactive: ' . $shadowInactive;
|
$lines[] = 'shadowInactive: ' . $shadowInactive;
|
||||||
|
|||||||
Reference in New Issue
Block a user