Analyze SAML 2.0 XML metadata files entirely in the browser. This app quickly extracts the most commonly needed values when integrating Single Sign-On:
- EntityID
- IdP SingleSignOnService URL (for IdP metadata) or SP AssertionConsumerService URL (for SP metadata)
- X.509 certificate (first found)
Everything runs client-side. Your XML file never leaves your machine.
- Drag & drop or file picker: Load any
.xmlSAML metadata file. - Auto-detect IdP vs SP: Reads
IDPSSODescriptororSPSSODescriptorand picks the corresponding endpoint:- IdP: first
SingleSignOnService@Location - SP: first
AssertionConsumerService@Location
- IdP: first
- Extract X.509 certificate: Grabs the first
X509Certificatevalue. - One-click copy: Copy EntityID and URL from the UI; copy the certificate with header/footer.
- Download certificate: Save the certificate as
.certor.txt. - Client-side privacy: Parsing happens in your browser using
xmldom.
- UI: React 18 + Vite
- XML parsing:
xmldomDOMParser
Prerequisites: Node.js 18+ and npm.
npm install
npm run devOpen the local URL shown in your terminal (typically http://localhost:5173).
For production builds:
npm run build
npm run preview- Start the app and open it in your browser.
- Drag and drop a SAML metadata
.xmlfile into the drop zone (or click Choose File). - The app extracts and displays:
- EntityID
- SSO URL (IdP SSO endpoint or SP ACS endpoint)
- Certificate actions (copy/download)
- Use the copy buttons to copy values, or download the certificate.
-
src/parseXML.jsx- Uses
xmldomDOMParserto parse the XML string. - Reads the root
entityIDattribute. - Extracts the first
X509Certificatevalue. - If
IDPSSODescriptorexists, returns the firstSingleSignOnService@Locationas the SSO URL. - Otherwise (SP metadata), returns the first
AssertionConsumerService@Locationas the SSO/ACS URL.
- Uses
-
src/App.jsx- Handles drag-and-drop and file selection.
- Uses a
FileReaderto read XML text and callsparseXML. - Renders results and provides copy/download actions for the certificate.
-
src/copyToClipboard.jsx- Simple reusable button to copy a provided string into the clipboard with quick visual feedback.
SSO-XML-Metadata-Analyzer/
├─ index.html
├─ src/
│ ├─ App.jsx # UI, file handling, rendering results
│ ├─ parseXML.jsx # XML parsing logic (EntityID, SSO/ACS URL, X.509 cert)
│ ├─ copyToClipboard.jsx # Reusable copy button
│ └─ index.jsx # App bootstrap
└─ public/
└─ favicon.png
- Designed for standard SAML 2.0 metadata. Namespaces are handled via wildcard lookups, so common IdP/SP exports generally work.
- The app selects the first matching endpoint and the first certificate it finds.
- Files are processed entirely in your browser; nothing is uploaded to a server.
- No validation is performed on certificates or endpoints; this is a convenience tool, not a security scanner.
- Picks the first
SingleSignOnServiceorAssertionConsumerServiceonly; does not considerisDefaultorindexpreferences. - Reads only the first
X509Certificateand does not distinguish signing vs encryption keys. - Does not parse additional metadata like
SingleLogoutService, NameID formats, or bindings. - Future improvements could include multi-endpoint selection, better validation, and richer metadata coverage.