SAML Federated authentication with Amazon Web Services

I’ve started using Keycloak for most of the internal authentication on my home network recently via OIDC, and I’ve started to extend that outwards to other services so I have a single-sign-on experience.

One of the services I’ve started using this with is Amazon Web Services, which provides SAML authentication into IAM roles.

It’s not the most straight-forward of things to set up with Keycloak as the identity provider – there’s a few defaults in Keycloak which will stand in your way. I’ve tried my best to document this below, in case it helps anyone else out.

One major benefit of using SAML is that you can manage your users outside of AWS in whatever identity provider you already have. You can assign roles to groups, and thus manage what AWS accounts at which permissions level users have access to my telling Keycloak the AWS roles, and then Keycloak passes the information onto AWS about which roles are authorised. AWS then prompts the user to choose the role in which they wish to log in to (if there’s more than one)

Continue reading

Advent of Code 2021

Yesterday I discovered Advent of Code following an article in The Register. While I’m disappointed to discover I’ve missed it for the past few years, I’m quite excited to be taking part this year. This morning I woke up with excitement over what puzzle today’s advent calendar would have, which is the first time I’ve felt like that over an advent calendar in quite a few years now!

The first two days of puzzles have been fairly straight-forward, solvable in about 10-20 lines of code, and I’ve done all of them so far with about 10 minutes of effort. Given the puzzles are released at 00:00 EST (which is 05:00 for me!), I don’t have a hope of getting onto the leaderboards. As such, I’m playing to “save Christmas” and get all fifty stars.

If you’ve got an interest in programming and problem-solving, it’s something I’d highly recommend you give a go! My language of choice here is C# running on .NET 5, but you can use whatever language you want.

If you want, you can see my solutions at https://github.com/stwalkerster/advent-of-code. At the moment, I’m not publishing my solutions for that day’s puzzle until later in the day, but I make no guarantee to keep that up as the month progresses.

On a vaguely related note, I love the CSS glow effect they’ve got on some of the text using a simple blurred text shadow…

… I was thinking of doing a reskin of this site at some point, and I was thinking of a dark theme. Having recently done a ton of work on Helpmebot’s web frontend to turn it into something modern and actually useful (rather than the half-implemented MediaWiki extension it was), I’ve got my eyes set on doing some web design projects again.

Minecraft XP Banking

For a while now I’ve used theĀ XPKeeper Bukkit plugin by eccentric_nz on my multiplayer Minecraft worlds to provide some form of “XP banking”.

I’m now in the process of replacing XPKeeper with my own xpbank data pack which I’ve written as a replacement capable of functioning with a vanilla Minecraft server. It’s been an interesting foray into data pack creation as a form of programming within the bounds of the vanilla game.

Continue reading

Distant Worlds II – Journey’s End

It’s the end of the road for me. I didn’t make it any further than Pru Aescs NC-M d7-192. It’s still my wish to visit Beagle Point, but not now.

The expedition made it to Beagle Point without me, and most other commanders are already back home. There’s no point in me trying to continue this quest at the present time. I can get a proper shipyard to fix this ship back at Flade Enterprise.


Breaking out of game character, the reason for my lack of play-time on Elite has been a combination of real-life factors, and the change of my primary operating system from Windows to Linux – it’s got to the point where Elite: Dangerous is the only thing I used Windows for.

With the release of Valve’s Proton 4.2, I’ve now successfully managed to get E:D running on Linux, so jumping in-game for a bit of play-time doesn’t feel so disruptive to everything else. In addition, EDDiscovery also (sort-of) works under Mono, though you can’t edit your CMDR settings in EDDiscovery. I found that I could open the EDDUser databse file with DataGrip and set the settings directly in the file though.

If you’re interested, this is the document I followed to get E:D working on Proton.

Distant Worlds II – Day 2

Curse this blasted new ship! It was only yesterday that everything seemed to be working fine. Today, it’s decided to stop logging journal data. Not only that, but the heatsink trigger appears to be far too sensitive. Breathe on it and it’ll drop a heatsink. :(

I made it as far as Waypoint 1, which I think was 71 jumps (by a quick spot of maths), but I honestly don’t know due to the loss of tracking data. I’m going with 71 jumps.

On the up side, there’s an asteroid base at this waypoint, so I was able to drop some cartographic data off in case of incidents later on.

Item DR CR Balance
Replacement heatsink -25 CR -25 CR
Ship integrity repair -5,489 CR -5514 CR
Cartographical data 3,878,472 CR 3872,958 CR
Cartographical data 3,823,645 CR 7,696,603 CR
First discovery bonus 98,000 CR 7,794,603 CR
Cartographical data 1,956,710 CR 9,751,313 CR
First discovery bonus 37,000 CR 9,788,313 CR
Total 9,788,313 CR

I went on to do another 89 jumps after that, using 416.6t fuel, but suffered even more issues with tracking. I’m going to dig into the ship’s computer and see if I can figure out what is going on…

Distant Worlds II – Day 1

Nothing much to report as I head out of the bubble.

I’m already playing catchup to the expedition – unfortunately the replacement ship I bought from Bakewell Point in Pallaeni (replacing the one destroyed by CMDR Rivertide) has been plagued with technical issues that I’ve had to spend far too long rectifying. I’m happy to report that I’ve managed to make a good number of jumps today, so hopefully I can play catchup and continue onwards to the rest of the expedition without further incident.

Zipline: saving lives with delivery drones

On Saturday, I was made aware of a video by Real Engineering – a YouTube channel I already followed – which goes into the details of how a company is running an autonomous drone-based delivery service for critical medical supplies including blood in remote regions of Rwanda.

I’ve been aware of companies like Amazon and Domino’s wanting to get into the drone delivery service using quad-copter type drones, but this stunned me as an absolutely incredible use of technology for humanitarian purposes.

Continue reading