Stephan van Rooij

Software architect with a passion for home automation.

Hacking Primary refresh tokens, oops created a virus


Windows has some cleaver ways to handle SSO in combination with Azure AD. They use this so called Primary Refresh Token. These highly sensitive key materials, are usually stored in the systems TPM (trusted platform module), a hardware device that can protect keys. And are “unlocked” when the user logs in.

A post, by Lee Christensen and the accompanying RequestAADRefreshToken source, inspired me to check out what he had found.

Cancellable task with timeout


Don’t you like the async and await way of asynchronously programming in C#? I can tell you I like them a lot. Recently I came across a case where I wanted to add a timeout to an asynchronous task.

Create Outlook category for everyone


Did you know you can categorize items in your Outlook calendar to give them a different color (in most official Outlook clients)? You can help your users by pre-configuring some default categories. You can also create categories for your users if you have some automation to create items in their calendar by some automated way.

Protect against SSO for Graph PowerShell


Why would you want to disable SSO for some cloud app, we love SSO, it makes our life easier? I agree, single-sign-on is great, until it is used without the knowledge of a user that logged-in with his admin account (don’t do that!).

My open-source projects

My github repositories, last edited first.

Control Sonos from dotnet
🔊 📖 Sonos api documentation for the local UPNP api and a generator to generate clients based on service discovery
TypeScript 10 7
Some usefull PowerShell snippets collected
PowerShell 0 0
:speaker: Sonos control library, use this library in your own appliction.
TypeScript 55 13
A dotnet tool for parsing rss feeds and modifying a markdown file
:speaker: Sonos mqtt controller. Control your speakers from your mqtt server. mqtt-smarthome insprired.
TypeScript 53 16
Sync your calendar to a different tenant with Power Automate
:speaker: Sonos command line interface, control your speakers right from the console.
TypeScript 0 3
Github action to check if some secrets are set
JavaScript 4 1
Publish data from your Smart meter with a P1 interface to you MQTT server.
TypeScript 23 6

Interesting topics

Good converstation starters