Skip to content

saml: capture + diff legacy assertion for NameID continuity #52

@themightychris

Description

@themightychris

Capture a real assertion emitted by the legacy laddr emergence-slack code in production, and diff against the assertion the new IdP would emit for the same user.

Surfaced by the saml-idp plan's closeout (PR #49). Per plans/saml-idp.md#risks--unknowns, this is "the single highest-stakes thing in this plan" — the v1 IdP claims to preserve NameID stability for every existing Slack account through cutover. The way to actually prove that is:

  1. Browser-side: capture a laddr-emitted SAMLResponse during a real /Slack/Login flow (browser devtools → Network tab → look at the POST to slack.com/sso/saml — the SAMLResponse is in the form body, base64-encoded)
  2. Decode the XML
  3. For the same Person, build the v1 IdP's response (via /api/saml/slack/launch) and decode
  4. Diff field-by-field. Acceptable diffs: timestamps, IDs. Unacceptable: NameID.Value, NameID.Format, NameQualifier, SPNameQualifier, attribute names.

If the diff turns up a NameID delta for any user, we need to fix migration before cutover.

Out of band of the v1 PR; needs:

  • Access to a logged-in legacy laddr account
  • Coordination with that user

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions