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.
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>