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 o Amazon OpenSearch Sem Servidor
Com a autenticação SAML para o Amazon OpenSearch Sem Servidor, é possível usar seu provedor de identidade existente para autenticação única (SSO) para os endpoints do OpenSearch Dashboards de coleções com tecnologia sem servidor.
A autenticação SAML permite que você use provedores de identidade terceiros para fazer login no OpenSearch Dashboards para indexar e pesquisar dados. O OpenSearch sem Servidor oferece suporte a provedores que usem o padrão SAML 2.0, como centro de identidade do IAM, Okta, Keycloak, Active Directory Federation Services (AD FS) e Auth0. Você pode configurar o centro de identidade do IAM para sincronizar usuários e grupos de outras fontes de identidade, como Okta, OneLogin e Microsoft Entra ID. Para obter uma lista das fontes de identidade com suporte do centro de identidade do IAM e as etapas para configurá-las, consulte os Tutoriais de introdução no Guia do usuário do centro de identidade do IAM.
nota
A autenticação SAML permite apenas acessar o OpenSearch Dashboards por meio de um navegador da Web. Usuários autenticados só podem fazer solicitações para as operações da API do OpenSearch por meio de Ferramentas de desenvolvimento no OpenSearch Dashboards. Suas credenciais SAML não permitem que você faça solicitações de HTTP diretas para as APIs do OpenSearch.
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. Essa política concede certas permissões para coleções e/ou índices. Em seguida, um usuário poderá entrar no OpenSearch Dashboards e executar as ações permitidas na política de acesso a dados.
Tópicos
- Considerações
- Permissões obrigatórias
- Criação de provedores de SAML (console)
- Acesso ao OpenSearch Dashboards
- Concessão de acesso de identidades do SAML a dados de coleções
- Criação de provedores de SAML (AWS CLI)
- Exibição de provedores de SAML
- Atualização de provedores de SAML
- Exclusão de provedores de SAML
Considerações
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 Amazon OpenSearch sem Servidor e SAML e autorização básica interna do usuário para o Amazon OpenSearch Service).
Permissões obrigatórias
A autenticação SAML para o OpenSearch Sem Servidor usa as seguintes permissões do 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:
{ "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)
Estas etapas explicam como criar provedores de SAML. Isso habilita a autenticação SAML com autenticação iniciada pelo provedor de serviços (SP) para o OpenSearch Dashboards. Não há suporte para autenticação iniciada pelo IdP.
Para habilitar a autenticação SAML para o OpenSearch Dashboards
-
Faça login no console do Amazon OpenSearch Service em https://console.aws.amazon.com/aos/home
. -
No painel de navegação à esquerda, expanda Sem Servidor e escolha Autenticação SAML.
-
Escolha Adicionar provedor de SAML.
-
Forneça um nome e uma descrição para o provedor.
nota
O nome que você especificar será acessível ao público e aparecerá em um menu suspenso quando os usuários fizerem login no OpenSearch Dashboards. Certifique-se de que o nome seja facilmente reconhecível e não revele informações confidenciais sobre seu provedor de identidade.
-
Em Configurar seu IdP, copie o URL do Assertion Consumer Service (ACS).
-
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, especifique em URLs de retorno de chamada permitidos.
-
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. Para OpenSearch Sem Servidor, especifique
aws:opensearch:<aws account id>
. Por exemplo,aws:opensearch:
.123456789012
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.
-
Se você estiver usando o IAM Identity Center, você também precisará especificar o seguinte mapeamento de atributos:
Subject=${user:name}
, com um formatounspecified
. -
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> -
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> -
(Opcional) Especifique um atributo personalizado no campo Atributo do grupo, como
role
ougroup
. 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> -
Por padrão, o OpenSearch Dashboards desconecta os usuários após 24 horas. É possível configurar esse valor para qualquer número entre 1 e 12 horas (15 e 720 minutos), especificando o timeout dos Painéis do OpenSearch . Se você tentar definir um tempo limite igual ou inferior a 15 minutos, sua sessão será redefinida para uma hora.
-
Escolha Criar provedor de SAML.
Acesso ao OpenSearch Dashboards
Depois de configurar um provedor de SAML, todos os usuários e grupos associados a esse provedor poderão navegar até o endpoint dos Painéis do OpenSearch. O URL do Dashboards tem o formato
para todas as coleções. collection-endpoint
/_dashboards/
Se você tiver o SAML ativado, selecionar o link no AWS Management Console 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:
Em seguida, faça login usando suas credenciais do IdP.
Se você não tiver o SAML ativado, selecionar o link no AWS Management Console direcionará você a fazer login como usuário ou perfil do IAM, sem opção para SAML.
Concessão de acesso de identidades do SAML a dados de coleções
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. 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 seus IDs de usuário e/ou grupo do SAML na declaração Principal
:
[ { "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. Para obter informações sobre como formatar uma política de acesso, consulte Sintaxe das políticas.
Criação de provedores de SAML (AWS CLI)
Para criar um provedor de SAML usando a API do OpenSearch Sem Servidor, envie uma solicitação CreateSecurityConfig:
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
{ "sessionTimeout":
70
, "groupAttribute": "department
", "userAttribute": "userid
", "metadata": "<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" ... ... ... IDPSSODescriptor>\r\n<\/EntityDescriptor>
" }
Exibição de provedores de SAML
A solicitação ListSecurityConfigs 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/123456789012/myprovider", "lastModifiedDate": 1664054180858, "samlOptions": { "groupAttribute": "department", "metadata": "<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" ... ... ... IDPSSODescriptor>\r\n<\/EntityDescriptor>", "sessionTimeout": 120, "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
Para atualizar um provedor de SAML usando o console do OpenSearch de tecnologia sem servidor, escolha 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 do OpenSearch Sem Servidor, envie uma solicitação UpdateSecurityConfig 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-versionMTY2NDA1MjY4NDQ5M18x
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
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 de SAML usando o console do OpenSearch de tecnologia sem servidor, escolha Autenticação, selecione o provedor e escolha Excluir.
Para excluir um provedor por meio da API do OpenSearch Sem Servidor, envie uma solicitação DeleteSecurityConfig:
aws opensearchserverless delete-security-config --id saml/
123456789012
/myprovider