API Reference: SAML Azure AD Federation
Federation Metadata URL
https://login.microsoftonline.com/{tenant-id}/federationmetadata/2007-06/federationmetadata.xml
SAML 2.0 Endpoints
| Endpoint |
URL |
| SSO (POST) |
https://login.microsoftonline.com/{tenant}/saml2 |
| SSO (Redirect) |
https://login.microsoftonline.com/{tenant}/saml2 |
| Logout |
https://login.microsoftonline.com/{tenant}/saml2 |
SP Metadata Required Fields
| Field |
Description |
entityID |
SP unique identifier |
AssertionConsumerService |
ACS URL (POST binding) |
NameIDFormat |
emailAddress or persistent |
SingleLogoutService |
SLO URL (optional) |
XML Namespaces
ns = {
"md": "urn:oasis:names:tc:SAML:2.0:metadata",
"ds": "http://www.w3.org/2000/09/xmldsig#",
"saml": "urn:oasis:names:tc:SAML:2.0:assertion",
}
SAML Bindings
| Binding |
URI |
| HTTP-POST |
urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST |
| HTTP-Redirect |
urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect |
| SOAP |
urn:oasis:names:tc:SAML:2.0:bindings:SOAP |
Azure AD Graph API (App Registration)
POST https://graph.microsoft.com/v1.0/servicePrincipals
Authorization: Bearer TOKEN
{
"appId": "app-id",
"preferredSingleSignOnMode": "saml",
"loginUrl": "https://app.example.com/login"
}
Validation Checks
| Check |
Severity |
| HTTPS on ACS URL |
High |
| Certificate present |
Critical |
| HTTP-POST binding available |
Medium |
| NameID format configured |
Medium |