

O AWS SDK para .NET V3 entrou no modo de manutenção.

Recomendamos que você migre para a [AWS SDK para .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Para obter detalhes e informações adicionais sobre como migrar, consulte nosso [anúncio do modo de manutenção](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

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 única com o AWS SDK para .NET
<a name="sso"></a>

O Centro de Identidade do AWS IAM é um serviço de logon único (SSO) na nuvem que facilita o gerenciamento centralizado do acesso de SSO a todas as suas Contas da AWS e a aplicativos de nuvem. Para obter detalhes completos, consulte o [Guia do usuário do Centro de Identidade do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/).

Se você não estiver familiarizado com a forma como um SDK interage com o Centro de Identidade do IAM, consulte as informações a seguir.

## Padrão de interação de alto nível
<a name="w2aac13b7b7b1"></a>

Em um alto nível, os SDKs interagem com o Centro de Identidade do IAM de maneira semelhante ao seguinte padrão:

1. O Centro de Identidade do IAM é configurado, normalmente por meio do [console do Centro de Identidade do IAM](https://console.aws.amazon.com/singlesignon) e um usuário de SSO é convidado a participar.

1. O arquivo `config` da AWS compartilhado no computador do usuário é atualizado com informações de SSO.

1. O usuário faz login por meio do Centro de Identidade do IAM e recebe credenciais de curto prazo para as permissões do AWS Identity and Access Management (IAM) que foram configuradas para ele. Esse login pode ser iniciado por meio de uma ferramenta que não é do SDK, como a AWS CLI, ou de forma programática por meio de um aplicativo .NET.

1. O usuário continua fazendo seu trabalho. Quando outros aplicativos que usam SSO são executados, não é necessário logar novamente para abrir os aplicativos.

O restante deste tópico fornece informações de referência para configuração e uso de Centro de Identidade do AWS IAM. Ele fornece informações complementares e mais avançadas do que a configuração básica do SSO em [Configure a autenticação do SDK](creds-idc.md). Se você é iniciante no SSO na AWS, talvez queira ver esse tópico primeiro para obter informações fundamentais e, em seguida, os seguintes tutoriais para ver o SSO em ação:
+ [Tutorial: somente aplicativo .NET](sso-tutorial-app-only.md)
+ [Tutorial: AWS CLI e aplicativo.NET](sso-tutorial-cli-and-app.md)

Este tópico contém as seguintes seções:
+ [Pré-requisitos](#sso-prereq)
+ [Como configurar um perfil de SSO](#sso-profiles)
+ [Como gerar e usar de tokens de SSO](#sso-generate-use-token-overview)
+ [Recursos adicionais](#sso-resources)
+ [Tutoriais](#sso-tutorial-links)

## Pré-requisitos
<a name="sso-prereq"></a>

Antes de usar o Centro de Identidade do IAM, você deve realizar determinadas tarefas, como escolher uma fonte de identidade e configurar as Contas da AWS e aplicativos relevantes. Para obter informações adicionais, consulte:
+ Para obter informações gerais sobre essas tarefas, consulte [Conceitos básicos](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) no *Guia do usuário do Centro de Identidade do IAM*
+ Para obter exemplos de tarefas específicas, consulte a lista de tutoriais no final deste tópico. Contudo, certifique-se de revisar as informações neste tópico antes de experimentar os tutoriais.

## Como configurar um perfil de SSO
<a name="sso-profiles"></a>

Depois que o Centro de Identidade do IAM for [configurado](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) na Conta da AWS relevante, um perfil nomeado para SSO deve ser adicionado ao arquivo `config` da AWS compartilhado do usuário. Esse perfil é usado para se conectar ao *[portal de acesso da AWS](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html)*, que retorna credenciais de curto prazo para as permissões do IAM que foram configuradas para o usuário.

O arquivo `config` compartilhado geralmente é nomeado `%USERPROFILE%\.aws\config` no Windows e `~/.aws/config` no Linux e no macOS. Você pode usar seu editor de texto preferido para adicionar um novo perfil para SSO. Como alternativa, você pode usar o comando `aws configure sso`. Para obter mais informações sobre esse comando, consulte [Como configurar a CLI da AWS para usar o Centro de identidade do IAM](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) no *Guia do usuário do AWS Command Line Interface*.

O URL é semelhante ao seguinte:

```
[profile my-sso-profile]
sso_start_url = https://my-sso-portal.awsapps.com/start
sso_region = us-west-2
sso_account_id = 123456789012
sso_role_name = SSOReadOnlyRole
```

As configurações do novo perfil estão definidas abaixo. As duas primeiras configurações definem o portal de acesso da AWS. As outras duas configurações são um par que, juntas, definem as permissões que foram configuradas para um usuário. Todas as quatro configurações são obrigatórias.

**`sso_start_url`**  
O URL que aponta para o [portal de acesso da AWS](https://docs.aws.amazon.com/singlesignon/latest/userguide/using-the-portal.html) da organização. Para encontrar esse valor, abra o [console do Centro de identidade do IAM](https://console.aws.amazon.com/singlesignon), selecione **Configurações** e encontre **URL do portal**.

**`sso_region`**  
A Região da AWS que contém o host do portal de acesso da . Essa é a região que foi selecionada quando você ativou o Centro de identidade do IAM. Ela pode ser diferente das regiões que você usa para outras tarefas.  
Para obter uma lista completa das Regiões da AWS e seus códigos, consulte [Endpoints regionais](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) na *Referência geral da Amazon Web Services*.

**`sso_account_id`**  
O ID de uma Conta da AWS que foi adicionada por meio do serviço AWS Organizations. Para ver a lista de contas disponíveis, acesse o [console do IAM Identity Center](https://console.aws.amazon.com/singlesignon) e abra a página de **Contas da AWS**. O ID da conta que você escolher para essa configuração corresponderá ao valor que você planeja atribuir à configuração do `sso_role_name`, que é mostrado a seguir.

**`sso_role_name`**  
O nome de um conjunto de permissões do Centro de identidade do IAM. Esse conjunto de permissões define as permissões que um usuário recebe por meio do Centro de identidade do IAM.  
O procedimento a seguir é uma forma de encontrar o valor dessa configuração.  

1. Acesse o [console do Centro de Identidade do IAM](https://console.aws.amazon.com/singlesignon) e habilite a página das **Contas da AWS**.

1. Escolha uma conta para exibir os detalhes. A conta que você escolher será aquela que contém o usuário ou grupo de SSO ao qual você deseja conceder permissões de SSO.

1. Veja a lista de usuários e grupos atribuídos à conta e encontre o usuário ou grupo de interesse. O conjunto de permissões que você especifica na configuração do `sso_role_name` é um dos conjuntos associados a esse usuário ou grupo.
Ao dar um valor a essa configuração, use o nome do conjunto de permissões, não o nome do recurso da Amazon (ARN).  
Os conjuntos de permissões têm políticas do IAM e políticas de permissões personalizadas anexadas a eles. Para obter mais informações, consulte [Conjuntos de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsets.html) no *Guia do usuário do Centro de Identidade do IAM*.

## Como gerar e usar de tokens de SSO
<a name="sso-generate-use-token-overview"></a>

Para usar o SSO, o usuário deve primeiro gerar um token temporário e depois usar esse token para acessar os aplicativos e recursos da AWS apropriados. É possível usar os métodos a seguir para gerar e usar esses tokens temporários:
+ Crie aplicativos .NET que gerem primeiro um token, se necessário, e depois use o token.
+ Gere um token com a AWS CLI e, em seguida, use o token em aplicativos .NET.

Esses métodos estão descritos nas seções a seguir e demonstrados nos [tutoriais](#sso-tutorial-links).

**Importante**  
Seu aplicativo deve fazer referência aos seguintes pacotes NuGet para que a resolução de SSO possa funcionar:  
`AWSSDK.SSO`
`AWSSDK.SSOOIDC`
A falha em referenciar esses pacotes resultará em uma exceção de *tempo de execução*.

### Somente aplicativo .NET
<a name="sso-generate-use-token-app-only-summary"></a>

Esta seção mostra como criar um aplicativo .NET que gera um token SSO temporário, se necessário, e depois usa esse token. Para obter um tutorial completo desse processo, consulte [Tutorial para SSO usando somente aplicativos .NET](sso-tutorial-app-only.md).

#### Gere e use um token SSO de forma programática
<a name="sso-generate-token-prog"></a>

Além de usar a AWS CLI, você também pode gerar um token SSO de forma programática.

Para fazer isso, seu aplicativo cria um objeto [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html) para o perfil SSO, que carrega credenciais temporárias, se houver alguma disponível. Em seguida, seu aplicativo deve converter o objeto `AWSCredentials` em um objeto [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TSSOAWSCredentials.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TSSOAWSCredentials.html) e definir algumas propriedades de [Opções](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TSSOAWSCredentialsOptions.html), incluindo um método de retorno de chamada usado para solicitar ao usuário informações de login, se necessário.

Esse método é mostrado no seguinte trecho de código.

**Importante**  
Seu aplicativo deve fazer referência aos seguintes pacotes NuGet para que a resolução de SSO possa funcionar:  
`AWSSDK.SSO`
`AWSSDK.SSOOIDC`
A falha em referenciar esses pacotes resultará em uma exceção de *tempo de execução*.

```
static AWSCredentials LoadSsoCredentials()
{
    var chain = new CredentialProfileStoreChain();
    if (!chain.TryGetAWSCredentials("my-sso-profile", out var credentials))
        throw new Exception("Failed to find the my-sso-profile profile");

    var ssoCredentials = credentials as SSOAWSCredentials;

    ssoCredentials.Options.ClientName = "Example-SSO-App";
    ssoCredentials.Options.SsoVerificationCallback = args =>
    {
        // Launch a browser window that prompts the SSO user to complete an SSO sign-in.
        // This method is only invoked if the session doesn't already have a valid SSO token.
        // NOTE: Process.Start might not support launching a browser on macOS or Linux. If not,
        //       use an appropriate mechanism on those systems instead.
        Process.Start(new ProcessStartInfo
        {
            FileName = args.VerificationUriComplete,
            UseShellExecute = true
        });
    };

    return ssoCredentials;
}
```

Se um token de SSO apropriado não estiver disponível, a janela padrão do navegador será aberta e a página de login apropriada será aberta. Por exemplo, se você estiver usando o Centro de identidade do IAM como **fonte de identidade**, o usuário verá uma página de login semelhante à seguinte:

![\[Página de login do Centro de Identidade do AWS IAM\]](http://docs.aws.amazon.com/pt_br/sdk-for-net/v3/developer-guide/images/SSO-login.png)


**nota**  
A string que você fornece para `SSOAWSCredentials.Options.ClientName` não pode ter espaços. Se a string tiver espaços, você receberá uma exceção de *runtime*.

[Tutorial para SSO usando somente aplicativos .NET](sso-tutorial-app-only.md)

### AWS CLI e aplicativo .NET
<a name="sso-generate-use-token-cli-and-app-summary"></a>

Esta seção mostra como gerar um token SSO temporário usando a AWS CLI e como usar esse token em um aplicativo. Para obter um tutorial completo desse processo, consulte [Tutorial para SSO usando os aplicativos AWS CLI e.NET](sso-tutorial-cli-and-app.md).

#### Gere um token de SSO usando o AWS CLI
<a name="sso-generate-token-cli"></a>

Além de gerar um token de SSO temporário de forma programática, você usa a AWS CLI para gerar o token. O procedimento a seguir mostra como obter essas informações.

Depois que o usuário cria um perfil habilitado para SSO, conforme mostrado na [seção anterior](#sso-profiles), ele executa o comando `aws sso login` a partir da AWS CLI. Ele deve ter certeza de incluir o parâmetro `--profile` com o nome do perfil habilitado para SSO. Isso é mostrado no exemplo a seguir:

```
aws sso login --profile my-sso-profile
```

Se o usuário quiser gerar um novo token temporário após a expiração do atual, ele poderá executar o mesmo comando novamente.

#### Use o token SSO gerado em um aplicativo .NET
<a name="sso-use-profile-dotnet"></a>

As informações a seguir mostram como usar um token temporário que já foi gerado.

**Importante**  
Seu aplicativo deve fazer referência aos seguintes pacotes NuGet para que a resolução de SSO possa funcionar:  
`AWSSDK.SSO`
`AWSSDK.SSOOIDC`
A falha em referenciar esses pacotes resultará em uma exceção de *tempo de execução*.

Seu aplicativo cria um objeto [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TAWSCredentials.html) para o perfil SSO, que carrega as credenciais temporárias geradas anteriormente pela AWS CLI. Isso é semelhante aos métodos mostrados em [Acessar credenciais e perfis em um aplicativo](creds-locate.md) e tem o seguinte formato:

```
static AWSCredentials LoadSsoCredentials()
{
    var chain = new CredentialProfileStoreChain();
    if (!chain.TryGetAWSCredentials("my-sso-profile", out var credentials))
        throw new Exception("Failed to find the my-sso-profile profile");

    return credentials;
}
```

O objeto `AWSCredentials` é então passado para o construtor de um cliente de serviço. Por exemplo:

```
var S3Client_SSO = new AmazonS3Client(LoadSsoCredentials());
```

**nota**  
Não é necessário usar `AWSCredentials` para carregar credenciais temporárias se seu aplicativo tiver sido criado para usar o perfil `[default]` para SSO. Nesse caso, o aplicativo pode criar clientes AWS de serviço sem parâmetros, semelhantes a "`var client = new AmazonS3Client();`”.

[Tutorial para SSO usando os aplicativos AWS CLI e.NET](sso-tutorial-cli-and-app.md)

## Recursos adicionais
<a name="sso-resources"></a>

Para obter ajuda adicional, consulte os seguintes recursos.
+ [O que é o Centro de identidade do IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)
+ [Configurar a AWS CLI para usar o Centro de identidade do IAM](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html#sso-configure-profile)
+ [Usar as credenciais do Centro de identidade do IAM no AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/sso-credentials.html)

## Tutoriais
<a name="sso-tutorial-links"></a>

**Topics**
+ [Pré-requisitos](#sso-prereq)
+ [Como configurar um perfil de SSO](#sso-profiles)
+ [Como gerar e usar de tokens de SSO](#sso-generate-use-token-overview)
+ [Recursos adicionais](#sso-resources)
+ [Tutoriais](#sso-tutorial-links)
+ [Tutorial: somente aplicativo .NET](sso-tutorial-app-only.md)
+ [Tutorial: AWS CLI e aplicativo.NET](sso-tutorial-cli-and-app.md)