CodeForPhilly / CodeForPhilly/codeforphilly-ng
saml: capture + diff legacy assertion for NameID continuity
- Langage dominant
- TypeScript
- Étoiles
- 1
- Forks
- 1
- Merge moyen
- 5 j 3 h
- PR mergées (30 j)
- 9
Description
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](plans/saml-idp.md), 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
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Lisez plans/saml-idp.md sous « Risks & Unknowns », puis capturez la SAMLResponse d’un flux /Slack/Login réel à l’aide des outils de développement du navigateur. Décodez-la et comparez-la champ par champ à la réponse décodée de /api/saml/slack/launch pour la même Person. C’est terminé lorsque seuls les horodatages et les IDs diffèrent ; les champs NameID, les qualificatifs et les noms d’attributs restent identiques, ou lorsqu’un problème de migration à corriger est identifié.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- api, authentication
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 35/100