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 de création d'une application SAML.

Note

Si vous utilisez l'attribut facultatif name 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 requis 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'assertion est le point d'extrémité du fournisseur d'identités 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 identifie si la demande de déconnexion est envoyée comme redirection ou post. 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 d'envoi de la demande de déconnexion (à 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 déconnexion (à l'aide de HTTP ou HTTPS).

Construction de la propriété nameIdUserstoreAttribute

La propriété nameIdUserstoreAttribute spécifie quel attribut utilisateur est utilisé comme 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>