API ReferenceSAML (IdP)
Attribute Mappings
Translate Avnology identity fields into SAML assertion attributes on a per-SP basis.
RPCs
| Method | Path |
|---|---|
| ListAttributeMappings | GET /v1/saml/serviceProviders/{spId}/attributeMappings |
| SetAttributeMappings | PUT /v1/saml/serviceProviders/{spId}/attributeMappings |
Base URL: https://<Domain id="api"/>
Authentication: Bearer token with saml_idp:write for Set, :read for List.
Mapping shape
{
"mappings": [
{ "attribute": "email", "source": "identity.email"
Sources accept dotted paths into the identity object, organization metadata (org.metadata.*), or literal strings (literal:"...").
Example -- replace all mappings
body := strings.NewReader(`{"mappings":[
{"attribute":"email","source":"identity.email"},
{"attribute":"first_name","source":"identity.first_name"},
{"attribute":"last_name","source":"identity.last_name"}
]}`)
req, _ := http.NewRequest("PUT"
import httpx, os
httpx.put(
f"https://api-id.avnology.net/v1/saml/serviceProviders/{sp_id}/attributeMappings",
json={"mappings": [
{"attribute": "email",
curl -X PUT "https://api-id.avnology.net/v1/saml/serviceProviders/smlsp_01H7X/attributeMappings" \
-H "Authorization: Bearer $AVNOLOGY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mappings": [
{"attribute":"email", "source":"identity.email"},
{"attribute":"first_name", "source":"identity.first_name"},
{"attribute":"last_name", "source":"identity.last_name"}
]
}'body := strings.NewReader(`{"mappings":[
{"attribute":"email","source":"identity.email"},
{"attribute":"first_name","source":"identity.first_name"},
{"attribute":"last_name","source":"identity.last_name"}
]}`)
req, _ := http.NewRequest("PUT"
import httpx, os
httpx.put(
f"https://api-id.avnology.net/v1/saml/serviceProviders/{sp_id}/attributeMappings",
json={"mappings": [
{"attribute": "email",
curl -X PUT "https://api-id.avnology.net/v1/saml/serviceProviders/smlsp_01H7X/attributeMappings" \
-H "Authorization: Bearer $AVNOLOGY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mappings": [
{"attribute":"email", "source":"identity.email"},
{"attribute":"first_name", "source":"identity.first_name"},
{"attribute":"last_name", "source":"identity.last_name"}
]
}'body := strings.NewReader(`{"mappings":[
{"attribute":"email","source":"identity.email"},
{"attribute":"first_name","source":"identity.first_name"},
{"attribute":"last_name","source":"identity.last_name"}
]}`)
req, _ := http.NewRequest("PUT"
import httpx, os
httpx.put(
f"https://api-id.avnology.net/v1/saml/serviceProviders/{sp_id}/attributeMappings",
json={"mappings": [
{"attribute": "email",
curl -X PUT "https://api-id.avnology.net/v1/saml/serviceProviders/smlsp_01H7X/attributeMappings" \
-H "Authorization: Bearer $AVNOLOGY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mappings": [
{"attribute":"email", "source":"identity.email"},
{"attribute":"first_name", "source":"identity.first_name"},
{"attribute":"last_name", "source":"identity.last_name"}
]
}'body := strings.NewReader(`{"mappings":[
{"attribute":"email","source":"identity.email"},
{"attribute":"first_name","source":"identity.first_name"},
{"attribute":"last_name","source":"identity.last_name"}
]}`)
req, _ := http.NewRequest("PUT"
import httpx, os
httpx.put(
f"https://api-id.avnology.net/v1/saml/serviceProviders/{sp_id}/attributeMappings",
json={"mappings": [
{"attribute": "email",