Work with many people at once
After an import, the list holds hundreds of people, and each of them still needs something: a rule, a key, a second factor. Handled one at a time through Weitere (More), that's thousands of clicks. So the Personen und Schlüssel (People and keys) page is built around three things:
- Work lists on the left show where something is still missing and how many people are affected, for example Ohne Regel (No rule) with 212.
- Multiple selection in the list lets you select a whole work list or individual people.
- The Auswahl (Selection) card on the right runs a command for everyone you've selected and shows the progress, a pause button, and the result for each person.
Solution overview
graph LR
subgraph Seite["People page"]
direction LR
A["Work lists (left, collapsible)"] -->|picks| L["List of people, multiple selection"]
L -->|one person in focus| P["Person card: form, wizard, rules …"]
L -->|several selected| S["Auswahl card: commands for everyone selected"]
end
S -->|one request per person, paced by the rate limit| D[("Data service")]
S -->|Nicht erledigte markieren| LFigure: How the People page fits together. The card on the right follows whatever is in focus or selected in the list; the way back (Nicht erledigte markieren (Select incomplete)) closes the loop.
The everyday routine is always the same: pick a work list → select everyone → run a command → check the result → select whatever isn't done yet and run it again. Once the work list no longer shows a count, you're done.
Page layout
| Area | Position | What it shows |
|---|---|---|
| Work lists | left | the work lists and their counts; drag the bar next to them (⋮) to make the area narrower or wider |
| List | center | the people in the selected work list; expand a row to see that person's keys, rules, sessions, and log |
| Right pane | right | cards with tabs: Person and Auswahl (Selection) |
| Rules (split view) | below the list, optional | every rule and how many people hold it; the selected rule is the one Regel geben (Grant rule) and Regel entziehen (Remove rule) use |
| Accesses | below the list, optional | the selected person's latest accesses, newest first |
In the screenshot: (1) work lists, (2) list, (3) right pane with the “Person” card.
The page reads from left to right in the order you work: what you're working on (work list), who (people), and what happens to them (card).
| Area | Default | Minimum |
|---|---|---|
| Work lists | 6 cm (about 2.4 in) | 3.5 cm (about 1.4 in); can be collapsed completely |
| List | everything else, at least half the width | 9 cm (about 3.5 in), so name, state, and second factor stay readable |
| Right pane | 8.5 cm (about 3.3 in), the width of a form | 6 cm (about 2.4 in); wide views such as Anmeldung und Rechte (Sign-in and permissions) temporarily take whatever the list can spare beyond its minimum |
| Below (rules, accesses, sessions) | 35% of the height, off | 4 cm (about 1.6 in), roughly six rows |
On a laptop (1366 × 768 pixels), that leaves about 16 cm (6.3 in) for the list; on a 1920 × 1080 display, about 30 cm (12 in). When the window gets smaller, the list gives way first, then the side areas down to their minimum. To resize an area, drag the narrow bar between it and its neighbor. The app remembers the widths, which areas are collapsed, and the last card shown for your Windows account.
Split view. Below the list, you can show an area with three tabs: Regeln (Rules), Zugriffe (Accesses), and Sitzungen (Sessions) of the selected person. Weitere (More) > Darunter zeigen (Show below) opens it on the tab you want; the same command closes it again. Drag the bar between the list and the area to change the height, and click a tab to switch.
Rules below. Weitere > Darunter zeigen > Regeln der Person (Person's rules) (Ctrl+R) splits the center: people at the top, and below them every rule as a tree with what it covers (databases, resources, objects). The rules of the person in focus in the list have a ✓. That puts the whole chain on one screen: person → their rules → what each rule allows. To see the person's keys, expand their row. When you assign rules, you see both sides at once: select people, pick the rule below, and choose Regel geben. The same command hides the rules again; drag the bar between the two halves to change the height.
In the screenshot: (1) rules below the list.
Accesses below. Weitere > Darunter zeigen > Zugriffe der Person (Protokoll) (Person's accesses (log)) (Ctrl+L) shows, below the list, what the selected person has recently done with the service: Zeitpunkt (UTC) (Time (UTC)), Art (Kind), Datenquelle (Data source), Ressource (Resource), Methode (Method), Ergebnis (Result), Status, and for a rejection the Grund (Reason), newest first. When someone calls to say they can't get in, you can see right away whether and how they tried. The service keeps the latest 10,000 accesses since it started; after the service restarts, the list is empty. The same command hides the accesses again.
Sessions below. Weitere > Darunter zeigen > Sitzungen der Person (Person's sessions) shows the selected person's second-factor sessions, newest first: when and how each was started, how long it's valid, where it came from, the identity, and its state. To end a selected session, choose Weitere > Zweiter Faktor und Sitzung (Second factor and session) > Sitzung beenden (End session).
The card follows your selection. What appears on the right depends on what you've selected in the list:
| Selected | Card | What it shows |
|---|---|---|
| one person | Person | that person's form; the commands under Weitere (wizard, assign rules, sign-in and permissions …) open here too |
| two or more people | Auswahl | the selected people and the commands for them |
| one person again | Person | that person's form; if a selection command is still running, the Auswahl card stays |
You can also click the tabs yourself. The card responds when you select a person in the list, not when you select a key or session on a person's expanded tab.
When the page opens and whenever you switch work lists, the first person in the list is selected and shown in the card. That way the card never shows someone the list isn't showing; if the work list is empty, the card stays empty.
Work lists
| Work list | Who's in it | What usually comes next |
|---|---|---|
| Alle (All) | everyone | — |
| Ohne Regel (No rule) | people without a single rule | Regel geben |
| Ohne Zugang (No access) | no valid key, no Windows account, and no SQL login, so the person can't sign in | Schlüssel per Mail … (Key by email …) |
| Ohne zweiten Faktor (No second factor) | active people who haven't set up a second factor | Zweiten Faktor per Mail … (Second factor by email …), then Zweiten Faktor verlangen … (Require second factor …) |
| Einrichtung offen (Setup pending) | the second factor is set up but has never been confirmed with a code | follow up with the person; if needed, send Zweiten Faktor per Mail … again |
| Schlüssel laufen ab (Keys expiring) | at least one valid key expires within 14 days | Schlüssel neu ausstellen … (Reissue key …) for each key |
| Ohne Mail-Adresse (No email address) | the Mail-Adresse (Email address) field is empty | add the address in the form; invitations skip these people |
| Gesperrt (Locked) | the person's account is disabled (Konto aktiv (Account enabled) cleared), including after Person sperren … (Lock person …) | review; delete only if never used, otherwise it stays locked |
The app recalculates the counts when you open the page, when you choose Aktualisieren (Refresh), and after every selection command. The selected work list is highlighted on the left from the moment the page opens and appears as a filter above the list; click the filter's × to show everyone again. The list's filter row and search apply on top of it.
The “Schlüssel laufen ab” and “Ohne zweiten Faktor” cards on the overview open this page with the matching work list.
Selecting people
| Action | Result |
|---|---|
| Click | one person; the card shows their form |
| Ctrl+click | adds a person to the selection or removes them |
| Shift+click, Shift+↑/↓ | everyone from the last selected person to this one |
| Ctrl+A in the list, or Weitere > Alle der Arbeitsliste markieren (Select entire work list) | everyone in the selected work list |
Ctrl+A selects everyone in the work list, not just the people the filter row or search happens to leave visible. To narrow it down, use Ctrl+click and Shift+click instead.
Commands for the selection
The top of the Auswahl card shows how many people are selected. Below it are the Regel (Rule) field and the commands, grouped in two menu buttons: Regel (Regel geben, Regel entziehen) and Zugang (Access: Schlüssel per Mail …, Zweiten Faktor per Mail …, Zweiten Faktor verlangen …, Zweiten Faktor nicht mehr verlangen). The grid shows where each person stands after the last command; at the bottom, the Markierung (Selection) menu button holds the commands for the selection itself.
| Command | What it does for each person | Skips anyone who … | To undo |
|---|---|---|---|
| Regel geben (pick the rule in the field above or in the split view) | assigns the rule | … already has it | Regel entziehen |
| Regel entziehen | removes the assignment | … doesn't have it | Regel geben |
| Schlüssel per Mail … | issues a key as a one-time link and writes the invitation email; the app asks once for the label and purpose for everyone | … has no email address | revoke the keys one by one |
| Zweiten Faktor per Mail … | sets up the second factor as a one-time link and writes the invitation email | … has no email address or has already confirmed the second factor | — |
| Zweiten Faktor verlangen … | adds the person to the sign-in rule “Zweiter Faktor für ausgewählte Personen” (Second factor for selected people) | … is already in it | Zweiten Faktor nicht mehr verlangen (Stop requiring second factor) |
| Zweiten Faktor nicht mehr verlangen | removes the person from that rule | … isn't in it | Zweiten Faktor verlangen … |
In the screenshot: (1) number of people selected, (2) rule and commands for everyone selected, (3) Nicht erledigte markieren (Select incomplete) and Markierung aufheben (Clear selection).
A person's state in the grid:
| Stand (State) | Meaning |
|---|---|
| Offen (Pending) | not processed yet, or the command was paused |
| Erledigt (Done) | the service saved the change |
| Übersprungen (Skipped) | nothing to do; the note says why |
| Fehler (Error) | the service rejected the change; the note shows its message |
Markierung > Nicht erledigte markieren selects the people marked Offen or Fehler in the list, so running the same command again handles only what's left. Markierung > Markierung aufheben clears the selection and brings back the Person card. While a command is running, Anhalten (Pause) takes the menu button's place; it stops after the current request.
While a command is running, you can still use the list, but a second selection command or an import waits until it finishes, because both share the same rate limit.
Invitations to many people
When you invite more than one person, the app doesn't open each email for you. With classic
Outlook, it asks once (“42 Einladungen jetzt senden?”, Send 42 invitations now?) and then sends the
emails directly; you'll find them in your Sent Items folder. Without classic Outlook, it saves one
draft (.eml) per person in a new folder and opens that folder; open the drafts in your email
program and send them from there.
The app picks the template the same way as for a single invitation, but once for everyone. Anyone without an email address is skipped instead of being prompted for one.
Requiring the second factor
This command doesn't set anything on the person. Instead, it maintains one sign-in rule in the
sign-in policy: scope all, every sign-in method, effect “Zweiter Faktor nötig”
(Second factor required), limited to the people you've added. The rule is called “Zweiter Faktor
für ausgewählte Personen” and appears in the Anmelderichtlinie (Sign-in policy) area like any
other rule; networks you add to it there are kept the next time you run the command. The rule and
its people are saved together in a single request (save-sign-in-rule).
When you remove the last person, the app deletes the rule, because a rule without people would apply to every caller.
Caution: As soon as the rule is saved, everyone in it needs a code to sign in.
- Anyone who doesn't have a second factor yet is rejected, unless their key is newer than the
totp_enrol_hoursperiod (24 hours by default); in that case, they can set up the second factor themselves when they sign in. People who sign in only with a Windows account or SQL login have no key and therefore no such period (HTTP: sign-in (reference), section “Sign-in policy and second factor” (data service documentation)). So send Zweiten Faktor per Mail … first, and wait until the Ohne zweiten Faktor work list no longer counts the people you've selected; the confirmation prompt tells you how many of them still have no confirmed second factor. - Programs that can't prompt for a code (Excel or Power BI over ODBC) need a read-only key with Ohne zweiten Faktor (Without second factor); see Set up or reset the second factor.
Duration and rate limit
The service has no batch request (see HTTP: administration (reference), section “Many operations at once” (data service documentation)). Each person takes at least one request, and an invitation takes two (issuing the key, then the email on your workstation). The commands keep the same pace as the import: at least 250 ms between two requests and, after “too many requests” (HTTP 429), a 60-second pause and at most three attempts. Granting a rule to 300 people therefore takes a little over a minute (an estimate based on the rate limit; it takes longer over a slow connection).
The exception: Zweiten Faktor verlangen and Zweiten Faktor nicht mehr verlangen take a single request for everyone selected.
While a command is running, Access is busy with it, and the list responds only between requests. So schedule commands for several hundred people for a time when you don't need to work in other areas of the app.
Security and data protection
- Many links at once. Every invitation contains a one-time link that works like a key until it's used (see Send an invitation by email). Before a mass invitation, check the Ohne Mail-Adresse work list and spot-check the addresses: a wrong address hands access to a stranger. The confirmation prompt before sending tells you how many emails will go out.
- One command, many records. Every individual change is recorded in the service's change log with you as the actor, just like a change made by hand.
- Local data. The grid on the Auswahl card keeps the names and email addresses of the selected people in the app's local copy. The rows are replaced by the next command and deleted when you sign out and sign in again.