Interviewfrage für Backend-Entwickler

Wie entwirfst du Autorisierung für ein System, in dem Rechte nach Team, Ressource und Plan variieren?

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

Trenn Authentifizierung von Autorisierung und wähl dann ein Modell: Role Based Access Control ist einfach und funktioniert, wenn sich Rechte in eine Handvoll Rollen bündeln, während attributbasierte Regeln zu Bedingungen auf der Ressource passen, etwa Owner, Team oder Plan. Setz das an einer Stelle durch, idealerweise in einer Policy-Schicht, die die Handler aufrufen, halt die Prüfungen nah an den Daten, damit keine Query Zeilen leaken kann, und logg jede Entscheidung für das Audit.

Warum Interviewer das fragen

Der Interviewer prüft, ob du if-Abfragen über die Controller streust oder etwas Reviewbares entwirfst. Er will hören, dass Policy zentralisiert wird, dass standardmäßig verweigert wird, und den Klassiker Broken Object Level Authorization, wo ein Endpoint prüft, dass der Nutzer eingeloggt ist, aber nicht, dass der Datensatz ihm gehört. Mandantenfähigkeit verschärft das, denn ein fehlender Filter leakt die Daten eines anderen Kunden.

So baust du deine Antwort auf

  • Trenn Authentifizierung und Autorisierung explizit.
  • Wähl ein Modell und begründ es damit, wie sich die Rechte tatsächlich bündeln.
  • Leg die Durchsetzung in eine Schicht, mit Verweigern als Default.
  • Geh auf Prüfungen auf Objektebene und Auditierbarkeit ein.

Beispielantwort

Gesprochenes Beispiel, erste Person

Authentifizierung beantwortet, wer du bist, und passiert einmal am Rand; Autorisierung beantwortet, was du darfst, und passiert bei jedem Request gegen eine konkrete Ressource. Beim Modell starte ich mit Rollen, weil sie leicht nachvollziehbar und dem Support leicht zu erklären sind, und ergänze Attributbedingungen dort, wo Rollen allein es nicht ausdrücken können, etwa dieser Nutzer ist auf dem Plan mit Exporten, oder dieser Datensatz gehört seinem Team. Wichtiger als das Modell ist, dass es genau eine Stelle gibt, die entscheidet. Ich will eine Policy-Funktion pro Ressourcentyp, die Handler aufrufen, mit Verweigern als Default, damit ein neuer Endpoint, der die Prüfung vergisst, eine sichtbare Auslassung ist statt ein stilles Loch. Bei allem Mandantenfähigen schiebe ich den Tenant-Filter zusätzlich in die Datenschicht, damit eine Query physisch keine Zeilen eines anderen Mandanten liefern kann, denn sich darauf zu verlassen, dass jeder Entwickler an eine where-Klausel denkt, geht irgendwann schief. Und jede Entscheidung wird mit Subjekt, Ressource und Ergebnis geloggt, weil die erste Frage in jedem Incident lautet, wer was sehen konnte.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Was ist Broken Object Level Authorization, und wie testest du darauf?
  • Wie würdest du Rechte handhaben, die ein Kundenadministrator selbst konfigurieren kann?
  • Wo cachst du Autorisierungsentscheidungen, ohne dass sie veralten?

Weitere Fragen für Backend-Entwickler

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen