A brand asks you to switch its domain to federated-only sign-in, so how do you sequence that and who must keep a way in?
answer
- per tenant, over verified domains
- parallel first, flip last
- measure the residual local sign-ins
- contractors, machines, their administrators
- gates new sign-ins only
basics
~20 sRun both paths in parallel until the connection has proved itself against real traffic, then flip a per-tenant flag that gates new sign-ins for that tenant's verified domains. Keep an explicit route for people no provider vouches for, including that tenant's own administrators.
solid answer
~50 sEnforcement is a per-tenant setting over that tenant's verified domains, not a product-wide switch, and it is the last step rather than the first. Route the domain to the connection while local sign-in still works, watch the split of successful sign-ins by route for a real period - a full shift pattern, not an afternoon - and only then gate local sign-in for those domains. Three groups need a route that does not depend on the customer's provider: contractors and agency staff whose addresses are outside the verified domains, integration accounts that no provider vouches for, and a named, small, alarmed set of that tenant's own administrators, so the flag cannot leave a customer with nobody able to get in. And say the lag out loud: the flag gates *new* sign-ins, so a session issued before the flip keeps working until it expires or is explicitly ended.
code
pseudocode · 11 linesadmit(typed_address, tenant, connection):
domain = domain_part(typed_address)
if tenant.enforcementOn and verified_domains.covers(tenant, domain):
if not exception_list.contains(tenant, typed_address):
return FEDERATED_ONLY(connection) # no local credential accepted
return ALLOW_LOCAL_OR_FEDERATED(connection)
# note: this runs on a NEW sign-in only. A session issued before
# enforcementOn was set stays valid until it expires or is ended.go deeper
Know that turning on federated-only sign-in is a setting for one customer over its own verified domains, and that some accounts - machines, contractors - were never going to have a provider to authenticate them.
Explain the ordering: connection live, routing on with local sign-in still available, measure who still arrives locally, then gate. Say what the gate applies to - new sign-ins for that tenant's verified domains.
Show the residual population and how you find it before the flip, keep the flag revertible without a release, and state the session lag precisely rather than implying the flip is retroactive.
Make the two arguments that outlive the rollout: which customer divergences you absorb as configuration versus decline as code, and what you may honestly promise a customer about a claim whose truth depends on a short exception list and a closed session gap.
## What the flag actually is "Federated-only" is a per-tenant setting that says: for sign-ins arriving on this tenant's verified domains, the customer's identity provider is the only admissible authenticator. It is scoped to domains rather than to accounts, because the domain is what routing already resolves and what the customer verified. It is a property of the tenant, because in a group of hotel brands one brand will enforce a year before another and a global switch serves neither. ## Sequencing 1. **Connection live, routing off.** The record is validated and in a testing state; a handful of named pilot users reach the provider through an explicit link. Nobody else notices. 2. **Routing on, local sign-in still working.** The verified domain now resolves to the connection, so ordinary sign-ins go through the provider - but a person whose sign-in fails there can still use their existing credential. This is the step that earns the flip, and it needs to run long enough to cover the customer's real pattern: a full week, including the shift change, the weekend and whichever day their directory team makes changes. 3. **Measure.** Successful sign-ins by route, per day, per domain. A residual population still arriving locally is the list you must resolve before the flip, and it is never empty on the first look - it holds the contractors, the integration accounts and the two managers whose addresses sit under an old domain. 4. **Flip, reversibly.** The flag gates new sign-ins. Keep it revertible by a support engineer without a release, because the first flip sometimes finds a population the measurement missed. ## Who must keep a way in | Group | Why the provider cannot vouch for them | Route to keep | |---|---|---| | Contractors and agency staff | Their addresses are under their employer's domain, not a verified one | Invitation-bound accounts outside the enforced domains | | Integration and machine accounts | No human authenticates them at all | Their own credential type, never a person's password | | The tenant's own administrators | If the provider or the connection breaks, they are locked out of the controls that would fix it | A small named set, alarmed on every use, reviewed | That last row is the one to argue in the design review, and it is deliberately narrow: a named set, loud alerting on use, and the general doctrine for emergency access - how such credentials are stored, what approval their use requires - is somebody else's discipline and not re-invented here. The product constraint is simply that turning enforcement on must not be able to leave a customer with no way to reach their own settings. ## The lag nobody mentions until the audit The flag changes what happens at the next sign-in. It does not reach back: - A session issued ten minutes before the flip keeps working until it expires or is ended deliberately. - Any long-lived credential the account holds keeps working on the same terms. So if the customer's intent is "from now on, only our provider admits people", the flip alone does not deliver it - it has to be paired with ending the sessions those accounts already hold, which is the session-inventory work rather than this decision's mechanism. What belongs to *this* decision is owning the gap: telling the customer how long it lasts, and choosing whether to close it. ## The judgment underneath Every brand will ask for one more thing at this step: a different entry point, an extra attribute, an exception for one department, a bespoke error page. The question worth answering once, before the tenth brand asks, is **which divergences you absorb as configuration and which you decline**. A divergence that becomes a row in the connection record costs you a field and a test. A divergence that becomes a branch keyed on a customer's name costs you that branch forever, and the tenth brand will want its own. The honest answer is usually: absorb naming, endpoints, admission and entry point; decline anything that changes what a role means or the order in which your sign-in runs. The second judgment is what you promise. "Your staff can only get in through your provider" is a strong claim, and it is true only to the extent that the exception list stays short, the sessions gap is closed, and the accounts outside the enforced domains are reviewed. Sell the claim you can actually operate.
- The customer wants the flip immediately, with no parallel period. What do you tell them?That the parallel period is what makes the flip reversible in practice rather than in theory. Without it you have no measurement of who still arrives locally, so the first flip discovers that population as an outage during a shift change. If they insist, shorten it rather than skip it, keep the revert to a single support action, and agree in advance who gets called when the list turns out to be longer than expected.
- After the flip, how long can somebody who left the brand last week still use the app?Until whatever they already hold stops working. Enforcement gates new sign-ins; a session or credential issued beforehand runs to its own expiry. If that window is unacceptable, the flip has to be paired with ending those sessions explicitly - that mechanism belongs to session inventory and revocation - and with the customer's own deprovisioning path. State the number rather than implying it is zero.
- A brand asks for a bespoke sign-in page keyed on its name. Absorb it or decline?Decline the branch; consider the field. Per-tenant branding driven by values in the connection record - a name, a logo reference, a support contact - costs one field and serves every brand. A page whose behaviour is keyed on a customer's identity is a permanent code path that the next nine customers will each want a variant of, and it makes every change to sign-in a per-customer regression risk.
saying these in an interview costs you the question
- Treats federated-only as one global switch for every tenant
- Flips enforcement the same day the connection first works
- Assumes every person in the tenant has an address under a verified domain
- Believes the flip ends sessions that were already issued
- Leaves the tenant's own administrators with no route if the provider breaks
- Accepts a per-customer code branch rather than a connection field