I’m Stephan, a software developer specialized in API security. A Microsoft MVP in security since October 2022 and a public speaker.| Coding Stephan
A personal blog| Coding Stephan
Have you ever used Azure Static Web Apps, and used the portal wizard to set it up? Then you’re probably using the Azure Static Web App deploy Github Actions. Which is a humongous Github Action (1.6 GB docker container), that is also capable of automatically discovering how to build any of the supported apps. What if you don’t need any of the auto build capabilities? Microsoft does not officially support any other way to deploy to Azure Static Web Apps, so you’re out of luck.| Stephan van Rooij on Coding Stephan
What is Maester and why did I want to give a talk about it at Experts live Netherlands? Did I spark your interest? Read on and I’ll explain all about it. June 3rd - Experts Live Netherlands 2025 What is Maester? Maester is an open-source security scanner for your Microsoft 365 tenant, made by community members. Several people had this idea that it would be cool to be able to automatically scan your tenants configuration.| Coding Stephan
Learn how to deploy ARM64 applications with Microsoft Intune and optimize your environment for Windows 11 on ARM64 devices.| Coding Stephan
Master GitHub workflow commands in PowerShell to streamline your development process and enhance productivity with these essential tips.| Coding Stephan
When you develop an API you probably want an easy way to authenticate users. In this post, I will show you how to configure JWT authentication in a .NET API. This is a simple and effective way to secure your API endpoints. What is JWT? And how do you configure it the right way?| Stephan van Rooij on Coding Stephan
Github action runs can have these nice generated summaries, like the one for my winget package index. But how do you set them? And can you do that with C#? Read on to see how you can do that as well. Winget index job summary Github Action summaries Back in 2022 Github released Github Actions job summaries. Which is a nice feature that allows you to not only write stuff to the console, but also to write stuff to the build summary.| Coding Stephan
Hi, I’m Stephan van Rooij. A software engineer with a passion for IoT, robots and Home Automation. I love to tinker with hardware and software to create new things. I’m always looking for new challenges and opportunities to learn. Check out my LinkedIn page linkedin.com/in/stephanvanrooij to connect. Or browse around my blog to see what I’m up to.| Coding Stephan
Bitbash 2025 was an awesome conference, where I did a talk on managed identities. Here are the cliffnotes for that talk, and why I even do public speaking. Bitbash 2025| Stephan van Rooij on Coding Stephan
January 24th and 25th, 2025, Bitbash was held in the Netherlands at Info Support HQ in Veenendaal. One day of workshops followed by one day packed with sessions. This was my second time attending and I enjoyed it a lot. What did I learn and what is now on my list of things I have to check into? They will probably organize it again next year and I will definitely be there. Bitbash 2025| Stephan van Rooij on Coding Stephan
With the introduction of multi tenant support for managed identities it is time to take a look at how to use them in Azure Automation. This post will take you through all the steps needed to get this working.| Stephan van Rooij on Coding Stephan
Microsoft just announced that you can now “officially” use managed identities in a multi-tenant scenario. This is a huge step forward security wise, if you’re in the business of building multi-tenant applications. Let me explain what this is, how it works and why it’s important.| Stephan van Rooij on Coding Stephan
Building an application that requires user authentication? We all used to build this directly in our api / web application, but with all the security requirements and continuing hacking attempts, I would recommend against doing this part yourself. You cannot possibly spent as much money on security as the big companies do. So why not leverage their knowledge and experience? Azure AD B2C vs Entra External ID Microsoft is one of those companies that can help you with user authentication for you...| Stephan van Rooij on Coding Stephan
I recently saw a tweet from a well respected open-source developer, that someone was trying to use him as a free helpdesk. This is a common problem in the open-source community, and it’s a problem that I think is worth addressing. This explanation is not set in stone, but it’s a good starting point for understanding open-source. Open-source helpdesk What is open-source? Open-source is a term that refers to software that is free to use, modify, and distribute.| Stephan van Rooij on Coding Stephan
Using Kiota to serialize your data sounds like a great idea for my new project. But why should I care about Kiota serializing? Let’s find out!| Stephan van Rooij on Coding Stephan
Want to test out autopilot device preparation in Hyper-V, but don’t know where to start? In this post, I’ll take you through the steps needed to create a Hyper-V virtual machine template for Intune. Windows 11 Out-of-box-experience Prerequisites Windows 11 or Windows 10 (pro or enterprise) Hyper-V installed Windows 11 ISO (pro or enterprise), with at least the may 2024 updates Create a new virtual machine Open Hyper-V Manager Click on Action and then New and Virtual Machine Click Next Cho...| Stephan van Rooij on Coding Stephan
If you built an api that is protected with tokens from an external IDP, you got a challenge when you want to run integration tests. They would require an access token that is signed by the IDP. And if you want to test several roles, or access levels or flows. You would need several “accounts” in your IDP. Not only that, but not all IDPs allow you to get all tokens in a non-interactive way. So you would need to have a browser open to get the tokens, which is not feasible for automated test...| Stephan van Rooij on Coding Stephan
Kiota is an open-source application that allows you to generate a client for any api that is documented with open api. It’s a great tool and we use it for all our new projects where we call an api. What we also use in all our applications is dependency injection, and those two need to be combined to get the best performance and most stable application. Kiota Dependency Injection Why use dependency injection?| Stephan van Rooij on Coding Stephan
If you want to do authentication for your multi-tenant application, you can use a secret (which you shouldn’t!) or a certificate. In almost all the samples I’ve seen, the certificate is stored in the Key Vault “to keep it safe”. But how does the authentication work? And are you sure this is the most secure way? Process The short version of the process is: Get the certificate from the Key Vault Create an unsigned JWT (header and payload) Sign the JWT with the certificate Ask Entra ID f...| Stephan van Rooij on Coding Stephan
It has been pretty quite on this blog, are you still blogging? What is snooping up all the time you usually got for writing blog posts? My first security coin| Stephan van Rooij on Coding Stephan
Azure SQL is a managed SQL server in the cloud. It’s a great service, but it can be a bit tricky to get it to work with Entra ID Authentication. Here are some tips from the field. Azure SQL Entra ID Admin required| Stephan van Rooij on Coding Stephan
It’s just a little frustration this time, I was creating a new Azure Pipeline, and I was testing the deployment steps. After 2 PR’s to the main branch, which should be configured as the correct trigger, I was still having issues. In the mean time my commit messages in the main branch will stay there forever. Finally success after so many tries| Stephan van Rooij on Coding Stephan
Did you know each Microsoft MVP is invited to a yearly MVP Summit? As one of those few, I was invited for the 2024 MVP summit. This was my first summit, and boy what a trip. Seeing my own name on the MVP wall, between all those other people really made an impression. MVP wall| Stephan van Rooij on Coding Stephan
Did you ever deploy an application and forgot to add the [Authorize] attribute to a controller or action? I did, and it meant that the application was open to the public and one controller could be used without logging in. Let me show you how you can use reflection and Fluent Assertions to check for the existence of an attribute on a specific class. I’m using this to verify the Authorize attribute on all classed that inherit from ControllerBase in a .NET Core application, but this principle...| Stephan van Rooij on Coding Stephan
In the previous post we have seen how you can protect your application to Man-in-the-middle attacks. The sample code there, was not showing how you could do the same if you are not managing the HttpClient yourself. In this post we will see how you can utilize this with dependency injection and the Microsoft.Extensions.Http package, which allows you to also protect your application if you’re using dependency injection to manage your HttpClient instances.| Stephan van Rooij on Coding Stephan
Everybody should take security seriously! Let’s see what you can do to do the extra step to protect your applications. In this post we will have a look at how you can protect your application from Man-in-the-middle attacks. Man-in-the-middle What is a man-in-the-middle attack? It means the attacker has found a way to intercept the traffic between two parties. This is a serious problem, because the attacker can read, modify and even delete the traffic.| Stephan van Rooij on Coding Stephan
Working with API’s, or calling the Microsoft Graph API, you’ve probably seen them those JSON Web Tokens (or JWT for short). It’s a way to securely transmit information between parties. But how do you validate them? In this post, I’ll show you how to validate a JWT using OpenID Connect. JWT title screen What is a JWT A JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.| Stephan van Rooij on Coding Stephan
It’s been common practice for a long time to ask for passwords, surely we are migrating to passwordless authentication, but we are not there yet. So, what can we do to improve the security of our applications? What about setting a sign-in frequency? Laptop asking for password This is an opinionated post, I’m looking at this from the perspective of a security consultant that wants the best solution for the users, while still preserving security. I want to open a discussion about this topic...| Stephan van Rooij on Coding Stephan
I got accepted to speak at ESPC23 the European SharePoint, Office 365 & Azure Conference in 2023. As a Microsoft MVP in Security, the topic has to be security related. Me in front of this huge screen| Stephan van Rooij on Coding Stephan
In my quest to build an open-source, cross platform, tool that packages Win32 apps from Winget for Intune WingetIntune on GitHub, I’ve been looking at the Win32 Content Prep Tool in my previous post. In this post I’ll try to decrypt the IntunePackage.intunewin file that is generated by the tool. PowerShell module to create and decrypt .intunewin files| Stephan van Rooij on Coding Stephan
In my quest to build an open-source, cross platform, tool that packages Win32 apps from Winget for Intune WingetIntune on GitHub, I’ve been looking at the Win32 Content Prep Tool. This tool is used by administrators to prepare Win32 apps for deployment in Intune. It’s a closed source application requiring windows to run. In this post I’ll be looking at the tool and how it works. Detection.xml file from .intunewin| Stephan van Rooij on Coding Stephan
In my recent quest I’ve been building a tool that publishes any apps from winget to Intune, called WingetIntune. One of the things that was still on the todo list was to compute and check the hash of the installer. We wouldn’t want to package a corrupted or maliciously changed installer, right? Since I’m building my application with the cloud in mind, using synchronous code is a big no-no. So I went looking for a way to compute the hash of a file asynchronously. Only to find out there i...| Stephan van Rooij on Coding Stephan
WingetIntune, my latest open-source project to publish apps to Intune, has a dependency on Windows. This post explains why and how I’m planning to remove that dependency. Open-source winget community index| Stephan van Rooij on Coding Stephan
I’ve been taking you through the process of getting you apps in Intune. In the previous post I explained how to package apps for Intune. In this post I’ll go into publishing apps to Intune. Publish an app in seconds| Stephan van Rooij on Coding Stephan
In the previous post I explained that you can use Intune to install applications for all you colleagues. In this post I’ll go into packaging apps for Intune Package an app in seconds| Stephan van Rooij on Coding Stephan
Microsoft has this great tool to manage corporate devices, called Intune. Companies use it to manage their devices, and to deploy apps to them. But how do you get your apps in Intune? In this post I will explain how to get your apps in Intune, and how to deploy them to your devices. Apps in Company Portal| Stephan van Rooij on Coding Stephan
I might have build the best continues integration pipeline for a .NET app ever. How do you set up a workflow to automatically test your .NET application? I’ve created a workflow that has all the things you might need to get started. Github actions build summary| Stephan van Rooij on Coding Stephan
In 2019 Microsoft has released some new build-in API’s to (de/)serialize JSON. All the API’s in the System.Text.Json namespace should allow you to work with JavaScript Object Notation files without the need for Newtonsoft.JSON, the longtime go-to library to handle JSON. In this post I’ll explorer how to use the new api’s right from Azure Functions C#.| Stephan van Rooij on Coding Stephan
I have this bank account, at a bank (I will not shame publicly for now), but I’m really frustrated with their “fake” security. I don’t own a bank, nor do I work for one, but in my opinion they should think differently about security. I also provide some alternative security measures that I thought up myself. Photo by cottonbro studio| Stephan van Rooij on Coding Stephan
This post will show you how we configure Azure SQL Server with a managed identity, it will also show you the most common pitfalls. Configure Azure Groups as database users| Stephan van Rooij on Coding Stephan
A few days ago VanMoof (a Dutch E-bike vendor) applied for a suspension of payment, this usually means the company might go bankrupt in the near future. What does that mean for their customers? In this post I’ll share some toughs on the cloud dependency products have these days. There was a tweet here, but it is deleted forever.| Stephan van Rooij on Coding Stephan
A few months ago, my friend Jan Bakker came to me, with a great idea. He had a client that asked “Can we show the applications from the My Apps page inside of Teams?” I thought this was an interesting idea, and checked the documentation on the Microsoft Graph only to find out that you cannot easily access that information.| Stephan van Rooij on Coding Stephan
Sonos speakers have an extensive local api which was not documented anywhere. In my other project sonos2mqtt I wanted to control everything on the Sonos speakers you could with the official application. So I decided it was time to parse the xml service documentation and write a custom client generator and a matching template to generate a Sonos client library that could do everything you can do with the original application.| Stephan van Rooij on Coding Stephan
Sonos2mqtt is my pet project for years. It allows you to control your Sonos speakers through a mqtt server. This pub/sub mechanism is perfect in a smarthome environment. There is an event and you want to ack on in. This project started because I had no way to control my Sonos speakers without the Sonos application (which kinda sucks). And now years later it’s downloaded 335k times from Dockerhub| Stephan van Rooij on Coding Stephan
I had an issue with a NGINX server not starting after an upgrade, sudo nginx -t did not help.| Stephan van Rooij on Coding Stephan
I was asked to be a guest in Betatalks the Podcast, and I like sharing knowledge on security and home automation, so I taught why not. Beware, spoilers ahead. First listen to the episode then read this post.| Stephan van Rooij on Coding Stephan
Microsoft has this great api where you can control almost everything in the Microsoft 365 cloud. To speed up your requests, you can combine up to 20 requests in a batch. This post will explain how to use batching and how it got implemented in the Graph SDK for DOTNET.| Stephan van Rooij on Coding Stephan
Arstechnica published an article yesterday, called “Appliance makers sad that 50% of customers won’t connect smart appliances”. Let me tell you, I’m glad people don’t connect their oven to the internet. We own two of these smart appliances from AEG and I disconnected them as soon as I discovered what they do.| Stephan van Rooij on Coding Stephan
Home automation is a topic that speaks to the imagination for most of us. Rooms that light up if you enter them, a notification on your phone when someone rings the doorbell. These thing tickled my personal interest years ago. Back then nobody was doing these kinds of things and as a developer I was intrigued. If you talk about Home Automation in 2023 you’re probably also talking about Home Assistant, if you’ve never heard about that. Go on check their website, it’s awesome. Open-source...| Stephan van Rooij on Coding Stephan
In a previous post I showed how to extract all users from a Microsoft 365 tenant, and what you should do about that. If you followed along that leak got restricted. The Azure AD module isn’t the only way to extract user information from a tenant. This post will show you how to do the same (extract all users to csv file) with the Graph PowerShell modules and what you should do about that.| Stephan van Rooij on Coding Stephan
Developers and admins love to open apps using their keyboard, with all kinds of shortcuts. Merill Fernando made something really usefull called cmd.ms. Continue reading to see what it is and how you can use it yourself.| Stephan van Rooij on Coding Stephan
Previous year was quite exciting, a lot has happened. In this post I look back on my most popular posts in 2022 and some of the open-source projects I enjoyed building.| Stephan van Rooij on Coding Stephan
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.| Stephan van Rooij on Coding Stephan
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.| Stephan van Rooij on Coding Stephan
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.| Stephan van Rooij on Coding Stephan
Workflow identity federation of “federated credentials” as they are called in the Azure Portal are brand new in the Microsoft identity suite. As of writing they are still in preview. What are they and how does it work? This will all be explained in the post below.| Stephan van Rooij on Coding Stephan
GitHub Actions allow you to run some program every time an event (or trigger) happens in GitHub. You can respond to a new PR, a new issue or even periodically run some job. There are thousands of little actions you can use in your own workflow.| Stephan van Rooij on Coding Stephan
You’re encrypting sensitive data with RSA encryption, great start! But how do you protect your certificates from being extracted? You get hacked and they steal your encrypted data, no problem, it’s encrypted! If they hack you, are you sure they can’t also steal the certificate? This series covers several risks of Certificate Extraction and what you can do about it.| Stephan van Rooij on Coding Stephan
Powershell is pretty powerful for all kind of administrative tasks, especially if you load some extra modules. We use the AzureAD module for a lot of tasks that can be (semi-)automated with the use of some script. In this post I described how to extract all users from Azure AD as a regular user, and what you should do about it. Extracting users isn’t the only thing you can do with Azure AD powershell and this page shows how to export all Azure AD global admins (which can be executed by ANY ...| Stephan van Rooij on Coding Stephan
Powershell is pretty powerful for all kind of administrative tasks, especially if you load some extra modules. We use the AzureAD module for a lot of tasks that can be (semi-)automated with the use of some script.| Stephan van Rooij on Coding Stephan
Ever heard of Azure Static Web Apps? It combines a single page app (Angular/React/?) with Azure Functions, and manages it all for you. The deployment is a breeze, as long as you have the deployment token available to your build pipeline. The deployment token should be kept a secret and you should save it somewhere secure.| Stephan van Rooij on Coding Stephan
Nederland roept al jaren dat het technologisch voor wil lopen op de rest. We hebben enorm veel dingen uitgevonden in Nederland, Videobanden, bluetooth, enzovoort. Maar op het gebied van vervoersmiddelen lopen we echt enorm achter. In heel Europa zie je overal elektrische steps, in mijn ogen een super goede manier om mensen uit hun auto te krijgen. Update Deze pagina sprak over een pagina die is verwijderd van rijksoverheid.nl, dat is inmiddels rechtgezet zie update WOB Verzoek.| Stephan van Rooij on Coding Stephan
Out of personal interest I’ve build several apps to have better control your Sonos speakers. This page will give you a brief overview of these apps.| Stephan van Rooij on Coding Stephan
A clean windows installation just feels faster, and as a developer I want a fast machine! Why don’t you just reinstall your machine once a month, you ask? Because it takes a lot of time to set it up just right.| Stephan van Rooij on Coding Stephan
I like to make my Team meetings a little more interactive, so I use OBS to make my webcam look more awesome. I’ve setup hosting for some javascript clock I found on the web somewhere.| Stephan van Rooij on Coding Stephan
A PWA (or Progressive web application) is a website which can be installed on a desktop and acts like an app. It has an icon and a title. And it can even receive messages from the server if the app isn’t running. It can also show notification messages to the users. So in short it’s a website acting like an app. This post shows you how to turn a Github Pages website into a pwa in three easy steps.| Stephan van Rooij on Coding Stephan
My personal page is a static website hosted on Github pages. Posts are written in markdown and the source of all the posts is in my public repository. I tweet about most posts at least once, and it just shows the link, that’s not what I want. All tweets to my blog should at least show the title and a short description. Maybe even a large image related to the post.| Stephan van Rooij on Coding Stephan
Wanted to clone a repository to do a quick text fix and create a pull request. Created the fork, and tried to clone. Cloning the repository took way longer than I’m used to.| Stephan van Rooij on Coding Stephan
Github Actions are great for automating tests and builds, among other things. If you need a secret (key/token/password), you can add those in the configuration and use them in your workflow. Sometimes you need a file that is meant to be secret inside your workflow. This post shows you how to securely save this file as a secret and recreate the file during build. We use base64 encoding for a way to convert any file to a string that can be saved in the secrets. This is all done in powershell co...| Stephan van Rooij on Coding Stephan
I’m big fan of smart homes, almost everything in our home is controlable over the network. And I’ve build some awesome apps for it. This post will describe all the components used in my home, and how they connect to each other.| Stephan van Rooij on Coding Stephan
Let’s say you installed a lot of PowerShell modules, and maybe several different versions. Cleaning this up or upgrading to the latest version is a terrible job. Luckily you can use PowerShell to fix this for you.| Coding Stephan
You have a service principal in your tenant. Either you created it yourself or it’s a service principal for an app registration from another tenant (multi tenant application). Now this service principal needs access to an addition role. It’s not always possible to do a new admin consent sometimes you want the change just for a single service principal in a single tenant. I wrote about this before, but since the Azure AD module is depreciated, it’s time to do the same with the new Micros...| Coding Stephan
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.| Coding Stephan
I’m a home automation enthusiast, so that’s out. I’ve been using various systems for years, I even build some home automation packages, like sonos2mqtt and ipcam2mqtt. When buying devices I always look for devices that have a local API, so I can integrate them in my home automation system. Devices that require the cloud to be controllable are getting a points deduction when comparing devices. In my opinion all devices should have a local api, and if they have a cloud api, it should be o...| svrooij.io
Using dependency injection in your C# PowerShell module and run your async code like you're used to.| svrooij.io
Automate distributing your SSH keys using GitHub, so it does not matter that you have multiple keys stored on multiple computers.| svrooij.io
Creating a binary PowerShell module and hit your breakpoints in Visual Studio| svrooij.io
You currently have all these security keys these days that allow you to securely store your ssh private keys on a device to prevent them from being stolen. But what if you could use your face to unlock your ssh keys? Well, you can! And it’s pretty easy to set up.| svrooij.io
I’m super enthusiastic about managed identities, because it allows you to deploy your application without having to worry about credentials. Federated credentials are a way to accomplish the same for none Azure resources. You can use federated credentials to authenticate several tasks inside Github Actions, and thus securely deploy your app to Azure without the need of a secret configured in GitHub. As the regular readers might expect this post will explain how federated credentials actuall...| svrooij.io
Now that I figured out how to decrypt IntuneWin files it is time to explain how you can create those files with just C# code. With this explanation you should be able to create IntuneWin files on any platform, that supports the .NET framework. And depending on your skills you might be able to port this code to other languages as well. Super fast Content Prep| svrooij.io
Journey until now, I created WingetIntune on GitHub, an open-source app packager that downloads all the details from Winget and then packages the installer for Intune. In that last post I dove intune decrypting .intunewin files. With the end goal of being able to create those files with pure C# code. And I’m happy to announce that I succeeded in doing so. Super fast Content Prep| svrooij.io
The audit log in Azure AD in super important. If I was an attacker that got access to some tenant, I would make sure my details would not show up in there. I would probably use a VPN/TOR of sorts just to hide my tracks. But what if I tell you that the Microsoft Graph API does already covers your tracks? Not my IP showing in the audit log| svrooij.io
Microsoft organized a Teams Hacktogether hackathon, we had a great idea. This post will show you our entry.| svrooij.io
In the previous post I shared my first experience with the teams toolkit. For the Teams Hacktogether, we started our Teams Tab in Blazor. What is Blazor, what flavours are there and what about hosting your app?| svrooij.io
Externalizing user accounts, what is he thinking? In this post I’ll explain why every company should consider externalizing their user account management from their applications.| svrooij.io
You have this multi-tenant application that is protected with Azure AD, great! How about the certificate you’re using as a client credential? If you followed the Microsoft samples it’s probably stored in the Azure Key Vault. This seems really secure, but there is one thing no one thought about Certificate Extraction.| svrooij.io
Managed identities are a great way to improve the security of your application. Microsoft “manages” the rotation of secrets and makes sure they cannot be extracted or used anywhere outside their platform. That is the reason I’m a big fan off Managed Identities! You should use managed identities wherever possible. It’s possible to use managed identities for accessing (custom) api’s, an that is exactly what I’ll be explaining in this post. At the and you will be able to call any Azu...| svrooij.io
Today I’ll demo my new KeyVault proxy in the 425show. This page will allow you to follow along. Check out the recording and if you have any questions, contact me on twitter @svrooij.| svrooij.io
Protecting client credentials for (multi-tenant) application should be your highest priority, not only in production also during development. We developed a small application that helps you do just that. Use your Visual Studio credentials to sign a token request while the certificate stays in the KeyVault. You could even only authorize developers to use the certificates in a KeyVault when they need it and de-authorize then when it’s no longer needed.| svrooij.io
Ever used Managed Identities in Azure? You should, it’s a great way to get rid off passwords in your code and configuration. In this post I’ll show you how managed identities actually work. And how I built a small app that should help you use the ManagedIdentityCredential in Docker and or during development. App running in docker using Managed Identity| svrooij.io
Ever since Microsoft created managed identities, people are asking how/if they work for multi-tenant applications. They even spend a faq on it. Previously you had to go through some hoops to use managed identities with your multi tenant app. Let’s have a look if we can solve this with in combination with federated credentials.| svrooij.io
The blog you’re currently reading is a written in Markdown, then an application runs and generates static html files. This is called a static site generator, there are several static site generators. Previously I used Jekyll and recently I decided it was time for something new, I migrated to Hugo. Let my explain why I did this and what was needed to make this happen.| svrooij.io
Exploring the Teams Tab Toolkit| svrooij.io
We needed access to some data not available in the Graph API| Coding Stephan
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!).| Coding Stephan
Microsoft Teams without an owner are no longer manageable, so what happens if some user leaves the company and he/she was an owner in several Teams?| Coding Stephan
Externalizing user accounts, what is he thinking? The previous post should give you a clear view what this means and why you should consider it. This post will go a into details of “delegating login” to a separate application.| Coding Stephan
Keeping your secrets secure, can be a huge challenge. And keeping secrets becomes a huge responsibility, especially if you’re in the business of building multi-tenant applications. Microsoft created managed identities to ease this responsibility, but according to the faq, you cannot use them to secure resources in other tenants. And that is exactly where we could use extra help is securing secrets.| svrooij.io