SAML-App erstellen und aktivieren
Dieser Abschnitt enthält Beispielanforderungen zum Erstellen und Aktivieren einer Security Assertion Markup Language-(SAML-)App mit den REST-APIs.
SAML-App erstellen
Eine SAML-App ist eine Anwendung, die SAML für Single Sign-On unterstützt. Das Beispiel zeigt, wie eine Anforderung zum Erstellen einer SAML-App erstellt wird.
Wenn Sie das optionale Attribut
name
in Ihrer Anforderung verwenden, müssen Sie nur alphanumerische Zeichen und den Unterstrich ( _ ) im Wert verwenden.cat>/tmp/SAMLApp.json << __EOF__
{
"schemas": ["urn:ietf:params:scim:schemas:oracle:idcs:App"],
"active": true,
"displayName": "testSAMLApp",
"description": "SAML for Portal",
"basedOnTemplate": {
"value": "CustomSAMLAppTemplateId"
},
"name": "testSAMLPartner",
"urn:ietf:params:scim:schemas:oracle:idcs:extension:samlServiceProvider:App":
{
"signResponseOrAssertion": "Assertion",
"includeSigningCertificateInSignature": "true",
"entityId": "IdcsSamlDomain",
"nameIdFormat": "saml-emailaddress",
"nameIdUserstoreAttribute": "emails.primary.value",
"assertionConsumerUrl": "http://<domainURL>/saml2/sp/acs/post",
"signatureHashingAlgorithm": {
"value": "SHA-256"
},
"logoutEnabled": true,
"logoutBinding": true,
"logoutRequestURL": "http://<domainURL>/FederationSampleApp/logout",
"singleLogoutURL": "http://<domainURL>/FederationSampleApp/logout",
"logoutResponseUrl": "http://<domainURL>/FederationSampleApp",
"groupAssertionAttributes": [
{
"name": "all",
"condition": "All Groups"
}
],
"userAssertionAttributes": [
{
"name": "email",
"userStoreAttributeName": "emails.primary.value"
},
{
"name": "userid",
"userStoreAttributeName": "userName"
},
{
"name": "firstname",
"userStoreAttributeName": "name.givenName"
},
{
"name": "lastname",
"userStoreAttributeName": "name.familyName"
}
]
}
}
__EOF__
curl -X POST
-H "Content-type: application/json"
-H "Authorization: Bearer <access token value>"
--data @/tmp/SAMLApp.json http://<domainURL>/admin/v1/Apps
Erforderliche App-Attribute für eine SAML-App
Erforderliches Anwendungsattribut | Beschreibung |
---|---|
entityId
|
Eine Entity-ID ist ein global eindeutiger Name für eine SAML-Entity, also entweder ein Identitätsprovider oder ein Serviceprovider. Normalerweise ist der Wert eine URL. |
assertionConsumerUrl
|
Die Assertion Consumer-URL ist der Endpunkt beim Serviceprovider, an den der SAML-Identitätsprovider die SAML-Assertions sendet. |
nameIdFormat
|
Dieses Attribut stellt das Namens-ID-Format dar, das in der SAML-Assertion verwendet wird, wie E-Mail-Adresse, qualifizierter Windows-Domainname oder X.509-Themenname. Der Serviceprovider und der Identitätsprovider verwenden das Namens-ID-Format, um bei ihrer Kommunikation einfach ein Subject zu identifizieren. |
nameIdValue
|
Was Sie für dieses Attribut definieren, hängt vom angegebenen nameIdFormat-Typ ab. Mit diesem Attribut wird der angemeldete Benutzer identifiziert. |
logoutBinding
|
Dieses Attribut gibt an, ob die Abmeldeanforderung als Umleitung oder als Post gesendet wird. Dies ist ein obligatorisches Attribut, wenn das Attribut logoutEnabled auf True. gesetzt ist |
logoutRequestURL
|
Erforderlich, wenn das Attribut logoutEnabled auf True. gesetzt ist Geben Sie an, wohin die Abbuchungsanforderung gesendet wird (über HTTP oder HTTPS). |
logoutResponseURL
|
Erforderlich, wenn das Attribut logoutEnabled auf True. gesetzt ist Geben Sie an, wohin die Abmeldeantwort gesendet wird (über HTTP oder HTTPS). |
Eigenschaft nameIdUserstoreAttribute erstellen
Die Eigenschaft nameIdUserstoreAttribute
gibt an, welches Benutzerattribut als NameID-Wert in der SAML-Assertion verwendet wird.
Unterstützte Werte
-
userName
-
emails.primary.value
Eigenschaft userStoreAttributeName erstellen
Die Eigenschaft userStoreAttributeName
ist ein Unterattribut des komplexen Attributs userAssertionAtributes
. Die Eigenschaft userStoreAttributeName
gibt an, welches Benutzerattribut zum Erstellen des Wertes des SAML-Assertion-Attributs verwendet werden soll.
Unterstützte Werte
-
userName
-
name.givenName
-
name.middleName
-
name.familyName
-
emails.primary.value
-
emails[work].value
-
phoneNumbers[home].value
-
phoneNumbers[mobile].value
-
phoneNumbers[work].value
-
title
-
addresses[work].streetAddress
-
addresses[work].locality
-
addresses[work].postalCode
-
addresses[work].region
-
addresses[work].country
SAML-App aktivieren
Verwenden Sie dieses Beispiel, um eine Anforderung zum Aktivieren einer SAML-Anwendung zu erstellen.
echo "Activate SAML App"
cat>/tmp/SAMLApp.json << __EOF__
{
"active" : true,
"schemas": [
"urn:ietf:params:scim:schemas:oracle:idcs:AppStatusChanger"
]
}
__EOF__
curl -X PUT
-H "Content-type: application/json"
-H "Authorization: Bearer <access token value>"
--data @/tmp/SAMLApp.json http://domainURL/admin/v1/AppStatusChanger/<appID>