﻿<?xml version="1.0" encoding="utf-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://duendesoftware.com/blog</loc></url><url><loc>https://duendesoftware.com/careers</loc></url><url><loc>https://duendesoftware.com/company</loc></url><url><loc>https://duendesoftware.com/contact/community</loc></url><url><loc>https://duendesoftware.com/contact/general</loc></url><url><loc>https://duendesoftware.com/contact/newsletter</loc></url><url><loc>https://duendesoftware.com/contact/sales</loc></url><url><loc>https://duendesoftware.com/</loc></url><url><loc>https://duendesoftware.com/license</loc></url><url><loc>https://duendesoftware.com/partners</loc></url><url><loc>https://duendesoftware.com/partner-tools-components</loc></url><url><loc>https://duendesoftware.com/privacy</loc></url><url><loc>https://duendesoftware.com/products/bff</loc></url><url><loc>https://duendesoftware.com/products/communityedition</loc></url><url><loc>https://duendesoftware.com/products/features</loc></url><url><loc>https://duendesoftware.com/products/identityserver</loc></url><url><loc>https://duendesoftware.com/products/identityserverredist</loc></url><url><loc>https://duendesoftware.com/products/opensource</loc></url><url><loc>https://duendesoftware.com/product-insiders</loc></url><url><loc>https://duendesoftware.com/terms</loc></url><url><loc>https://duendesoftware.com/training/goodparts</loc></url><url><loc>https://duendesoftware.com/training/iac</loc></url><url><loc>https://duendesoftware.com/training</loc></url><url><loc>https://duendesoftware.com/use-case-application-modernization</loc></url><url><loc>https://duendesoftware.com/use-case-compliance-security-ready-identity</loc></url><url><loc>https://duendesoftware.com/use-case-control-centric-identity-infrastructure</loc></url><url><loc>https://duendesoftware.com/use-case-federation-broker-identity-orchestration</loc></url><url><loc>https://duendesoftware.com/use-case-secure-mcp-implementation</loc></url><url><loc>https://duendesoftware.com/blog/20260402-give-your-ai-coding-assistant-duende-expertise-with-agent-skills-and-mcp-server</loc></url><url><loc>https://duendesoftware.com/blog/20260331-triggering-user-registration-via-openid-connect-with-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/learn/implementing-token-authentication-controller-based-asp-dotnet-core-web-apis-step-by-step-tutorial</loc></url><url><loc>https://duendesoftware.com/learn/api-client-authentication-authorization-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/careers/senior-product-manager-commercial</loc></url><url><loc>https://duendesoftware.com/blog/20260324-improving-dotnet-security-code-with-csharp-14-property-extensions</loc></url><url><loc>https://duendesoftware.com/stories/synthesis-software-technologies</loc></url><url><loc>https://duendesoftware.com/blog/20260317-developing-audit-logs-with-duende-identityserver-events</loc></url><url><loc>https://duendesoftware.com/blog/20260313-patch-releases-addressing-cve-2026-26127-in-microsoft-bcl-memory</loc></url><url><loc>https://duendesoftware.com/blog/20260310-client-initiated-backchannel-authentication-ciba-in-aspnet-core-10-with-duende-identity-server</loc></url><url><loc>https://duendesoftware.com/careers/revops-engineer</loc></url><url><loc>https://duendesoftware.com/careers/account-executive</loc></url><url><loc>https://duendesoftware.com/blog/20260303-rate-limiting-identityserver-endpoints</loc></url><url><loc>https://duendesoftware.com/learn/how-access-tokens-and-id-tokens-flow-through-oauth-openid-connect</loc></url><url><loc>https://duendesoftware.com/learn/best-practices-managing-token-expiration-refresh-revocation-in-web-apis</loc></url><url><loc>https://duendesoftware.com/blog/20260224-its-probably-dns-can-you-dig-it</loc></url><url><loc>https://duendesoftware.com/blog/20260217-security-lingo-explained-encode-vs-encrypt-vs-hash</loc></url><url><loc>https://duendesoftware.com/blog/20260210-implementing-zero-trust-with-resource-isolation</loc></url><url><loc>https://duendesoftware.com/blog/20260203-security-lingo-explained-json-web-token</loc></url><url><loc>https://duendesoftware.com/blog/20260202-announcing-the-duende-identityserver4-migration-analysis-tool</loc></url><url><loc>https://duendesoftware.com/blog/20260202-dpop-security-for-dotnet-apis-with-jwtbearer-extensions-v1</loc></url><url><loc>https://duendesoftware.com/learn/oauth-2-0-explained</loc></url><url><loc>https://duendesoftware.com/blog/20260127-benchmarkdotnet-open-source-sponsorship</loc></url><url><loc>https://duendesoftware.com/learn/what-is-openid-connect-and-how-helps-developers</loc></url><url><loc>https://duendesoftware.com/blog/20260120-security-lingo-explained-pushed-authorization-requests</loc></url><url><loc>https://duendesoftware.com/blog/20260113-why-signing-key-rotation-matters-in-openid-connect-and-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/blog/20260106-security-lingo-explained-openid-connect-provider</loc></url><url><loc>https://duendesoftware.com/blog/20251230-duende-year-end-review-2025-a-year-of-standards-success-and-community</loc></url><url><loc>https://duendesoftware.com/learn/7-common-security-pitfalls-oauth-2-0-implementations</loc></url><url><loc>https://duendesoftware.com/products/faq</loc></url><url><loc>https://duendesoftware.com/learn/what-are-oauth-2-0-grant-types-and-when-to-use-them</loc></url><url><loc>https://duendesoftware.com/blog/20251222-security-lingo-explained-bcp</loc></url><url><loc>https://duendesoftware.com/blog/20251216-security-lingo-explained-dpop</loc></url><url><loc>https://duendesoftware.com/blog/20251209-security-lingo-explained-auth</loc></url><url><loc>https://duendesoftware.com/blog/20251204-why-now-is-an-excellent-time-for-backend-for-frontend-duende-bff-v4</loc></url><url><loc>https://duendesoftware.com/blog/20251202-duende-identityserver-v74-release-now-available-securing-the-age-of-ai-and-dotnet-10-lts</loc></url><url><loc>https://duendesoftware.com/blog/20251202-the-secure-gateway-to-ai-duende-identityserver-and-dynamic-client-registration-for-mcp</loc></url><url><loc>https://duendesoftware.com/blog/20251202-duende-bffv4-now-available-multi-frontend-opentelemetry-and-simplified-security</loc></url><url><loc>https://duendesoftware.com/learn/jwt-token-authentication-real-world-dotnet-api-example</loc></url><url><loc>https://duendesoftware.com/blog/20251126-securing-openapi-and-swagger-ui-with-oauth-in-dotnet-10</loc></url><url><loc>https://duendesoftware.com/learn/step-by-step-jwt-authentication-example</loc></url><url><loc>https://duendesoftware.com/blog/20251124-building-a-federation-gateway-with-duende-identityserver-strategies-and-considerations-for-identity-orchestration</loc></url><url><loc>https://duendesoftware.com/blog/20251120-inspect-and-validate-json-web-tokens-with-the-duende-jwt-decoder</loc></url><url><loc>https://duendesoftware.com/blog/20251118-a-great-time-to-upgrade-from-identityserver4-to-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/blog/20251111-missing-security-features-in-dotnet-10</loc></url><url><loc>https://duendesoftware.com/blog/20251104-dotnet-10-breaking-changes-to-keep-an-eye-on-when-upgrading</loc></url><url><loc>https://duendesoftware.com/blog/20251028-consent-in-openid-connect-balancing-user-choice-and-client-needs-with-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/blog/20251021-adding-dotnet-10-passkey-support-to-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/blog/20251014-deep-dive-into-relying-party-id-and-origin-with-passkeys</loc></url><url><loc>https://duendesoftware.com/blog/20251009-spectre-console-open-source-sponsorship</loc></url><url><loc>https://duendesoftware.com/blog/20251007-passkeys-in-dotnet-10-blazor-apps-with-aspnet-identity</loc></url><url><loc>https://duendesoftware.com/blog/20250930-introduction-to-passkeys-the-future-of-authentication</loc></url><url><loc>https://duendesoftware.com/learn/best-practices-using-jwts-with-web-and-mobile-apps</loc></url><url><loc>https://duendesoftware.com/learn/what-is-jwt-token-and-how-works-in-modern-web-apps</loc></url><url><loc>https://duendesoftware.com/blog/20250923-why-you-should-be-using-dotnet-10-new-tls-certificate</loc></url><url><loc>https://duendesoftware.com/blog/20250916-duende-most-anticipated-dotnet-10-auth-features</loc></url><url><loc>https://duendesoftware.com/blog/20250909-openid-connect-providers-claims-and-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/blog/20250902-dotnet-httpclient-and-delegating-handlers</loc></url><url><loc>https://duendesoftware.com/blog/20250825-optimizing-aspnet-core-web-site-performance</loc></url><url><loc>https://duendesoftware.com/blog/20250814-from-zero-to-duende-identityserver-in-under-an-hour-with-improved-templates</loc></url><url><loc>https://duendesoftware.com/blog/20250814-duende-identityserver-7-3-release-fapi</loc></url><url><loc>https://duendesoftware.com/blog/20250812-filtering-exception-messages-with-serilog-expressions</loc></url><url><loc>https://duendesoftware.com/learn/how-to-build-secure-login-flow-using-asp-dot-net-core-using-identityserver</loc></url><url><loc>https://duendesoftware.com/blog/20250805-best-practices-of-web-application-security-in-2025</loc></url><url><loc>https://duendesoftware.com/learn/implementing-multi-factor-authentication-in-organizations</loc></url><url><loc>https://duendesoftware.com/learn/asp-dot-net-authentication-explained</loc></url><url><loc>https://duendesoftware.com/learn/role-based-access-control-asp-net-core-identity</loc></url><url><loc>https://duendesoftware.com/blog/20250728-aspnet-core-authentication-and-external-providers</loc></url><url><loc>https://duendesoftware.com/learn/a-step-by-step-guide-to-oauth-2-0</loc></url><url><loc>https://duendesoftware.com/blog/20250722-integration-testing-dotnet-auth-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/learn/how-to-generate-store-and-secure-api-tokens-in-web-apps</loc></url><url><loc>https://duendesoftware.com/learn/how-token-based-authentication-works-in-modern-web-apis</loc></url><url><loc>https://duendesoftware.com/learn/the-key-differences-when-using-access-tokens-vs-id-tokens-in-web-app-architecture</loc></url><url><loc>https://duendesoftware.com/blog/20250715-whats-in-the-duende-software-toolkit</loc></url><url><loc>https://duendesoftware.com/blog/20250708-step-up-challenges-with-duende-identityserver-and-aspnet-core-apis</loc></url><url><loc>https://duendesoftware.com/learn/ehancing-web-security-with-identity-frameworks</loc></url><url><loc>https://duendesoftware.com/learn/acess-control-a-comprehensive-guide</loc></url><url><loc>https://duendesoftware.com/stories/norsk-helsenett-helseid</loc></url><url><loc>https://duendesoftware.com/learn/securing-user-identities-with-multi-factor-authentication</loc></url><url><loc>https://duendesoftware.com/blog/20250703-astro-open-source-sponsorship</loc></url><url><loc>https://duendesoftware.com/learn/get-a-free-assessment-and-upgrade-identityserver-4</loc></url><url><loc>https://duendesoftware.com/blog/20250701-step-up-challenges-for-aspnet-core-client-apps-with-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/learn/a-guide-to-securing-your-web-api-with-oauth-2-0</loc></url><url><loc>https://duendesoftware.com/learn/the-differences-between-oauth-2-0-and-openid-connect-and-why-they-matter</loc></url><url><loc>https://duendesoftware.com/blog/20250624-dotnet-8017-upgrades-forwarded-headers-and-unknown-proxy-issues</loc></url><url><loc>https://duendesoftware.com/learn/how-bff-helps-secure-single-page-applications</loc></url><url><loc>https://duendesoftware.com/learn/the-backend-for-frontend-bff-pattern-explained-benefits-challenges-and-best-practices</loc></url><url><loc>https://duendesoftware.com/blog/20250617-what-is-an-oauth-20-and-openid-connect-client</loc></url><url><loc>https://duendesoftware.com/blog/20250610-monitoring-duende-identityserver-license-usage-with-aspnet-core-health-checks</loc></url><url><loc>https://duendesoftware.com/learn/implementing-secure-bff-with-asp-dot-net-core-and-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/learn/important-reasons-for-using-backend-for-frontend</loc></url><url><loc>https://duendesoftware.com/learn/choosing-the-right-identity-management-and-access-control-solutions-for-your-organization</loc></url><url><loc>https://duendesoftware.com/learn/managing-users-with-identity-frameworks</loc></url><url><loc>https://duendesoftware.com/blog/20250603-testing-duende-identityserver-login-flow-with-a-net-10-dotnet-run-appcs</loc></url><url><loc>https://duendesoftware.com/blog/20250527-the-role-of-authenticationproperties-in-aspnet-core</loc></url><url><loc>https://duendesoftware.com/learn/how-to-navigate-identity-authentication-regulations</loc></url><url><loc>https://duendesoftware.com/learn/the-best-spa-frameworks-for-asp-dot-net-core</loc></url><url><loc>https://duendesoftware.com/stories/usc-shoah-foundation</loc></url><url><loc>https://duendesoftware.com/blog/20250520-essential-moments-in-the-oauth-and-openid-connect-timeline</loc></url><url><loc>https://duendesoftware.com/learn/quick-guide-to-bff-backend-for-frontend</loc></url><url><loc>https://duendesoftware.com/learn/duende-identityserver-vs-microsoft-identity-platform</loc></url><url><loc>https://duendesoftware.com/blog/20250513-duende-identityserver-and-otel-metrics-traces-and-logs-in-the-net-aspire-dashboard</loc></url><url><loc>https://duendesoftware.com/blog/20250506-microsoft-azure-sql-and-entity-framework-core-performance-issues-and-solution</loc></url><url><loc>https://duendesoftware.com/blog/20250430-managing-openapi-specifications-with-backend-for-frontend-and-swagger-ui</loc></url><url><loc>https://duendesoftware.com/blog/20250428-duende-developer-community</loc></url><url><loc>https://duendesoftware.com/learn/guide-to-understanding-identity-frameworks</loc></url><url><loc>https://duendesoftware.com/learn/best-practices-for-stronger-identity-authentication</loc></url><url><loc>https://duendesoftware.com/blog/20250422-authorization-policy-tag-helper-aspnetcore-razor-view</loc></url><url><loc>https://duendesoftware.com/blog/20250415-shouldly-assertion-framework</loc></url><url><loc>https://duendesoftware.com/blog/20250409-secure-vue-app-with-openid-connect-bff-pattern</loc></url><url><loc>https://duendesoftware.com/blog/20250325-understanding-antiforgery-in-aspnetcore</loc></url><url><loc>https://duendesoftware.com/blog/20250318-duende-identityserver-7.2.0-release</loc></url><url><loc>https://duendesoftware.com/blog/20250317-duende-backend-for-frontend-bff-v3</loc></url><url><loc>https://duendesoftware.com/blog/20250313-data-protection-aspnetcore-duende-identityserver</loc></url><url><loc>https://duendesoftware.com/license/dora</loc></url><url><loc>https://duendesoftware.com/blog/20250306-identityserver4-public-again</loc></url><url><loc>https://duendesoftware.com/blog/20250227-duende-backend-for-frontend-bff-v3-rc1</loc></url><url><loc>https://duendesoftware.com/blog/20250129-identityserver-7-2-preview-1-release</loc></url><url><loc>https://duendesoftware.com/blog/20250113-new-year-new-identityserver-release-7-1</loc></url><url><loc>https://duendesoftware.com/blog/20241108-access-token-management-patch</loc></url><url><loc>https://duendesoftware.com/blog/20241028-dpop</loc></url><url><loc>https://duendesoftware.com/blog/20240905-par-in-aspnet</loc></url><url><loc>https://duendesoftware.com/blog/20240903-duende-next-chapter</loc></url><url><loc>https://duendesoftware.com/blog/20240813-access-token-management</loc></url><url><loc>https://duendesoftware.com/blog/20240731-security-patch</loc></url><url><loc>https://duendesoftware.com/blog/20240405-refresh-token-reuse</loc></url><url><loc>https://duendesoftware.com/blog/20240125-v7-release</loc></url><url><loc>https://duendesoftware.com/blog/20240123-otel</loc></url><url><loc>https://duendesoftware.com/blog/20231116-par</loc></url><url><loc>https://duendesoftware.com/blog/20231114-v7-preview</loc></url><url><loc>https://duendesoftware.com/blog/20231012-dpop-native</loc></url><url><loc>https://duendesoftware.com/blog/20230510-dcr</loc></url><url><loc>https://duendesoftware.com/blog/20230504-dpop</loc></url><url><loc>https://duendesoftware.com/blog/20230328-pop</loc></url><url><loc>https://duendesoftware.com/blog/20221130-cross-device-bcp</loc></url><url><loc>https://duendesoftware.com/blog/20220804-datm</loc></url><url><loc>https://duendesoftware.com/blog/20220406-session-management</loc></url><url><loc>https://duendesoftware.com/blog/20220224-otel</loc></url><url><loc>https://duendesoftware.com/blog/20220204-admin-ui</loc></url><url><loc>https://duendesoftware.com/blog/20220113-v6-release</loc></url><url><loc>https://duendesoftware.com/blog/20220112-welcome-damian</loc></url><url><loc>https://duendesoftware.com/blog/20220111-fair-trade</loc></url><url><loc>https://duendesoftware.com/blog/20220107-ciba</loc></url><url><loc>https://duendesoftware.com/blog/20211221-welcome-anders</loc></url><url><loc>https://duendesoftware.com/blog/20210929-bff-update</loc></url><url><loc>https://duendesoftware.com/blog/20210520-custom-ui</loc></url><url><loc>https://duendesoftware.com/blog/20210517-dynamic-providers</loc></url><url><loc>https://duendesoftware.com/blog/20210326-bff</loc></url><url><loc>https://duendesoftware.com/blog/20210213-security-patching</loc></url><url><loc>https://duendesoftware.com/blog/20210114-v5-release</loc></url><url><loc>https://duendesoftware.com/blog/20201230-preview3</loc></url><url><loc>https://duendesoftware.com/blog/20201230-resource-isolation</loc></url><url><loc>https://duendesoftware.com/blog/20201210-community-edition</loc></url><url><loc>https://duendesoftware.com/blog/20201125-preview2</loc></url><url><loc>https://duendesoftware.com/blog/20201028-key-management</loc></url><url><loc>https://duendesoftware.com/blog/20201027-preview1</loc></url><url><loc>https://duendesoftware.com/blog/20201001-helloduende</loc></url></urlset>