Skip to main content
Dejan Demonjić brand logoDejan Demonjić
Decision log
Work
About
Contact

Identity and security

Log entries on this topic, newest first.

  1. Decision recordIdentity and access

    Mutual TLS and certificate-bound tokens for the links that matter

    Client credentials alone let a token travel. For the links between a site and its cloud, and between an assistant's tool servers and the API, every token is bound to the client's certificate (RFC 8705), tokens are exchanged instead of forwarded (RFC 8693), and resources announce their issuer (RFC 9728). The decision record, with the parts that only building it revealed.

    16 Oct 2026 · 8 min read

  2. Decision recordIdentity and access

    A Content Security Policy for an identity server

    The strictest policy a sign-in page can carry, which directive is left out and why, what base-uri 'none' does to a Blazor page, and why the policy is chosen from the endpoint. A design note from building Hexavera's identity host.

    16 Oct 2026 · 6 min read

  3. Decision recordIdentity and access

    When the token store is down, the honest answer is 503

    A resource server that cannot check a token must refuse it, and a 401 is the wrong refusal: it tells the client its token is bad and signs the user out. The design: fail closed, classify the fault by what the data provider says, answer 503 with a Retry-After drawn per response, and let anonymous routes ask before they say 'not signed in'.

    16 Oct 2026 · 7 min read

  4. Decision recordIdentity and access

    Decide from the endpoint, not from the path

    Rate limits, security headers and access gates are per-endpoint decisions. ASP.NET Core accepts several spellings of one path, so a decision made by comparing the path is a decision made on incomplete information. Put it on the endpoint, and test that every endpoint is covered.

    16 Oct 2026 · 6 min read

  5. Decision recordIdentity and access

    One identity server for the cloud and for every site

    When the same product runs in the cloud and at customer sites, identity is part of the product, so one identity host on OpenIddict and ASP.NET Core Identity serves both. The decision record: the model, the values, the options rejected, and what it costs.

    16 Oct 2026 · 8 min read

  6. Platform

    Hexavera

    A workforce and access-control platform: its identity server, its multi-tenant cloud, and the gateway between the cloud and physical door controllers.

    • .NET 10 · Blazor · OpenIddict · PostgreSQL · .NET Aspire
Dejan Demonjić

Designing and building secure, multi-tenant .NET platforms, and writing down the decisions behind them.

Read

  • Decision log
  • Work
  • RSS feed

Contact

  • dejan@demonjic.com
  • Write to me
  • About

Elsewhere

© Dejan Demonjić. Written in Belgrade.