Gerando um token de acesso
Em raros cenários em que não é possível usar tokens de autorização ZenApiKey , você pode gerar um token de portador usando suas Data Fabric credenciais. Você pode usar o token de portador para se autenticar em Data Fabric APIs e acessar Data Fabric endpoints.
Por exemplo, se você tiver o SAML SSO ativado e precisar gerar programaticamente uma chave de API para um usuário do serviço, não poderá fazer login na interface do usuário com um nome de usuário e senha para gerar a chave de API. E você precisa de um ZenApiKey para gerar uma chave de API programaticamente com o ponto de extremidade Get API key . No entanto, você ainda pode gerar um token de portador para criar uma chave de API usando o ponto de extremidade Get API
key .
Sobre esta tarefa
Tokens e chaves API estão sujeitos a verificações de autorização. A invocação de pontos de extremidade da API depende da função e das permissões concedidas a você na plataforma e nos serviços.
Se você quiser se autenticar com uma chave de API para gerar um token de portador, gere a chave de API primeiro. Para obter mais informações, consulte Geração de chaves de API para autenticação.
Procedimento
- Se você deseja autenticar com um Red Hat®
OpenShift® nome de usuário e senha, mas o OpenShift nome de usuário não contém o prefixo
IAM#, então você precisa atualizar oroksUserPrefixparâmetro com um valor vazio para remover o prefixo necessário.- Execute o seguinte comando para atualizar
roksUserPrefixdiretamente a partir do recurso personalizado de autenticação (CR):oc patch Authentication.operator.ibm.com example-authentication \ --type=merge \ -p '{"spec":{"config":{"roksUserPrefix":""}}}'Depois de executar o comando, os pods da plataforma devem reiniciar automaticamente.
- Execute o seguinte comando para verificar se
roksUserPrefixfoi corrigido:oc get Authentication.operator.ibm.com example-authentication \ -o jsonpath='{.spec.config.roksUserPrefix}'
Para obter mais informações sobre
roksUserPrefix, consulte Delegando autenticação para OpenShift - Execute o seguinte comando para atualizar
- Chame a API usando um dos seguintes comandos do site cURL. Escolha o comando que usa as credenciais com as quais você deseja se autenticar.
- Autentique-se com um nome de usuário e uma senha:
curl -k -X POST \ "https://<instance_route>/icp4d-api/v1/authorize" \ -H "Content-Type: application/json" \ -d '{ "username": "<username>", "password": "<password>" }' - Autenticar com uma senha e também validar um certificado autoassinado:
curl -X POST \ "https://<instance_route>/icp4d-api/v1/authorize" \ --cacert /<path_to_root-ca>.crt -H "Content-Type: application/json" \ -d "{ "username": <username>, "password": <password> }"Se o certificado for assinado por uma autoridade de certificação (CA) raiz adequada, os parâmetros
-ke--cacertnão serão necessários porque o curl já conhece a CA raiz. - Autenticar com uma chave de API:
curl -k -X POST \ "https://<instance_route>/icp4d-api/v1/authorize" \ -H "Content-Type: application/json" \ -d '{ "username":"<username>", "api_key":"<api_key>" }'
Substitua
<instance_route>pelos detalhes da instância de serviço. Substitua<username>,<password>e<api_key>por suas Data Fabric credenciais. Se você usar um certificado autoassinado, substitua também<path_to_root-ca>. - Autentique-se com um nome de usuário e uma senha:
{
"_messageCode_": "200",
"message": "Success",
"accessToken": "<bearer-token>"
}Para obter mais informações sobre os /icp4d-api/v1/authorize endpoints, consulte Obter token de autorização na API IBM® Software
Hub da plataforma.
O que fazer em seguida
Use o token de portador que você gerou no cabeçalho de autorização das chamadas de API subsequentes.
curl -H "Authorization: Bearer <token>" "https://<platform_instance_route>/<endpoint>"