Autenticando-se nos serviços do Watson
serviços IBM Watson® no IBM Cloud® usam IBM Cloud® Identity and Access Management (IAM) para autenticação. Serviços instalados no IBM Cloud Pak® for Data suportam mais métodos. Com as políticas de acesso do IAM, é possível designar acesso a mais de um recurso por meio de uma única chave. Além disso, um usuário, um ID de serviço e a instância de serviço podem manter múltiplas chaves de API.
Passando credenciais
Para autenticar-se em um serviço por meio de sua API, transmita suas credenciais para a API. A forma como você se autentica pode variar dependendo das necessidades de segurança e se o serviço está no IBM Cloud® ou instalado no IBM Cloud Pak® for Data.
Autenticando para IBM Cloud
IBM Cloud
Você usa o IBM Cloud® Identity and Access Management (IAM) para fazer solicitações autenticadas para serviços públicos do IBM Watson®. É possível transmitir um token de acesso em um cabeçalho de autorização ou uma chave de API.
-
Autenticar com um token do IAM.
Os tokens do IAM são credenciais de segurança temporárias válidas por até 60 minutos. Quando um token expira, você gera um novo. Os tokens podem ser úteis para o acesso provisório aos recursos. Para obter mais informações, consulte Gerando um token do IAM do IBM Cloud usando uma chave de API.
O comando
curl
a seguir gera um token de acesso IAM. Substitua{apikey}
pelo valor de sua chave de API.curl -X POST \ -header "Content-Type: application/x-www-form-urlencoded" \ -data "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey={apikey}" \ "https://iam.cloud.ibm.com/identity/token"
A resposta inclui uma propriedade
access_token
. Para autenticar uma solicitação para o serviço, substitua{access_token}
pelo token da resposta. Substitua{url}
pelo valor da URL para sua instância de serviço, que você pode encontrar clicando em Mostrar Credenciais na caixa Credenciais da página Gerenciar para sua instância de serviço.curl -header "Authorization: Bearer {access_token}" \ "{url}/v1/{method}"
-
Autenticar com uma chave de API do IBM Cloud, uma chave de API do ID de serviço ou uma chave de API específica do serviço. Substitua
{url}
pelo valor da URL para sua instância de serviço, que você pode encontrar clicando em Mostrar Credenciais na caixa Credenciais da página Gerenciar para sua instância de serviço.As chaves de API são simples de usar e não expiram automaticamente. Qualquer pessoa com uma chave válida pode acessar o recurso. É possível criar chaves de API separadas para usuários diferentes, para aplicativos diferentes ou para suportar cenários de rotação de chave. É possível revogar as chaves de API do console sem interferir em outras chaves de API ou no usuário.
O exemplo a seguir
curl
se autenca com a chave APIf5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRI
.curl -u "apikey:f5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRI" \ "{url}/v1/{method}"
Para teste e desenvolvimento, é possível transmitir uma chave de API diretamente. No entanto, para uso de produção, a menos que você use os SDKs do Watson, use um token do IAM. Ao transmitir uma chave de API, o serviço consulta os detalhes da chave de API, portanto, isso pode afetar o desempenho. Para obter mais informações, consulte Chamando as APIs de serviço do IBM Cloud.
Os SDKs do Watson suportam ambos os métodos. Para obter mais informações, consulte a seção Autenticação da referência da API para o seu serviço e SDK.
Alguns planos de serviço suportam IBM® Key Protect for IBM Cloud® para controlar o acesso aos dados. Para obter mais informações, consulte Protegendo informações confidenciais em seu serviço do Watson.
Autenticando para IBM Cloud Pak for Data
IBM Cloud Pak for Data
Você se autentica no serviço passando um token de acesso com cada solicitação. Você passa um token de acesso em um cabeçalho Authorization
para autenticar. Vários métodos existem para gerar o token, incluindo ao usar uma chave
de API ou por nome do usuário. Para obter mais informações, consulte Gerando um token de autorização ou chave API.
Para obter mais informações sobre métodos de autenticação que são suportados pelos SDKs Watson para serviços instalados em IBM Cloud Pak for Data, veja a seção Autenticação da referência da API para o seu serviço e SDK.
Sobre as chaves de API
Três tipos de chaves de API são suportados pelos serviços do Watson:
-
Chaves API específicas do serviço
As chaves específicas do serviço são geradas com o serviço. Esse tipo de chave de API tem acesso apenas a uma instância de serviço específica. Para visualizar teclas específicas do serviço, clique no nome de um serviço Watson da sua lista de recursos.
-
Chaves API IBM Cloud
As chaves de API do IBM Cloud estão associadas à identidade de um usuário. Apenas o usuário que está associado à chave pode excluí-la. A mesma chave de API do IBM Cloud pode ser usada para acessar diferentes serviços. Para obter mais informações sobre como trabalhar com as chaves de API do IBM Cloud, consulte Gerenciando chaves de API do usuário.
-
Chaves de API do ID de serviço
Os IDs de serviço ativam o acesso aos seus serviços do IBM Cloud por aplicativos hospedados dentro e fora do IBM Cloud. As chaves de API que estão associadas aos IDs de serviço recebem o acesso que está associado a esse ID de serviço. Para obter mais informações sobre as chaves de ID de serviço, consulte Gerenciando chaves de API do ID de serviço.
Melhores práticas da chave de API
Mantenha as suas chaves de API seguras para reduzir a chance de expor publicamente credenciais que comprometam a sua conta e os seus aplicativos. Para ajudar a manter as chaves de API seguras, siga essas diretrizes.
-
Designe a função de serviço mais restritiva que funciona para o nível de acesso que você precisa.
Por exemplo, designe a função de serviço
Reader
para chamadas de seu aplicativo para métodos de APIGET
. Essa função tem apenas acesso somente leitura, portanto, não pode criar ou editar recursos. -
Não integre a chave de API diretamente no código.
As chaves de API integradas no código podem ser expostas a seus usuários. Em vez de integrar as chaves de API no código, armazene-as em variáveis de ambiente ou em arquivos fora de seu sistema de controle de código-fonte.
-
Não armazene uma chave de API em arquivos dentro do sistema do controle de código-fonte de seu aplicativo.
Se você armazenar as chaves de API em arquivos, mantenha esses arquivos fora do código-fonte do aplicativo. Essa prática é importante se você usa um sistema de gerenciamento de código-fonte público, como o GitHub.
-
Gere novamente ou gire as suas chaves de API.
Crie novas chaves periodicamente ou gire as suas chaves. E não se esqueça de excluir as chaves que você não usa mais.
Próximas etapas
- Leia uma visão geral do IAM do IBM Cloud
- Aprenda sobre gerenciando o acesso em IBM Cloud
- Conheça os detalhes sobre políticas, funções de usuário e permissões
- Veja como transmitir as chaves de API e os tokens