<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>https://joonasw.net/articles/</loc><lastmod>2025-11-30T11:56:28+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure/</loc><lastmod>2025-11-30T11:56:28+00:00</lastmod></url><url><loc>https://joonasw.net/tag/durable-functions/</loc><lastmod>2025-11-30T11:56:28+00:00</lastmod></url><url><loc>https://joonasw.net/view/durable-functions-deep-dive-part-4-executing-an-activity/</loc><lastmod>2025-11-30T11:56:28+00:00</lastmod></url><url><loc>https://joonasw.net/</loc><lastmod>2025-11-30T11:56:28+00:00</lastmod></url><url><loc>https://joonasw.net/tag/</loc><lastmod>2025-11-30T11:56:28+00:00</lastmod></url><url><loc>https://joonasw.net/tag/security/</loc><lastmod>2025-07-26T01:03:31+00:00</lastmod></url><url><loc>https://joonasw.net/view/what-the-heck-is-azure-key-vault-managed-hsm/</loc><lastmod>2025-07-26T01:03:31+00:00</lastmod></url><url><loc>https://joonasw.net/view/deploying-ef-core-migrations-in-release-pipelines/</loc><lastmod>2025-07-12T04:17:30+00:00</lastmod></url><url><loc>https://joonasw.net/tag/ef-core/</loc><lastmod>2025-07-12T04:17:30+00:00</lastmod></url><url><loc>https://joonasw.net/tag/architecture/</loc><lastmod>2025-03-26T16:07:52+00:00</lastmod></url><url><loc>https://joonasw.net/view/good-enough-security-for-an-azure-paas-application/</loc><lastmod>2025-03-26T16:07:52+00:00</lastmod></url><url><loc>https://joonasw.net/view/building-vehicle-location-tracking-app-in-azure-part-5-front-end/</loc><lastmod>2024-03-20T07:37:19+00:00</lastmod></url><url><loc>https://joonasw.net/tag/iot/</loc><lastmod>2024-03-20T07:37:19+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure-functions/</loc><lastmod>2024-03-14T08:57:13+00:00</lastmod></url><url><loc>https://joonasw.net/view/building-vehicle-location-tracking-app-in-azure-part-4-signalr/</loc><lastmod>2024-03-14T08:57:13+00:00</lastmod></url><url><loc>https://joonasw.net/view/building-vehicle-location-tracking-app-in-azure-part-3-function-app/</loc><lastmod>2024-03-12T09:56:44+00:00</lastmod></url><url><loc>https://joonasw.net/view/building-vehicle-location-tracking-app-in-azure-part-2-device-simulator/</loc><lastmod>2024-02-29T12:20:32+00:00</lastmod></url><url><loc>https://joonasw.net/view/building-vehicle-location-tracking-app-in-azure-part-1-architecture/</loc><lastmod>2024-02-22T16:19:54+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure-key-vault/</loc><lastmod>2024-02-20T14:50:52+00:00</lastmod></url><url><loc>https://joonasw.net/view/using-azure-key-vault-for-signing-and-encrypting-json-web-tokens/</loc><lastmod>2024-02-20T14:50:52+00:00</lastmod></url><url><loc>https://joonasw.net/view/durable-functions-deep-dive-part-3-running-an-activity/</loc><lastmod>2022-09-11T13:02:51+00:00</lastmod></url><url><loc>https://joonasw.net/view/durable-functions-deep-dive-part-2-starting-an-orchestration/</loc><lastmod>2022-04-08T19:07:20+00:00</lastmod></url><url><loc>https://joonasw.net/view/durable-functions-deep-dive-part-1-instance-startup/</loc><lastmod>2022-03-27T13:56:27+00:00</lastmod></url><url><loc>https://joonasw.net/view/building-code-sandbox-with-durable-functions-and-container-instances/</loc><lastmod>2022-03-20T19:27:54+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure-ad/</loc><lastmod>2021-09-12T12:12:25+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-ad-jwt-authentication-in-net-isolated-process-azure-functions/</loc><lastmod>2021-09-12T12:12:25+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure-ad-b2c/</loc><lastmod>2021-06-30T15:58:48+00:00</lastmod></url><url><loc>https://joonasw.net/view/migrating-social-accounts-to-azure-ad-b2c/</loc><lastmod>2021-06-30T15:58:48+00:00</lastmod></url><url><loc>https://joonasw.net/view/arrays-in-aspnet-mvc-core-route-parameters/</loc><lastmod>2021-04-30T14:22:19+00:00</lastmod></url><url><loc>https://joonasw.net/tag/asp.net-core/</loc><lastmod>2021-04-30T14:22:19+00:00</lastmod></url><url><loc>https://joonasw.net/tag/asp.net-mvc/</loc><lastmod>2021-04-30T14:22:19+00:00</lastmod></url><url><loc>https://joonasw.net/tag/routing/</loc><lastmod>2021-04-30T14:22:19+00:00</lastmod></url><url><loc>https://joonasw.net/view/access-data-in-cosmos-db-with-managed-identities/</loc><lastmod>2021-04-15T05:42:20+00:00</lastmod></url><url><loc>https://joonasw.net/tag/cosmos-db/</loc><lastmod>2021-04-15T05:42:20+00:00</lastmod></url><url><loc>https://joonasw.net/view/track-activity-and-sub-orchestrator-progress-in-azure-durable-functions-orchestrators/</loc><lastmod>2021-04-03T09:44:59+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure-devops/</loc><lastmod>2021-03-06T08:52:12+00:00</lastmod></url><url><loc>https://joonasw.net/view/building-azure-ad-b2c-custom-policies-part-2-azure-devops-automated-build-and-deployment/</loc><lastmod>2021-03-06T08:52:12+00:00</lastmod></url><url><loc>https://joonasw.net/view/building-azure-ad-b2c-custom-policies-part-1-vs-code-and-manual-deployment/</loc><lastmod>2021-01-23T13:54:36+00:00</lastmod></url><url><loc>https://joonasw.net/view/get-managed-identity-access-token-in-azure-app-service-through-kudu/</loc><lastmod>2021-01-22T14:49:34+00:00</lastmod></url><url><loc>https://joonasw.net/tag/configuration/</loc><lastmod>2021-01-13T17:33:08+00:00</lastmod></url><url><loc>https://joonasw.net/view/moving-net-core-user-secrets-to-another-computer/</loc><lastmod>2021-01-13T17:33:08+00:00</lastmod></url><url><loc>https://joonasw.net/view/cleaning-up-azure-durable-functions-execution-history/</loc><lastmod>2020-10-27T18:19:44+00:00</lastmod></url><url><loc>https://joonasw.net/view/using-azure-rbac-with-azure-key-vault/</loc><lastmod>2020-09-24T11:20:12+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-ad-v2-and-msal-in-2020/</loc><lastmod>2020-08-31T11:37:37+00:00</lastmod></url><url><loc>https://joonasw.net/view/how-azure-durable-functions-scale/</loc><lastmod>2020-06-04T05:33:53+00:00</lastmod></url><url><loc>https://joonasw.net/tag/api/</loc><lastmod>2020-03-16T10:41:48+00:00</lastmod></url><url><loc>https://joonasw.net/view/hide-actions-from-swagger-openapi-documentation-in-aspnet-core/</loc><lastmod>2020-03-16T10:41:48+00:00</lastmod></url><url><loc>https://joonasw.net/view/aspnet-core-data-protection-with-azure-key-vault-and-azure-storage/</loc><lastmod>2020-03-14T12:23:28+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure-app-service/</loc><lastmod>2020-03-14T12:23:28+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure-storage/</loc><lastmod>2020-03-14T12:23:28+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-cosmos-db-free-tier/</loc><lastmod>2020-03-07T10:02:28+00:00</lastmod></url><url><loc>https://joonasw.net/tag/testing/</loc><lastmod>2020-01-25T10:15:48+00:00</lastmod></url><url><loc>https://joonasw.net/view/testing-azure-ad-protected-apis-part-5-pipelines-in-azure-devops/</loc><lastmod>2020-01-25T10:15:48+00:00</lastmod></url><url><loc>https://joonasw.net/tag/web-api/</loc><lastmod>2020-01-25T10:15:48+00:00</lastmod></url><url><loc>https://joonasw.net/view/testing-azure-ad-protected-apis-part-4-github-actions-ci-workflow/</loc><lastmod>2020-01-05T12:14:30+00:00</lastmod></url><url><loc>https://joonasw.net/view/testing-azure-ad-protected-apis-part-3-automated-integration-tests/</loc><lastmod>2019-12-29T14:41:01+00:00</lastmod></url><url><loc>https://joonasw.net/view/testing-azure-ad-protected-apis-part-2-postman/</loc><lastmod>2019-11-20T18:23:26+00:00</lastmod></url><url><loc>https://joonasw.net/view/testing-azure-ad-protected-apis-part-1-swagger-ui/</loc><lastmod>2019-11-11T09:46:16+00:00</lastmod></url><url><loc>https://joonasw.net/view/setting-up-free-https-certificate-in-azure-app-service/</loc><lastmod>2019-11-05T18:16:04+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure-sql/</loc><lastmod>2019-09-21T13:27:10+00:00</lastmod></url><url><loc>https://joonasw.net/tag/conferences/</loc><lastmod>2019-09-21T13:27:10+00:00</lastmod></url><url><loc>https://joonasw.net/view/speaking-at-techorama-nl-2019-about-managed-identities/</loc><lastmod>2019-09-21T13:27:10+00:00</lastmod></url><url><loc>https://joonasw.net/view/cross-tenant-token-attacks-now-harder-in-azure-ad/</loc><lastmod>2019-08-24T18:05:56+00:00</lastmod></url><url><loc>https://joonasw.net/view/always-check-token-permissions-in-aad-protected-api/</loc><lastmod>2019-08-05T15:20:33+00:00</lastmod></url><url><loc>https://joonasw.net/view/why-you-should-not-put-secrets-in-native-applications/</loc><lastmod>2019-05-29T18:59:27+00:00</lastmod></url><url><loc>https://joonasw.net/view/keeping-secrets-out-of-version-control-in-net-applications/</loc><lastmod>2019-05-26T09:48:19+00:00</lastmod></url><url><loc>https://joonasw.net/view/best-practices-for-n-tenant-azure-ad-applications/</loc><lastmod>2019-05-21T19:29:09+00:00</lastmod></url><url><loc>https://joonasw.net/view/ropc-grant-flow-in-azure-ad/</loc><lastmod>2019-05-05T22:49:47+00:00</lastmod></url><url><loc>https://joonasw.net/view/avoiding-wildcard-reply-urls-with-msal-js/</loc><lastmod>2019-05-02T14:01:09+00:00</lastmod></url><url><loc>https://joonasw.net/view/using-groups-vs-using-app-roles-in-azure-ad-apps/</loc><lastmod>2019-04-21T18:26:16+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure-web-app/</loc><lastmod>2019-04-07T13:13:48+00:00</lastmod></url><url><loc>https://joonasw.net/view/using-azure-key-vault-and-azure-storage-for-asp-net-core-data-protection-keys/</loc><lastmod>2019-04-07T13:13:48+00:00</lastmod></url><url><loc>https://joonasw.net/view/exploring-cosmos-db-sdk-v3/</loc><lastmod>2019-01-25T18:33:19+00:00</lastmod></url><url><loc>https://joonasw.net/view/aad-single-sign-out-in-asp-net-core/</loc><lastmod>2018-11-23T17:37:09+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-service-bus-managed-identities/</loc><lastmod>2018-11-03T10:18:23+00:00</lastmod></url><url><loc>https://joonasw.net/tag/azure-service-bus/</loc><lastmod>2018-11-03T10:18:23+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-ad-authentication-aspnet-core-api-part-2/</loc><lastmod>2018-08-02T16:44:51+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-ad-msi-july-2018-updates/</loc><lastmod>2018-07-31T12:16:28+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-ad-authentication-aspnet-core-api-part-1/</loc><lastmod>2018-06-12T19:13:22+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-ad-authentication-with-azure-storage-and-managed-service-identity/</loc><lastmod>2018-05-24T20:01:21+00:00</lastmod></url><url><loc>https://joonasw.net/view/calling-your-apis-with-aad-msi-using-app-permissions/</loc><lastmod>2018-04-24T19:07:10+00:00</lastmod></url><url><loc>https://joonasw.net/view/adding-opt-in-feature-to-azure-ad-app/</loc><lastmod>2018-04-18T08:39:55+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-ad-v2-and-msal-from-dev-pov/</loc><lastmod>2018-04-10T10:11:20+00:00</lastmod></url><url><loc>https://joonasw.net/tag/blazor/</loc><lastmod>2018-04-07T12:55:16+00:00</lastmod></url><url><loc>https://joonasw.net/tag/c/</loc><lastmod>2018-04-07T12:55:16+00:00</lastmod></url><url><loc>https://joonasw.net/view/csharp-await-and-js-promises-in-blazor/</loc><lastmod>2018-04-07T12:55:16+00:00</lastmod></url><url><loc>https://joonasw.net/tag/localization/</loc><lastmod>2018-03-20T18:40:07+00:00</lastmod></url><url><loc>https://joonasw.net/view/aspnet-core-data-annotation-localization-shared-resx-file/</loc><lastmod>2018-03-20T18:40:07+00:00</lastmod></url><url><loc>https://joonasw.net/view/aad-api-chains-and-cyclic-dependencies/</loc><lastmod>2018-03-17T22:07:22+00:00</lastmod></url><url><loc>https://joonasw.net/view/aspnet-core-azure-keyvault-msi/</loc><lastmod>2018-03-06T18:34:07+00:00</lastmod></url><url><loc>https://joonasw.net/view/device-code-flow/</loc><lastmod>2018-02-27T20:50:54+00:00</lastmod></url><url><loc>https://joonasw.net/tag/application-insights/</loc><lastmod>2018-02-24T17:52:33+00:00</lastmod></url><url><loc>https://joonasw.net/view/how-to-detect-ai-ping-tests/</loc><lastmod>2018-02-24T17:52:33+00:00</lastmod></url><url><loc>https://joonasw.net/view/aspnet-core-2-1-actionresult-of-t/</loc><lastmod>2018-02-18T10:41:25+00:00</lastmod></url><url><loc>https://joonasw.net/view/creating-auth-scheme-in-aspnet-core-2/</loc><lastmod>2018-02-02T22:23:56+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-ad-on-behalf-of-aspnet-core/</loc><lastmod>2018-01-06T19:34:41+00:00</lastmod></url><url><loc>https://joonasw.net/view/redis-cache-session-store/</loc><lastmod>2017-12-11T18:17:40+00:00</lastmod></url><url><loc>https://joonasw.net/view/the-grant-requires-admin-permission/</loc><lastmod>2017-12-09T19:36:59+00:00</lastmod></url><url><loc>https://joonasw.net/view/adding-custom-claims-aspnet-core-2/</loc><lastmod>2017-12-05T18:51:35+00:00</lastmod></url><url><loc>https://joonasw.net/view/defining-permissions-and-roles-in-aad/</loc><lastmod>2017-12-03T20:44:06+00:00</lastmod></url><url><loc>https://joonasw.net/view/apply-authz-by-default/</loc><lastmod>2017-11-29T17:54:59+00:00</lastmod></url><url><loc>https://joonasw.net/view/custom-error-pages/</loc><lastmod>2017-11-04T10:02:44+00:00</lastmod></url><url><loc>https://joonasw.net/tag/error-handling/</loc><lastmod>2017-11-04T10:02:44+00:00</lastmod></url><url><loc>https://joonasw.net/view/discovering-actions-and-razor-pages/</loc><lastmod>2017-11-03T18:21:45+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-ad-managed-service-identity/</loc><lastmod>2017-10-13T07:24:16+00:00</lastmod></url><url><loc>https://joonasw.net/view/find-out-if-url-matches-action/</loc><lastmod>2017-10-02T18:25:50+00:00</lastmod></url><url><loc>https://joonasw.net/view/aspnet-core-localization-deep-dive/</loc><lastmod>2017-09-03T13:37:04+00:00</lastmod></url><url><loc>https://joonasw.net/tag/deep-dive/</loc><lastmod>2017-09-03T13:37:04+00:00</lastmod></url><url><loc>https://joonasw.net/view/aspnet-core-2-configuration-changes/</loc><lastmod>2017-07-02T11:42:43+00:00</lastmod></url><url><loc>https://joonasw.net/view/aspnet-core-2-azure-ad-authentication/</loc><lastmod>2017-06-04T20:53:53+00:00</lastmod></url><url><loc>https://joonasw.net/view/aspnet-core-di-deep-dive/</loc><lastmod>2017-02-10T20:30:04+00:00</lastmod></url><url><loc>https://joonasw.net/tag/dependency-injection/</loc><lastmod>2017-02-10T20:30:04+00:00</lastmod></url><url><loc>https://joonasw.net/view/csp-in-aspnet-core/</loc><lastmod>2017-02-01T20:37:46+00:00</lastmod></url><url><loc>https://joonasw.net/view/hpkp-in-aspnet-core/</loc><lastmod>2017-01-24T19:41:58+00:00</lastmod></url><url><loc>https://joonasw.net/view/hsts-in-aspnet-core/</loc><lastmod>2017-01-22T21:03:24+00:00</lastmod></url><url><loc>https://joonasw.net/view/enforcing-https-in-aspnet-core/</loc><lastmod>2017-01-21T10:26:01+00:00</lastmod></url><url><loc>https://joonasw.net/view/attribute-routing-cheat-sheet-for-aspnet-core/</loc><lastmod>2016-10-22T09:35:46+00:00</lastmod></url><url><loc>https://joonasw.net/view/building-a-basic-web-api-on-asp-net-core/</loc><lastmod>2016-10-18T18:58:31+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-ad-b2c-with-aspnet-core/</loc><lastmod>2016-08-27T19:18:23+00:00</lastmod></url><url><loc>https://joonasw.net/view/asp-net-core-1-azure-ad-authentication/</loc><lastmod>2016-07-25T12:41:58+00:00</lastmod></url><url><loc>https://joonasw.net/view/asp-net-core-1-configuration-deep-dive/</loc><lastmod>2016-06-29T20:35:59+00:00</lastmod></url><url><loc>https://joonasw.net/view/asp-net-core-1-in-azure-web-apps/</loc><lastmod>2016-06-27T19:12:14+00:00</lastmod></url><url><loc>https://joonasw.net/view/azure-documentdb-and-web-apps-global-deployment/</loc><lastmod>2016-06-26T12:43:00+00:00</lastmod></url><url><loc>https://joonasw.net/tag/documentdb/</loc><lastmod>2016-06-26T12:43:00+00:00</lastmod></url><url><loc>https://joonasw.net/view/nested-azure-traffic-manager-profiles/</loc><lastmod>2016-06-24T19:31:29+00:00</lastmod></url><url><loc>https://joonasw.net/tag/traffic-manager/</loc><lastmod>2016-06-24T19:31:29+00:00</lastmod></url><url><loc>https://joonasw.net/view/arr-affinity-in-azure-app-service/</loc><lastmod>2016-06-24T08:36:20+00:00</lastmod></url><url><loc>https://joonasw.net/tag/test/</loc><lastmod>2016-06-23T10:00:00+00:00</lastmod></url><url><loc>https://joonasw.net/view/welcome/</loc><lastmod>2016-06-23T10:00:00+00:00</lastmod></url><url><loc>https://joonasw.net/tag/welcome/</loc><lastmod>2016-06-23T10:00:00+00:00</lastmod></url><url><loc>https://joonasw.net/about/</loc></url></urlset>