56,966 blogs · [ { "id": "01a0d52f-72db-71af-8179-511cdcf0d0e4", "title": "Tailscale without always-on", "url": "https://andrewdoering.org/blog/2026/tailscale-without-always-on/", "published_at": "2026-09-16T07:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1955215640", "title": "Agent Identity on the MCP Roadmap: Cross-App Access and ID-JAG", "url": "https://andrewdoering.org/blog/2026/cross-app-access-mcp-roadmap/", "published_at": "2026-08-22T16:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19556f461c", "title": "Breathing Wrong for Thirty Feet: My First Scuba Dive", "url": "https://andrewdoering.org/blog/2026/breathing-wrong-first-scuba-dive/", "published_at": "2026-08-18T07:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19560b0462", "title": "Tailscale Now Fully Works on the reMarkable Paper Pro", "url": "https://andrewdoering.org/blog/2026/remarkable-tailscale-tun-working/", "published_at": "2026-07-13T10:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1956153728", "title": "Why Tailscale Doesn't Fully Work on the reMarkable Paper Pro", "url": "https://andrewdoering.org/blog/2026/remarkable-tailscale-tun-kernel/", "published_at": "2026-07-04T10:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1956c49f51", "title": "Custom PDF templates crash-looped my reMarkable, and what the fix costs", "url": "https://andrewdoering.org/blog/2026/remarkable-daily-journal-pdf-backgrounds-crash/", "published_at": "2026-07-04T07:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195741393c", "title": "Choosing a Provisioning Source of Truth: HRIS, Databases, and Anything-as-a-Source", "url": "https://andrewdoering.org/blog/2026/okta-provisioning-source-of-truth/", "published_at": "2026-07-03T14:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19575f82d2", "title": "How to Enable Passwordless Sign-in for Azure Virtual Desktop", "url": "https://andrewdoering.org/blog/2026/enable-avd-entra-sso/", "published_at": "2026-06-29T10:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1957b53573", "title": "Passwordless Azure Virtual Desktop: Token-Based SSO with Entra ID and Okta Upstream", "url": "https://andrewdoering.org/blog/2026/passwordless-avd-sso-entra-okta/", "published_at": "2026-06-28T10:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1957dc5a5c", "title": "Taming the macOS 'helper tool' prompt at fleet scale", "url": "https://andrewdoering.org/blog/2026/macos-helper-tools/", "published_at": "2026-06-08T10:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1957de60ea", "title": "Device-Bound Session Credentials: Hardware-Bound Cookies, Without the SKU", "url": "https://andrewdoering.org/blog/2026/device-bound-session-credentials/", "published_at": "2026-06-05T06:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19584007a7", "title": "Making my reMarkable handwriting searchable: a fully local OCR pipeline", "url": "https://andrewdoering.org/blog/2026/remarkable-local-handwriting-ocr/", "published_at": "2026-06-03T07:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19592b5f31", "title": "Rebuilding my reMarkable daily journal: from PDFs to native templates", "url": "https://andrewdoering.org/blog/2026/rebuilding-my-remarkable-daily-journal/", "published_at": "2026-06-02T04:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19598c3342", "title": "Att älska ett land som inte älskar dig tillbaka", "url": "https://andrewdoering.org/blog/2026/att-alska-ett-land-som-inte-alskar-dig-tillbaka/", "published_at": "2026-05-31T04:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1959f55306", "title": "Loving a Country That Doesn't Love You Back", "url": "https://andrewdoering.org/blog/2026/loving-a-country-that-doesnt-love-you-back/", "published_at": "2026-05-31T04:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195abfe159", "title": "A JSON file walks into the open web", "url": "https://andrewdoering.org/blog/2026/a-json-file-walks-into-the-open-web/", "published_at": "2026-05-15T04:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195b5d1d24", "title": "AuthZEN + Shared Signals Framework - Part 6: When AuthZEN Says No", "url": "https://andrewdoering.org/blog/2026/authzen-shared-signals-framework-part-6-governance/", "published_at": "2026-03-17T05:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195c5ca3eb", "title": "AuthZEN + Shared Signals Framework - Part 5: Day 2 Operations", "url": "https://andrewdoering.org/blog/2026/authzen-shared-signals-framework-part-5-operations/", "published_at": "2026-03-16T05:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195d4be23e", "title": "AuthZEN + Shared Signals Framework - Part 4: Putting It All Together", "url": "https://andrewdoering.org/blog/2026/authzen-shared-signals-framework-part-4-implementation/", "published_at": "2026-03-15T05:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195dcffe30", "title": "AuthZEN + Shared Signals Framework - Part 3: Microsoft Entra and M365", "url": "https://andrewdoering.org/blog/2026/authzen-shared-signals-framework-part-3-microsoft/", "published_at": "2026-03-14T05:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195e2831d0", "title": "AuthZEN + Shared Signals Framework - Part 2: Okta", "url": "https://andrewdoering.org/blog/2026/authzen-shared-signals-framework-part-2-okta/", "published_at": "2026-03-13T05:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195e843035", "title": "AuthZEN + Shared Signals Framework - Part 1: Fundamentals", "url": "https://andrewdoering.org/blog/2026/authzen-shared-signals-framework-part-1-fundamentals/", "published_at": "2026-03-12T05:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195f530b76", "title": "Okta Device-Bound SSO: Tying Sessions to Hardware", "url": "https://andrewdoering.org/blog/2026/okta-device-bound-sso/", "published_at": "2026-02-26T11:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195fac5c7f", "title": "Migrating Microsoft 365 SSO Federation from Google Workspace to Okta", "url": "https://andrewdoering.org/blog/2026/m365-sso-federation-google-workspace-to-okta/", "published_at": "2026-02-17T11:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a195fbe857f", "title": "The Surveillance Trap: UBA and UEBA Tools Don't Deliver", "url": "https://andrewdoering.org/blog/2026/the-surveillance-trap/", "published_at": "2026-02-12T08:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19603003cb", "title": "Identity at the Edge: Data, Physical Access, and Contextual Trust (Part 4)", "url": "https://andrewdoering.org/blog/2026/the-identity-tax-part-4/", "published_at": "2026-02-08T11:30:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19612946e3", "title": "The Future of Identity: Non-Human Auth and SSF (Part 3)", "url": "https://andrewdoering.org/blog/2026/the-identity-tax-part-3/", "published_at": "2026-02-08T11:20:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1961b5e771", "title": "Identity in Practice: Drift, Lifecycle, and the ROI Math (Part 2)", "url": "https://andrewdoering.org/blog/2026/the-identity-tax-part-2/", "published_at": "2026-02-08T11:10:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1961eedc97", "title": "The Identity Tax: Why Security Shouldn't Be a Premium Feature (Part 1)", "url": "https://andrewdoering.org/blog/2026/the-identity-tax-part-1/", "published_at": "2026-02-08T11:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19628cdb1e", "title": "The Death of the Printer Driver: The Final Death Knell for Printers and Fax", "url": "https://andrewdoering.org/blog/2026/the-death-of-the-printer-driver/", "published_at": "2026-02-06T15:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19633e9644", "title": "Why Vision LLMs Hate My reMarkable Notes (And How I Fixed It)", "url": "https://andrewdoering.org/blog/2026/remarkable-pdf-splitter/", "published_at": "2026-01-31T11:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a19635a825d", "title": "Self-Hosting Scrybble: reMarkable to Obsidian Sync with Lessons Learned", "url": "https://andrewdoering.org/blog/2026/hosting-scrybble/", "published_at": "2026-01-25T11:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1963850f94", "title": "Microsoft to Google: A Retirement Migration Story", "url": "https://andrewdoering.org/blog/2025/microsoft-to-google/", "published_at": "2025-12-28T23:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1964604498", "title": "Why iptables-persistent Broke My Docker and Tailscale Setup", "url": "https://andrewdoering.org/blog/2025/iptables-persistent-broke-docker-tailscale/", "published_at": "2025-12-17T23:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1964a8c73a", "title": "Cloudflare WARP Connector as a Tailscale Alternative", "url": "https://andrewdoering.org/blog/2025/cloudflare-warp-connector-tailscale-alternative/", "published_at": "2025-11-17T23:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1964c0c483", "title": "Exporting Okta Group Push Mappings, Fixing the Broken Ones", "url": "https://andrewdoering.org/blog/2025/okta-group-push-mappings-export-script/", "published_at": "2025-08-22T20:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a196540ed82", "title": "Home Assistant Watchdog: stopping accidental clicks", "url": "https://andrewdoering.org/blog/2025/home-assistant-automation-watchdog/", "published_at": "2025-08-21T18:00:00+00:00" }, { "id": "01a08728-43dd-7074-8c3a-4a1965994e85", "title": "Random playlist selector for Spotify & Sonos using Home Assistant", "url": "https://andrewdoering.org/blog/2025/home-assistant-spotify-sonos-playlist-randomizer/", "published_at": "2025-08-19T18:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f1a7cff4", "title": "Easy SSH Key Generator and Git Configuration for IT Support Teams", "url": "https://andrewdoering.org/blog/2025/ssh-key-generator-for-it-support/", "published_at": "2025-08-16T18:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f217f6f7", "title": "Building a Loggamera Integration for Home Assistant", "url": "https://andrewdoering.org/blog/2025/home-assistant-loggamera/", "published_at": "2025-05-31T10:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f2c987df", "title": "What it took to get a scalable Terraform Okta Admin Module", "url": "https://andrewdoering.org/blog/2025/okta-terraform-admin-module/", "published_at": "2025-05-23T10:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f2d24327", "title": "Managing Terraform schemas and cross-team dependencies", "url": "https://andrewdoering.org/blog/2025/okta-terraform-creating-dependency-requirement-outputs/", "published_at": "2025-02-21T10:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f3a74ef3", "title": "How we manage our Security Policies in Terraform", "url": "https://andrewdoering.org/blog/2025/okta-terraform-managing-security-policies/", "published_at": "2025-02-14T10:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f443baad", "title": "macOS Privilege Management with SAP Privileges and Kolide", "url": "https://andrewdoering.org/blog/2025/macos-privileges/", "published_at": "2025-02-07T23:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f52237b2", "title": "Automatically managing Okta Network Zones with Terraform", "url": "https://andrewdoering.org/blog/2025/okta-terraform-automatically-managing-network-zones/", "published_at": "2025-02-07T10:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f5fc0527", "title": "Automate Core Business Groups in Okta with Terraform", "url": "https://andrewdoering.org/blog/2025/okta-terraform-managing-core-groups/", "published_at": "2025-01-28T10:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f609daaa", "title": "Automating Business Hierarchy Groups in Okta with Terraform", "url": "https://andrewdoering.org/blog/2025/okta-terraform-automatically-managing-department-group/", "published_at": "2025-01-21T10:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f62e20cc", "title": "How we planned for Workspace Segmentation in Terraform", "url": "https://andrewdoering.org/blog/2025/okta-terraform-workspace-segmentation/", "published_at": "2025-01-14T10:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f6f995e4", "title": "Switching from Disqus to Giscus", "url": "https://andrewdoering.org/blog/2025/disqus2giscus/", "published_at": "2025-01-11T20:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f717e375", "title": "How we planned to terraform our environment, for growth, and scale", "url": "https://andrewdoering.org/blog/2025/okta-terraform-how-we-planned-it/", "published_at": "2025-01-07T10:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f775358b", "title": "Kolide - Local Administrators Group Membership Check", "url": "https://andrewdoering.org/blog/2024/kolide-local-administrators-check/", "published_at": "2024-10-25T20:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f86a378e", "title": "Configuring multi-channel guests in Slack using SCIM in Okta", "url": "https://andrewdoering.org/blog/2024/okta-slack-multichannel-guest/", "published_at": "2024-07-01T10:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f8d045f8", "title": "Why I like Kolide for Device Remediation and Assurance", "url": "https://andrewdoering.org/blog/2024/kolide-rollout/", "published_at": "2024-06-06T09:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f91277cc", "title": "Revamping physical and logical services", "url": "https://andrewdoering.org/blog/2024/revamping-physical-and-logical-services/", "published_at": "2024-02-28T11:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f9391174", "title": "Configuring Azure VDI & AVD infrastructure to work with Device Trust", "url": "https://andrewdoering.org/blog/2024/okta-devicetrust-with-azure-vdi-avd/", "published_at": "2024-01-09T19:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963f9ea8617", "title": "Okta Identity Engine, FastPass, Device Trust Deployment", "url": "https://andrewdoering.org/blog/2023/oie-fastpass-devicetrust-deployment/", "published_at": "2023-06-28T09:30:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963fa9a1f58", "title": "Obtaining the Okta Root CA from OIE", "url": "https://andrewdoering.org/blog/2023/obtaining-okta-root-ca/", "published_at": "2023-01-18T08:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963fb226b79", "title": "Dealing with Airlines for Reimbursement", "url": "https://andrewdoering.org/blog/2022/dealing-with-airlines-for-reimbursement/", "published_at": "2022-11-25T23:45:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963fb3226ab", "title": "Expanding on GitHub Tracking Automation", "url": "https://andrewdoering.org/blog/2022/expanding-on-github-tracking-automation/", "published_at": "2022-07-13T11:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963fbd68fbf", "title": "Photo Gallery", "url": "https://andrewdoering.org/photos/", "published_at": "2022-06-25T13:05:46+00:00" }, { "id": "01a08728-43de-7221-90cd-2963fcb8d291", "title": "Automating TravelPerk Approval Process using Okta Workflows", "url": "https://andrewdoering.org/blog/2022/automating-travelperk-manager-approval-policy-in-okta/", "published_at": "2022-05-10T08:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963fd721379", "title": "Automating Expensify using Okta Workflows", "url": "https://andrewdoering.org/blog/2022/automating-expensify-using-okta-workflows/", "published_at": "2022-05-08T10:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963fdcc82ee", "title": "docker-compose for media automation with rclone and mergerFS", "url": "https://andrewdoering.org/blog/2021/using-docker-compose-for-media-automation/", "published_at": "2021-12-31T08:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963fe5fcd9d", "title": "URI/URL & Deep Linking to Workspace One Application Panes", "url": "https://andrewdoering.org/blog/2021/uri-deeplinking-to-workspace-one-application-panes/", "published_at": "2021-11-12T08:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2963ff3798cb", "title": "Tracking Github Accounts and automatically assigning the application", "url": "https://andrewdoering.org/blog/2020/assigning-applications-on-attributes/", "published_at": "2020-11-20T08:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-29640020aa87", "title": "Pushing SSH keys from Okta to AD", "url": "https://andrewdoering.org/blog/2020/pushing-ssh-keys-from-okta-to-ad/", "published_at": "2020-11-15T08:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-296400cea552", "title": "How we deployed MDM (Workspace One) to hundreds of devices", "url": "https://andrewdoering.org/blog/2020/deploying-mdm-to-hundreds-of-devices/", "published_at": "2020-10-21T08:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-296401916279", "title": "Authorizing MongoDB Atlas users against Okta's LDAP Groups", "url": "https://andrewdoering.org/blog/2020/authorizing-mongodb-atlas-users-against-oktas-ldap-groups/", "published_at": "2020-10-11T08:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2964025cd40f", "title": "Monitoring ZFS and Docker with TIG", "url": "https://andrewdoering.org/blog/2020/monitoring-zfs-and-docker-with-tig/", "published_at": "2020-10-11T08:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-296402d7589c", "title": "Infrastructure Engineer Deployment - Example", "url": "https://andrewdoering.org/blog/2020/infrastructure-engineer-deployment-example/", "published_at": "2020-09-02T01:20:49+00:00" }, { "id": "01a08728-43de-7221-90cd-29640374398a", "title": "Transitioning from Active Directory to Okta", "url": "https://andrewdoering.org/blog/2020/transitioning-to-okta-from-active-directory-new-directory-service-infrastructure/", "published_at": "2020-08-09T01:16:49+00:00" }, { "id": "01a08728-43de-7221-90cd-29640408233a", "title": "Workspace One & Okta - User(s) and Group(s) working with DEP Enrollment", "url": "https://andrewdoering.org/blog/2019/workspace-one-okta-users-and-groups-working-with-dep-enrollment/", "published_at": "2019-12-23T14:03:05+00:00" }, { "id": "01a08728-43de-7221-90cd-296404eb9243", "title": "macOS - Using nudge to deploy major (and minor) OS updates", "url": "https://andrewdoering.org/blog/2019/macos-using-nudge-to-deploy-major-and-minor-os-updates/", "published_at": "2019-12-11T11:24:00+00:00" }, { "id": "01a08728-43de-7221-90cd-296405b8f9c8", "title": "Airwatch/Workspace ONE - Using SAML and LDAP with Okta", "url": "https://andrewdoering.org/blog/2019/airwatch-workspace-one-using-saml-and-ldap-with-okta/", "published_at": "2019-05-02T04:15:00+00:00" }, { "id": "01a08728-43de-7221-90cd-2964064d0733", "title": "vmware / ESXi + macOS 10.13 APFS", "url": "https://andrewdoering.org/blog/2018/vmware-esxi-macos-10-13-apfs/", "published_at": "2018-03-28T06:56:31+00:00" }, { "id": "01a08728-43de-7221-90cd-2964065957a5", "title": "G Suite Enterprise - CA List for S/MIME Encryption", "url": "https://andrewdoering.org/blog/2017/g-suite-enterprise-ca-list-for-smime-encryption/", "published_at": "2017-06-22T22:00:00+00:00" }, { "id": "01a08728-43de-7221-90cd-29640673080f", "title": "Asset Management Today", "url": "https://andrewdoering.org/blog/2016/asset-management-in-the-modern-age/", "published_at": "2016-10-26T13:00:13+00:00" } ] posts Claim your blog
Back to andrewdoering.org
Blog · corpus.blog/blogs/andrewdoering.org/posts

andrewdoering.org

andrewdoering.org

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016