Criando e Ativando um Aplicativo SAML

Esta seção fornece exemplos de solicitações para criar e ativar um Aplicativo SAML (Security Assertion Markup Language) usando as APIs REST.

Criar um Aplicativo SAML

Um Aplicativo SAML é um aplicativo que suporta SAML para sign-on único. O exemplo mostra como criar uma solicitação para criar um Aplicativo SAML.

Observação

Se você estiver usando o atributo name opcional em sua solicitação, certifique-se de usar apenas caracteres alfanuméricos e o caractere de sublinhado ( _ ) no valor.
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

Atributos de Aplicativo Obrigatórios para um Aplicativo SAML

Atributo de Aplicativo Obrigatório Descrição
entityId Um ID de entidade é um nome exclusivo global para uma entidade SAML, um provedor de identidades ou um provedor de serviços. Normalmente, o valor é uma URL.
assertionConsumerUrl O URL do consumidor de asserção é o ponto final no provedor de serviços para o qual as Asserções SAML serão enviadas pelo provedor de identidades SAML.
nameIdFormat Esse atributo representa o formato do ID do Nome que será usado na asserção SAML, como Endereço de E-mail, Nome Qualificado do Domínio do Windows ou Nome do Assunto X.509. O provedor de serviços e o provedor de identidades usam o formato de ID de Nome para identificar facilmente um assunto durante a comunicação.
nameIdValue O que você define para esse atributo depende do tipo nameIdFormat especificado. Este atributo é usado para identificar o usuário que está conectado.
logoutBinding Este atributo identifica se a solicitação de log-out foi enviada como Redirecionar ou Post. Este é um atributo obrigatório se o atributo logoutEnabled estiver definido como True.
logoutRequestURL Obrigatório se o atributo logoutEnabled estiver definido como True. Informe o local para envio da solicitação de log-out (usando HTTP ou HTTPS).
logoutResponseURL Obrigatório se o atributo logoutEnabled estiver definido como True. Informe o local para envio da resposta de log-out (usando HTTP ou HTTPS).

Construindo a Propriedade nameIdUserstoreAttribute

A propriedade nameIdUserstoreAttribute especifica qual atributo de usuário é usado como o valor NameID na asserção SAML.

Valores Suportados

  • userName

  • emails.primary.value

Construindo a Propriedade userStoreAttributeName

A propriedade userStoreAttributeName é um subatributo do atributo complexo userAssertionAtributes. A propriedade userStoreAttributeName especifica qual atributo de usuário deve ser usado para criar o valor do atributo de asserção SAML.

Valores Suportados

  • 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

Ativar um Aplicativo SAML

Use este exemplo para criar uma solicitação para ativar um aplicativo 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>