Engineering / ENG-1522
SAML metadata upload
Description
Shaped in Emargen: SAML metadata upload.
Why
Every depot's move to single sign-on needs its identity provider's metadata, which the customer's IT sends to support on a ticket and an engineer loads. Brakeline's rollout showed how easy it is to load the wrong file (Hull got Grimsby's certificate). Kelderby, signed on 12 June, wants to do it themselves for 25 depots.
What we build
- In the portal's single sign-on settings, an administrator uploads a depot's metadata file, or copies it from another depot.
- We check it: well-formed, the right entity ID for the customer's connection, a signing certificate, not expired.
- An uploaded file is pending until a test sign-in passes; then it's used. A failing test leaves the old one in place.
- The certificate expiry warnings administrators already get link straight to the upload.
Not in this epic
- Fetching metadata from the IdP on a schedule. Uploading for every depot at once.
Done when
Kelderby's IT uploads their pilot depots' metadata without a ticket. Target 18 August.
Child issues
- ENG-1523 Administrators upload a depot's metadata, or copy it from another depot Done
- ENG-1524 identity-service checks uploaded metadata Done
- ENG-1526 Uploaded metadata stays pending until a test sign-in passes Done
- ENG-1579 Certificate expiry warnings link straight to the upload Done
- ENG-1625 Metadata with two signing certificates: only the first is kept Done
Linked issues
- relates to SUP-1096 Kelderby: can we upload the SAML metadata ourselves? Done
- relates to SUP-1103 Parcelwise: our 32 hubs' Entra ID certificates expire, please swap them like last year Done
- relates to SUP-1116 Kelderby: Rotterdam's test sign-in fails after the metadata upload Done
- relates to SUP-1124 Kelderby: portal refuses a pilot depot's metadata file as 'not SAML metadata' Done
- relates to ENG-1665 Metadata upload refuses Kelderby's file (XML comment before the root element) Done
Live for everyone. Clara walks Kelderby's IT through it this week. Closing.