How SAML and OIDC differ in sharing information, and perhaps why

In practice, SAML and OIDC are two ways of doing third party web-based authentication (andthus a Single Sign On (SSO)) system; the web site you want to usesends you off to a SAML or OIDC server to authenticate, and thenthe server sends authentication information back to the 'client'web site. Both protocols send additional information about you alongwith the bare fact of an authentication, but they differ in how theydo this.

In SAML, the SAML server sends a collection of


The OpenID Connect (OIDC) 'sub' claim is surprisingly load-bearing

OIDC (OpenID Connect) istoday's better or best regarded standard for (web-based) authentication.When a website ( or something ) authenticatesyou through an OpenID (identity) Provider (OP), one of the thingsit gets back is a bunch of 'claims', which is to say informationabout the authenticated person. One of the core claims is'sub', which is vaguely described as a string that is 'subject -identifier for the end-user at the issuer'.


The problem facing MFA-enabled IMAP at the moment (in early 2025)

Suppose that you have an IMAP server and you would like to add MFA(Multi-Factor Authentication) protection to it. I believe that intheory the IMAP protocol supports multi-step 'challenge and response'style authentication, so again in theory you could implement MFAthis way, but in practice this is unworkable because people wouldbe constantly facing challenges. Modern IMAP clients (and servers)expect to be able to open and close connections more or less ondemand, rather than opening one connection, holding it open


A Prometheus gotcha with alerts based on counting things

Suppose, not entirely hypothetically, that you have some backupservers that use swappable HDDs as their backup media and expose that 'media' as mounted filesystems. Because you keepswapping media around, you don't automatically mount these filesystemsand when you do manually try to mount them, it's possible to havesome missing (if, for example, a HDD didn't get fully inserted andengaged with the hot-swap bay). To deal with this, you'd like towrite a Prometheus


What SimpleSAMLphp's core:AttributeAlter does with creating new attributes

SimpleSAMLphp is a SAML identityprovider (and other stuff). It's of deep interest to us becauseit's about the only SAML or OIDC IdP I can find that will authenticateusers and passwords against LDAP and has a plugin that will doadditional full MFA authentication against the university's chosenMFA provider ( although you need to use a feature branch ).In the process of doing this MFA authentication, we need to extractthe university identifier to use for MFA authentication from ourlocal LDAP data. Conveniently


If you get the chance, always run more extra network fiber cabling

Some day, you may be in an organization that's about to add somemore fiber cabling between two rooms in the same building, or maybetwo close by buildings, and someone may ask you for your opinionabout many fiber pairs should be run. My personal advice is simple: run more fiber than you think you need, ideally a bunch more(this generalizes to network cabling in general, but copper cablingis a lot more bulky and so harder to run (much) more of). THere is


Updating local commits with more changes in Git (the harder way)

One of the things I do with Git is maintain personal changes locallyon top of the upstream version, with my changes updated via rebasingevery time I pull upstream to update it. In the simple case, I haveonly a single local change and commit, but in more complex cases Isplit my changes into multiple local commits; my local versionof Firefox currently carries 12 separatepersonal commits. Every so often, upstream changes something thatcauses one of those personal changes to need an update, withoutactually breaking the


Using PyPy (or thinking about it) exposed a bug in closing files

Over on the Fediverse, I said :

A fun Python error some code can make and not notice until you runit under PyPy is a function that has 'f.close' at the end instead of'f.close()' where f is an open()'d file.

(Normal CPython will immediately close the file when the functionreturns due to refcounted GC. PyPy uses non-refcounted GC so the fileremains open until GC happens, and so you can get too many files openat


Always sync your log or journal files when you open them

Today I learned of a new way to accidentally lose data 'written'to disk , courtesyof this Fediverse post summarizing a longer article about CouchDB and this issue .Because this is so nifty and startling when I encountered it, yetso simple, I'm going to re-explain the issue in my own words andexplain how it leads to the title of this entry.

Suppose that you have a program that makes data it writes to diskdurable through some form of journal, write ahead log (WAL)


Using Netplan to set up WireGuard on Ubuntu 22.04 works, but has warts

For reasons outside the scope of this entry, I recently needed toset up WireGuard on an Ubuntu 22.04 machine. When I did thisbefore for an IPv6 gateway , I used systemd-networkd directly. This time around I wasn't going to set up a single peerand stop; I expected to iterate and add peers several times, whichmade netplan 's ability to update and re-doyour network configuration look attractive. Also, our machines arealready using Netplan for their basic