Autenticar e autorizar dispositivos clientes - AWS IoT Greengrass

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

Autenticar e autorizar dispositivos clientes

Use o serviço IPC de autenticação de dispositivo cliente para desenvolver um componente de intermediário local personalizado no qual dispositivos IoT locais, como dispositivos cliente, possam se conectar.

Para usar essas operações de IPC, inclua a versão 2.2.0 ou posterior do componente de autenticação do dispositivo cliente como uma dependência em seu componente personalizado. Em seguida, você pode usar as operações de IPC em seus componentes personalizados para fazer o seguinte:

  • Verifique a identidade dos dispositivos clientes que se conectam ao dispositivo principal.

  • Crie uma sessão para que um dispositivo cliente se conecte ao dispositivo principal.

  • Verifique se um dispositivo cliente tem permissão para realizar uma ação.

  • Receba uma notificação quando o certificado do servidor do dispositivo principal for alterado.

Versões mínimas do SDK

A tabela a seguir lista as versões mínimas do AWS IoT Device SDK que você deve usar para interagir com o serviço IPC de autenticação do dispositivo cliente.

Autorização

Para usar o serviço IPC de autenticação do dispositivo cliente em um componente personalizado, você deve definir políticas de autorização que permitam que seu componente execute essas operações. Para obter informações sobre a definição de políticas de autorização, consulteAutorize os componentes a realizar operações IPC.

As políticas de autorização para autenticação e autorização do dispositivo cliente têm as seguintes propriedades.

Identificador de serviço IPC: aws.greengrass.clientdevices.Auth

Operation Descrição Recursos

aws.greengrass#VerifyClientDeviceIdentity

Permite que um componente verifique a identidade de um dispositivo cliente.

*

aws.greengrass#GetClientDeviceAuthToken

Permite que um componente valide as credenciais de um dispositivo cliente e crie uma sessão para esse dispositivo cliente.

*

aws.greengrass#AuthorizeClientDeviceAction

Permite que um componente verifique se um dispositivo cliente tem permissão para realizar uma ação.

*

aws.greengrass#SubscribeToCertificateUpdates

Permite que um componente receba notificações quando o certificado do servidor do dispositivo principal é alterado.

*

*

Permite que um componente execute todas as operações do serviço IPC de autenticação do dispositivo cliente.

*

Exemplos de políticas de autorização

Você pode consultar o exemplo de política de autorização a seguir para ajudá-lo a configurar políticas de autorização para seus componentes.

exemplo Exemplo de política de autorização

O exemplo de política de autorização a seguir permite que um componente execute todas as operações IPC de autenticação do dispositivo cliente.

{ "accessControl": { "aws.greengrass.clientdevices.Auth": { "com.example.MyLocalBrokerComponent:clientdevices:1": { "policyDescription": "Allows access to authenticate and authorize client devices.", "operations": [ "aws.greengrass#VerifyClientDeviceIdentity", "aws.greengrass#GetClientDeviceAuthToken", "aws.greengrass#AuthorizeClientDeviceAction", "aws.greengrass#SubscribeToCertificateUpdates" ], "resources": [ "*" ] } } } }

VerifyClientDeviceIdentity

Verifique a identidade de um dispositivo cliente. Essa operação verifica se o dispositivo cliente AWS IoT é válido.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

credential

As credenciais do dispositivo cliente. Esse objeto,ClientDeviceCredential, contém as seguintes informações:

clientDeviceCertificate(Python:) client_device_certificate

O certificado do dispositivo X.509 do dispositivo cliente.

Resposta

A resposta dessa operação tem as seguintes informações:

isValidClientDevice(Python:) is_valid_client_device

Se a identidade do dispositivo cliente é válida.

GetClientDeviceAuthToken

Valida as credenciais de um dispositivo cliente e cria uma sessão para o dispositivo cliente. Essa operação retorna um token de sessão que você pode usar em solicitações subsequentes para autorizar ações do dispositivo cliente.

Para conectar com êxito um dispositivo cliente, o componente de autenticação do dispositivo cliente deve conceder a mqtt:connect permissão para o ID do cliente que o dispositivo cliente usa.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

credential

As credenciais do dispositivo cliente. Esse objeto,CredentialDocument, contém as seguintes informações:

mqttCredential(Python:) mqtt_credential

As credenciais MQTT do dispositivo cliente. Especifique o ID do cliente e o certificado que o dispositivo cliente usa para se conectar. Esse objeto,MQTTCredential, contém as seguintes informações:

clientId(Python:) client_id

O ID do cliente a ser usado para se conectar.

certificatePem(Python:) certificate_pem

O certificado do dispositivo X.509 a ser usado para se conectar.

username
nota

Essa propriedade não é usada atualmente.

password
nota

Essa propriedade não é usada atualmente.

Resposta

A resposta dessa operação tem as seguintes informações:

clientDeviceAuthToken(Python:) client_device_auth_token

O token da sessão para o dispositivo cliente. Você pode usar esse token de sessão em solicitações subsequentes para autorizar as ações desse dispositivo cliente.

AuthorizeClientDeviceAction

Verifique se um dispositivo cliente tem permissão para realizar uma ação em um recurso. As políticas de autorização do dispositivo cliente especificam as permissões que os dispositivos cliente podem executar enquanto conectados a um dispositivo principal. Você define as políticas de autorização do dispositivo cliente ao configurar o componente de autenticação do dispositivo cliente.

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

clientDeviceAuthToken(Python:) client_device_auth_token

O token da sessão para o dispositivo cliente.

operation

A operação a ser autorizada.

resource

O recurso em que o dispositivo cliente executa a operação.

Resposta

A resposta dessa operação tem as seguintes informações:

isAuthorized(Python:) is_authorized

Se o dispositivo cliente está autorizado a realizar a operação no recurso.

SubscribeToCertificateUpdates

Inscreva-se para receber o novo certificado de servidor do dispositivo principal sempre que ele for rotacionado. Quando o certificado do servidor muda, os corretores devem recarregar usando o novo certificado do servidor.

Por padrão, o componente de autenticação do dispositivo cliente alterna os certificados do servidor a cada 7 dias. Você pode configurar o intervalo de rotação entre 2 e 10 dias.

Essa operação é uma operação de assinatura em que você assina um fluxo de mensagens de eventos. Para usar essa operação, defina um manipulador de resposta de fluxo com funções que manipulam mensagens de eventos, erros e encerramento de fluxo. Para ter mais informações, consulte Inscreva-se para receber transmissões de IPC eventos.

Tipo de mensagem do evento: CertificateUpdateEvent

Solicitação

A solicitação dessa operação tem os seguintes parâmetros:

certificateOptions(Python:) certificate_options

Os tipos de atualizações de certificado a serem assinadas. Esse objeto,CertificateOptions, contém as seguintes informações:

certificateType(Python:) certificate_type

O tipo de atualizações de certificado a serem assinadas. Escolha a seguinte opção:

  • SERVER

Resposta

A resposta dessa operação tem as seguintes informações:

messages

O fluxo de mensagens. Esse objeto,CertificateUpdateEvent, contém as seguintes informações:

certificateUpdate(Python:) certificate_update

As informações sobre o novo certificado. Esse objeto,CertificateUpdate, contém as seguintes informações:

certificate

O certificado.

privateKey(Python:) private_key

A chave privada do certificado.

publicKey(Python:) public_key

A chave pública do certificado.

caCertificates(Python:) ca_certificates

A lista de certificados de autoridade de certificação (CA) na cadeia de certificados CA do certificado.