diff --git a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
index 9b7cea47cd6d0c753c02546a83f9969d6e543a08..d97dee1e2b586f2a1bf01ed02059bcc31f687afd 100644
--- a/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
+++ b/alfa-client/libs/admin/user/src/lib/user-form/user.formservice.ts
@@ -32,10 +32,19 @@ import {
   PatchConfig,
 } from '@admin/keycloak-shared';
 import { NavigationService } from '@alfa-client/navigation-shared';
-import { EMPTY_STRING, isLoaded, mapToResource, StateResource } from '@alfa-client/tech-shared';
+import {
+  checkBoxGroupsEmptyValidator,
+  EMPTY_STRING,
+  fieldEmptyValidator,
+  fieldInvalidValidator,
+  fieldLengthValidator,
+  isLoaded,
+  mapToResource,
+  StateResource,
+} from '@alfa-client/tech-shared';
 import { SnackBarService } from '@alfa-client/ui';
 import { Injectable, OnDestroy } from '@angular/core';
-import { AbstractControl, FormControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
+import { AbstractControl, FormControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
 import { UrlSegment } from '@angular/router';
 import { filter, Observable, Subscription, tap } from 'rxjs';
 
@@ -93,21 +102,31 @@ export class UserFormService extends KeycloakFormService<User> implements OnDest
   _initForm(): UntypedFormGroup {
     return this.formBuilder.group(
       {
-        [UserFormService.FIRST_NAME]: new FormControl(EMPTY_STRING, Validators.required),
-        [UserFormService.LAST_NAME]: new FormControl(EMPTY_STRING),
-        [UserFormService.USERNAME]: new FormControl(EMPTY_STRING),
-        [UserFormService.EMAIL]: new FormControl(EMPTY_STRING),
-        [UserFormService.CLIENT_ROLES]: this.formBuilder.group({
-          [UserFormService.ADMINISTRATION_GROUP]: this.formBuilder.group({
-            [UserFormService.ADMIN]: new FormControl(false),
-            [UserFormService.DATENBEAUFTRAGUNG]: new FormControl(false),
-          }),
-          [UserFormService.ALFA_GROUP]: this.formBuilder.group({
-            [UserFormService.LOESCHEN]: new FormControl(false),
-            [UserFormService.USER]: new FormControl(false),
-            [UserFormService.POSTSTELLE]: new FormControl(false),
-          }),
-        }),
+        [UserFormService.FIRST_NAME]: new FormControl(EMPTY_STRING, fieldEmptyValidator(UserFormService.FIRST_NAME)),
+        [UserFormService.LAST_NAME]: new FormControl(EMPTY_STRING, fieldEmptyValidator(UserFormService.LAST_NAME)),
+        [UserFormService.USERNAME]: new FormControl(EMPTY_STRING, [fieldLengthValidator(UserFormService.USERNAME, 3, 255)]),
+        [UserFormService.EMAIL]: new FormControl(EMPTY_STRING, [
+          fieldInvalidValidator(UserFormService.EMAIL, /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/),
+        ]),
+        [UserFormService.CLIENT_ROLES]: this.formBuilder.group(
+          {
+            [UserFormService.ADMINISTRATION_GROUP]: this.formBuilder.group({
+              [UserFormService.ADMIN]: new FormControl(false),
+              [UserFormService.DATENBEAUFTRAGUNG]: new FormControl(false),
+            }),
+            [UserFormService.ALFA_GROUP]: this.formBuilder.group({
+              [UserFormService.LOESCHEN]: new FormControl(false),
+              [UserFormService.USER]: new FormControl(false),
+              [UserFormService.POSTSTELLE]: new FormControl(false),
+            }),
+          },
+          {
+            validators: checkBoxGroupsEmptyValidator(UserFormService.CLIENT_ROLES, [
+              UserFormService.ADMINISTRATION_GROUP,
+              UserFormService.ALFA_GROUP,
+            ]),
+          },
+        ),
         [UserFormService.GROUPS]: this.formBuilder.group({}),
       },
       { updateOn: 'submit' },