Stephan van Rooij

Software architect with a passion for home automation.

Every project needs a badge


You just created a new open-source project. Great, you rock! A lot of repositories have these nice images showing dynamic details of the repository. How does that work? By using these dynamic badges you can really make your repository stand out.

LinkedIn Profile Twitter follow Link Mastodon Blog

Proof of concept: Multi tenant managed identity


Ever since Microsoft created managed identities, people are asking how/if they work for multi-tenant applications. They even spend a faq on it.

In my previous post I wrote that it was possible to use a managed identity to get access tokens for some multi tenant application, if you haven’t seen that post be sure to check it out since this post uses the knowlage from that post to demo the process.

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.

My open-source projects

My github repositories, last edited first.

Some usefull PowerShell snippets collected
PowerShell 3 0
:speaker: Sonos mqtt controller. Control your speakers from your mqtt server. mqtt-smarthome insprired.
TypeScript 60 17
Send your Teams Status to any webhook in realtime
Microsoft Graph Service Client batching extensions
A dotnet tool for parsing rss feeds and modifying a markdown file
Sonos2mqtt companion for Home Assistant
Python 4 0
Reading data from your solar inverter
TypeScript 1 0
:speaker: Sonos control library, use this library in your own appliction.
TypeScript 61 13
🔊 📖 Sonos api documentation for the local UPNP api and a generator to generate clients based on service discovery
TypeScript 17 7