Création et activation d'une application SAML
Cette section fournit des exemples de demandes de création et d'activation d'une application SAML (Security Assertion Markup Language) à l'aide des API REST.
Créer une application SAML
Une application SAML est une application qui prend en charge SAML pour l'authentification unique. L'exemple montre comment créer une demande pour créer une application SAML.
Si vous utilisez l'attribut
name
facultatif dans votre demande, veillez à n'utiliser que des caractères alphanumériques et le trait de soulignement ( _ ) dans la valeur.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
Attributs d'application requis pour une application SAML
Attribut d'application obligatoire | Description |
---|---|
entityId
|
Nom unique d'une entité SAML, soit un fournisseur d'identités soit un fournisseur de service. Habituellement, la valeur est une URL. |
assertionConsumerUrl
|
L'URL du consommateur d'assertions est le point d'extrémité du fournisseur auquel les assertions SAML seront envoyées par le fournisseur d'identités SAML. |
nameIdFormat
|
Cet attribut correspond au format d'ID nom qui sera utilisé dans l'assertion SAML, par exemple Adresse de courriel, Nom qualifié de domaine Windows ou Nom d'objet X.509. Le fournisseur de services et le fournisseur d'identités utilisent le format d'ID nom pour identifier facilement un objet pendant leur communication. |
nameIdValue
|
Ce que vous définissez pour cet attribut dépend du type nameIdFormat spécifié. Cet attribut permet d'identifier l'utilisateur connecté. |
logoutBinding
|
Cet attribut indique si la demande de fermeture est envoyée comme redirection ou comme publication. Il s'agit d'un attribut obligatoire si l'attribut logoutEnabled est réglé à True. . |
logoutRequestURL
|
Obligatoire si l'attribut logoutEnabled est réglé à True. Entrez l'emplacement où est envoyée la demande de fermeture de session (à l'aide de HTTP ou HTTPS). |
logoutResponseURL
|
Obligatoire si l'attribut logoutEnabled est réglé à True. Entrez l'emplacement où est envoyée la réponse de fermeture de session (à l'aide de HTTP ou HTTPS). |
Construction de la propriété nameIdUserstoreAttribute
La propriété nameIdUserstoreAttribute
spécifie l'attribut d'utilisateur utilisé en tant que valeur NameID dans l'assertion SAML.
Valeurs prises en charge
-
userName
-
emails.primary.value
Construction de la propriété userStoreAttributeName
La propriété userStoreAttributeName
est un sous-attribut de l'attribut complexe userAssertionAtributes
. La propriété userStoreAttributeName
spécifie l'attribut d'utilisateur à utiliser pour créer la valeur de l'attribut d'assertion SAML.
Valeurs prises en charge
-
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
Activer une application SAML
Utilisez cet exemple pour créer une demande d'activation d'une application SAML.
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>