

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Autenticação SAML para Amazon Serverless OpenSearch
<a name="serverless-saml"></a>

Com a autenticação SAML para Amazon OpenSearch Serverless, você pode usar seu provedor de identidade existente para oferecer login único (SSO) para os endpoints do Dashboards de coleções sem servidor. OpenSearch 

A autenticação SAML permite que você use provedores de identidade terceirizados para entrar nos OpenSearch painéis para indexar e pesquisar dados. OpenSearch O Serverless oferece suporte a provedores que usam o padrão SAML 2.0, como IAM Identity Center, Okta, Keycloak, Active Directory Federation Services (AD FS) e Auth0. Você pode configurar o IAM Identity Center para sincronizar usuários e grupos de outras fontes de identidade OneLogin, como Okta e Microsoft Entra ID. Para ver uma lista das fontes de identidades compatíveis com o IAM Identity Center e as etapas para configurá-las, consulte os [Tutoriais de introdução](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html) no *Guia do usuário do IAM*.

**nota**  
A autenticação SAML serve apenas para acessar OpenSearch painéis por meio de um navegador da web. Usuários autenticados só podem fazer solicitações às operações da OpenSearch API por meio de **ferramentas de desenvolvimento** em OpenSearch painéis. Suas credenciais SAML *não* permitem que você faça solicitações HTTP diretas às operações da OpenSearch API.

Para configurar a autenticação SAML, primeiro é necessário configurar um provedor de identidade (IdP) SAML. Em seguida, você inclui um ou mais usuários desse IdP em uma [política de acesso a dados](serverless-data-access.md). Essa política concede certas permissões aos and/or índices de coleções. Em seguida, um usuário pode entrar nos OpenSearch painéis e realizar as ações permitidas na política de acesso a dados.

![\[SAML authentication flow with data access policy, OpenSearch interface, and JSON configuration.\]](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/images/serverless-saml-flow.png)


**Topics**
+ [Considerações](#serverless-saml-considerations)
+ [Permissões obrigatórias](#serverless-saml-permissions)
+ [Criação de provedores de SAML (console)](#serverless-saml-creating)
+ [Acessando OpenSearch painéis](#serverless-saml-dashboards)
+ [Concessão de acesso de identidades do SAML a dados de coleções](#serverless-saml-policies)
+ [Criação de provedores de SAML (AWS CLI)](#serverless-saml-creating-api)
+ [Exibição de provedores de SAML](#serverless-saml-viewing)
+ [Atualização de provedores de SAML](#serverless-saml-updating)
+ [Exclusão de provedores de SAML](#serverless-saml-deleting)

## Considerações
<a name="serverless-saml-considerations"></a>

Considere o seguinte ao configurar a autenticação SAML:
+ Não há suporte para solicitações assinadas e criptografadas.
+ Não há suporte para declarações criptografadas.
+ Não há suporte para autenticação e desconexão iniciadas pelo IdP.
+ As Políticas de Controle de Serviços (SCP) não serão aplicáveis nem avaliadas no caso de identidades que não sejam do IAM (como SAML no OpenSearch Amazon Serverless e SAML e autorização básica de usuário interno para o Amazon Service). OpenSearch 

## Permissões obrigatórias
<a name="serverless-saml-permissions"></a>

A autenticação SAML para OpenSearch Serverless usa as seguintes permissões AWS Identity and Access Management (IAM):
+ `aoss:CreateSecurityConfig`: criar um provedor de SAML.
+ `aoss:ListSecurityConfig`: listar todos os provedores de SAML na conta atual.
+ `aoss:GetSecurityConfig`: exibir as informações do provedor de SAML.
+ `aoss:UpdateSecurityConfig`: modificar uma determinada configuração do provedor de SAML, incluindo os metadados XML.
+ `aoss:DeleteSecurityConfig`: excluir um provedor de SAML.

A seguinte política de acesso baseada em identidade permite que um usuário gerencie todas as configurações do IdP:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "aoss:CreateSecurityConfig",
                "aoss:DeleteSecurityConfig",
                "aoss:GetSecurityConfig",
                "aoss:UpdateSecurityConfig",
                "aoss:ListSecurityConfigs"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

Observe que o elemento `Resource` deve ser um caractere curinga.

## Criação de provedores de SAML (console)
<a name="serverless-saml-creating"></a>

Estas etapas explicam como criar provedores de SAML. Isso permite a autenticação SAML com autenticação iniciada pelo provedor de serviços (SP) para OpenSearch painéis. Não há suporte para autenticação iniciada pelo IdP.

**Para habilitar a autenticação SAML para painéis OpenSearch**

1. Faça login no console do Amazon OpenSearch Service em [https://console.aws.amazon.com/aos/casa](https://console.aws.amazon.com/aos/home ).

1. No painel de navegação à esquerda, expanda **Sem Servidor** e escolha **Autenticação SAML**.

1. Escolha **Adicionar provedor de SAML**.

1. Forneça um nome e uma descrição para o provedor.
**nota**  
O nome que você especificar pode ser acessado publicamente e aparecerá em um menu suspenso quando os usuários entrarem OpenSearch nos Painéis. Certifique-se de que o nome seja facilmente reconhecível e não revele informações confidenciais sobre seu provedor de identidade.

1. Em **Configurar seu IdP**, copie o URL do Assertion Consumer Service (ACS).

1. Use o URL do ACS que você acabou de copiar para configurar seu provedor de identidade. A terminologia e as etapas variam de acordo com o provedor. Consulte a documentação do seu provedor.

   No Okta, por exemplo, você cria uma “aplicação Web SAML 2.0” e especifica o URL do ACS como **URL de login único**, **URL do destinatário** e **URL de destino**. Para Auth0, você o especifica em Allowed **Callback URLs**.

1. Forneça a restrição de público se seu IdP possuir um campo para isso. A restrição de público é um valor dentro da declaração do SAML que especifica a quem a declaração se destina. Com o OpenSearch Serverless, você pode fazer o seguinte. Certifique-se de substituir o código *content* no exemplo a seguir pelo seu próprio Conta da AWS ID: 

   1. Use a restrição de público padrão `:opensearch:111122223333`.

   1. (Opcional) configure uma restrição de público personalizada usando a AWS CLI. Para obter mais informações, consulte [Criação de provedores de SAML (AWS CLI)](#serverless-saml-creating-api).

   O nome do campo de restrição de público varia de acordo com o provedor. Para o Okta, é **URI do público, ID de entidade do SP**. Para o IAM Identity Center, é **Público de SAML da aplicação**.

1. Se você estiver usando o IAM Identity Center, você também precisará especificar o seguinte [mapeamento de atributos](https://docs.aws.amazon.com/singlesignon/latest/userguide/attributemappingsconcept.html): `Subject=${user:name}`, com um formato `unspecified`.

1. Aopis você configurar o provedor de identidade, ele gera um arquivo de metadados IdP. Esse arquivo XML contém informações sobre o provedor, como um certificado TLS, endpoints de acesso único e o ID de entidade do provedor de identidade.

   Copie o texto no arquivo de metadados do IdP e cole-o no campo **Fornecer metadados do seu IdP**. Alternativamente, escolha **Importar de arquivo XML** e carregue o arquivo. O arquivo de metadados deve ser semelhante ao seguinte:

   ```
   <?xml version="1.0" encoding="UTF-8"?>
   <md:EntityDescriptor entityID="entity-id" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata">
     <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
       <md:KeyDescriptor use="signing">
         <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
           <ds:X509Data>
             <ds:X509Certificate>tls-certificate</ds:X509Certificate>
           </ds:X509Data>
         </ds:KeyInfo>s
       </md:KeyDescriptor>
       <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
       <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
       <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="idp-sso-url"/>
       <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="idp-sso-url"/>
     </md:IDPSSODescriptor>
   </md:EntityDescriptor>
   ```

1. Mantenha o campo **Atributo de ID do usuário personalizado** vazio para usar o elemento `NameID` da declaração do SAML para o nome do usuário. Se sua asserção não usar este elemento padrão e, em vez disso, incluir o nome de usuário como um atributo personalizado, especifique esse atributo aqui. Os atributos diferenciam maiúsculas de minúsculas. Só há suporte para um único atributo de usuário.

   O exemplo a seguir mostra um atributo de substituição para `NameID` na declaração do SAML:

   ```
   <saml2:Attribute Name="UserId" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
     <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:type="xs:string">annie</saml2:AttributeValue>
   </saml2:Attribute>
   ```

1. (Opcional) Especifique um atributo personalizado no campo **Atributo do grupo**, como `role` ou `group`. Só há suporte para um único atributo de grupo. Não há atributo de grupo padrão. Se você não especificar uma, suas políticas de acesso a dados só poderão conter entidades principais de usuários.

   O exemplo a seguir mostra um atributo de grupo na declaração do SAML:

   ```
   <saml2:Attribute Name="department" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
       <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:type="xs:string">finance</saml2:AttributeValue>
   </saml2:Attribute>
   ```

1. Por padrão, os OpenSearch painéis desconectam os usuários após 24 horas. Você pode configurar esse valor para qualquer número entre 1 e 12 horas (15 e 720 minutos) especificando o tempo limite dos **OpenSearch painéis**. Se você tentar definir um tempo limite igual ou inferior a 15 minutos, sua sessão será redefinida para uma hora.

1. Escolha **Criar provedor de SAML**.

## Acessando OpenSearch painéis
<a name="serverless-saml-dashboards"></a>

Depois de configurar um provedor SAML, todos os usuários e grupos associados a esse provedor podem navegar até o endpoint do OpenSearch Dashboards. O URL do Dashboards tem o formato `collection-endpoint/_dashboards/` *para todas as coleções*. 

Se você tiver o SAML ativado, selecionar o link no Console de gerenciamento da AWS direcionará você para a página de seleção do IdP, na qual você poderá fazer login usando suas credenciais do SAML. Primeiro, use o menu suspenso para selecionar um provedor de identidade:

![\[OpenSearch login page with dropdown menu for selecting SAML Identity Provider options.\]](http://docs.aws.amazon.com/pt_br/opensearch-service/latest/developerguide/images/idpList.png)


Em seguida, faça login usando suas credenciais do IdP. 

Se você não tiver o SAML ativado, selecionar o link no Console de gerenciamento da AWS direcionará você a fazer login como usuário ou função do IAM, sem opção para SAML.

## Concessão de acesso de identidades do SAML a dados de coleções
<a name="serverless-saml-policies"></a>

Depois de criar um provedor de SAML, você ainda precisa conceder aos usuários e grupos subjacentes acesso aos dados em suas coleções. Você concede acesso por meio de [políticas de acesso a dados](serverless-data-access.md). Até que você forneça acesso aos usuários, eles não poderão ler, gravar ou excluir nenhum dado de suas coleções.

Para conceder acesso, crie uma política de acesso a dados e especifique seu and/or grupo de usuários do SAML IDs na `Principal` declaração:

```
[
   {
      "Rules":[
       ...  
      ],
      "Principal":[
         "saml/987654321098/myprovider/user/Shaheen",
         "saml/987654321098/myprovider/group/finance"
      ]
   }
]
```

É possível conceder acesso a coleções, índices ou ambos. Se você quiser que usuários diferentes tenham permissões diferentes, crie várias regras. Para obter uma lista das permissões disponíveis, consulte [Permissões de políticas com suporte](serverless-data-access.md#serverless-data-supported-permissions). Para obter informações sobre como formatar uma política de acesso, consulte [Sintaxe das políticas](serverless-data-access.md).

## Criação de provedores de SAML (AWS CLI)
<a name="serverless-saml-creating-api"></a>

Para criar um provedor SAML usando a API OpenSearch Serverless, envie uma solicitação: [CreateSecurityConfig](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateSecurityConfig.html)

```
aws opensearchserverless create-security-config \
    --name myprovider \
    --type saml \
    --saml-options file://saml-auth0.json
```

Especifique `saml-options`, incluindo o XML de metadados, como um mapa de chave-valor em um arquivo .json. O XML de metadados deve ser codificado como uma [string de escape JSON](https://www.freeformatter.com/json-escape.html).

```
{
   "sessionTimeout": 70,
   "groupAttribute": "department",
   "userAttribute": "userid",
   "openSearchServerlessEntityId": "aws:opensearch:111122223333:app1",
   "metadata": "EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" ... ... ... IDPSSODescriptor\r\n\/EntityDescriptor"
}
```

**nota**  
(Opcional) configure uma restrição de público personalizada usando a AWS CLI. Para obter mais informações, consulte [Criação de provedores de SAML (AWS CLI)](#serverless-saml-creating-api).

## Exibição de provedores de SAML
<a name="serverless-saml-viewing"></a>

A [ListSecurityConfigs](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListSecurityConfigs.html)solicitação a seguir lista todos os provedores de SAML em sua conta:

```
aws opensearchserverless list-security-configs --type saml
```

A solicitação retorna informações sobre todos os provedores de SAML existentes, incluindo os metadados completos do IdP que seu provedor de identidade gera:

```
{
   "securityConfigDetails": [ 
      { 
         "configVersion": "MTY2NDA1MjY4NDQ5M18x",
         "createdDate": 1664054180858,
         "description": "Example SAML provider",
         "id": "saml/111122223333/myprovider",
         "lastModifiedDate": 1664054180858,
         "samlOptions": { 
            "groupAttribute": "department",
            "metadata": "EntityDescriptorxmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" ...... ...IDPSSODescriptor\r\n/EntityDescriptor",
            "sessionTimeout": 120,
            "openSearchServerlessEntityId": "aws:opensearch:111122223333:app1",
            "userAttribute": "userid"
         }
      }
   ]
}
```

Para exibir detalhes sobre um provedor específico, inclusive a `configVersion` para futuras atualizações, envie uma solicitação `GetSecurityConfig`.

## Atualização de provedores de SAML
<a name="serverless-saml-updating"></a>

**Para atualizar um provedor SAML usando o console OpenSearch Serverless, escolha a **autenticação SAML**, selecione seu provedor de identidade e escolha Editar.** É possível modificar todos os campos, incluindo os metadados e os atributos personalizados.

Para atualizar um provedor por meio da API OpenSearch Serverless, envie uma [UpdateSecurityConfig](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_UpdateSecurityConfig.html)solicitação e inclua o identificador da política a ser atualizada. Também é necessário incluir uma versão da configuração, que pode ser recuperada usando os comandos `ListSecurityConfigs` ou `GetSecurityConfig`. A inclusão da versão mais recente garante que você não anule inadvertidamente uma alteração feita por outra pessoa.

A solicitação a seguir atualiza as opções do SAML para um provedor:

```
aws opensearchserverless update-security-config \
    --id saml/123456789012/myprovider \
    --type saml \
    --saml-options file://saml-auth0.json \
    --config-version MTY2NDA1MjY4NDQ5M18x
```

Especifique suas opções de configuração do SAML como um mapa de chave-valor em um arquivo .json.

**Importante**  
**As atualizações nas opções do SAML *não* são incrementais**. Se você não especificar um valor para um parâmetro no objeto `SAMLOptions` ao fazer uma atualização, os valores existentes serão substituídos por valores vazios. Por exemplo, se a configuração atual contiver um valor para `userAttribute`, e você fizer uma atualização em seguida e não incluir esse valor, o valor será removido da configuração. Certifique-se de saber quais são os valores existentes antes de fazer uma atualização chamando a operação `GetSecurityConfig`.

## Exclusão de provedores de SAML
<a name="serverless-saml-deleting"></a>

Quando você exclui um provedor de SAML, quaisquer referências a usuários e grupos associados em suas políticas de acesso a dados não funcionam mais. Para evitar confusão, sugerimos que você remova todas as referências ao endpoint em suas políticas de acesso antes de excluir o endpoint.

**Para excluir um provedor SAML usando o console OpenSearch sem servidor, escolha **Autenticação**, selecione o provedor e escolha Excluir.**

Para excluir um provedor por meio da API OpenSearch Serverless, envie uma [DeleteSecurityConfig](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_DeleteSecurityConfig.html)solicitação:

```
aws opensearchserverless delete-security-config --id saml/123456789012/myprovider
```