IBM Cloud Docs
Autenticación en los servicios de Watson

Autenticación en los servicios de Watson

Los servicios de IBM Watson® en IBM Cloud® utilizan IBM Cloud® Identity and Access Management (IAM) para la autenticación. Los servicios instalados en IBM Cloud Pak® for Data dan soporte a más métodos. Con las políticas de acceso de IAM, puede asignar acceso a más de un recurso desde una única clave. Además, un usuario, un ID de servicio y una instancia de servicio pueden contener múltiples claves de API.

Pase de credenciales

Para autenticarse en un servicio a través de su API, pase sus credenciales a la API. La forma de autenticación puede variar en función de las necesidades de seguridad y de si el servicio está en IBM Cloud® o está instalado en IBM Cloud Pak® for Data.

Autenticación en IBM Cloud

IBM Cloud

Puede utilizar IBM Cloud® Identity and Access Management (IAM) para llevar a cabo solicitudes autenticadas a servicios públicos de IBM Watson®. Puede pasar una señal portadora en una cabecera de autorización o bien una clave de API.

  • Autenticarse con una señal de IAM.

    Las señales de IAM son credenciales de seguridad temporales que son válidas durante 60 minutos. Cuando una señal caduca, puede generar una nueva. Las señales pueden resultar útiles para el acceso temporal a recursos. Para obtener más información, consulte Generación de una señal de IAM de IBM Cloud utilizando una clave de API.

    El siguiente mandato curl genera una señal de acceso de IAM. Sustituya {apikey} con el valor de la clave 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"
    

    La respuesta incluye una propiedad access_token. Para autenticar una solicitud para el servicio, sustituya {access_token} por la señal de la respuesta. Sustituya {url} por el valor del URL para la instancia de servicio, que puede encontrar pulsando Mostrar credenciales en el recuadro Credenciales de la página Gestionar para la instancia de servicio.

    curl -header "Authorization: Bearer {access_token}" \
    "{url}/v1/{method}"
    
  • Autenticarse con una clave de API de IBM Cloud, una clave de API de ID de servicio o una clave de API específica de un servicio. Sustituya {url} por el valor del URL para la instancia de servicio, que puede encontrar pulsando Mostrar credenciales en el recuadro Credenciales de la página Gestionar para la instancia de servicio.

    Las claves de API son fáciles de utilizar y no caducan automáticamente. Cualquiera con una clave válida puede acceder al recurso. Puede crear claves de API individuales para distintos usuarios, distintas aplicaciones o para dar soporte a casos de rotación de claves. Puede revocar las claves de API desde la consola sin interferir con otras claves de API ni con el usuario.

    El siguiente mandato curl de ejemplo se autentica con la clave de API f5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRI.

    curl -u "apikey:f5sAznhrKQyvBFFaZbtF60m5tzLbqWhyALQawBg5TjRI" \
    "{url}/v1/{method}"
    

Para el desarrollo y la realización de pruebas, puede pasar una clave de API directamente. Sin embargo, para uso de producción, a menos que utilice los SDK de Watson, utilice una señal de IAM. Cuando pasa una clave de API, el servicio busca los detalles de la clave de API, por lo que podría afectar al rendimiento. Para obtener más información, consulte Invocación de API de servicio de IBM Cloud.

Los SDK de Watson admiten ambos métodos. Para obtener más información, consulte la sección Autenticación de la Referencia de API para el servicio y el SDK.

Algunos planes de servicio dan soporte a IBM® Key Protect for IBM Cloud® para controlar el acceso a los datos. Para obtener más información, consulte Protección de la información confidencial en el servicio de Watson.

Autenticación en IBM Cloud Pak for Data

IBM Cloud Pak for Data

Puede autenticarse en el servicio pasando una señal de acceso con cada solicitud. Puede pasar una señal portadora en una cabecera de Authorization para autenticarse. Existen varios métodos para generar la señal, incluido el uso de una clave de API o el nombre de usuario. Para obtener más información, consulte Generación de una señal de autorización o una clave de API.

Para obtener más información sobre los métodos de autenticación soportados por los SDK de Watson para los servicios instalados en IBM Cloud Pak for Data, consulte la sección Autenticación de la Referencia de API para el servicio y SDK.

Acerca de las claves de API

Los servicios de Watson admiten tres tipos de claves de API:

  • Claves de API específicas del servicio

    Las claves específicas del servicio se generan con el servicio. Esta clase de claves de API solo tienen acceso a una instancia de servicio específica. Para ver claves específicas de servicio, pulse el nombre de un servicio Watson en la lista de recursos.

  • Claves de API de IBM Cloud

    Las claves de API de IBM Cloud están asociadas a la identidad de un usuario. Solo el usuario asociado a la clave puede suprimirla. La misma clave de API de IBM Cloud se puede utilizar para acceder a diferentes servicios. Para obtener más información sobre cómo trabajar con las claves de API de IBM Cloud, consulte Gestión de claves de API de usuario.

  • Claves de API del ID de servicio

    Los ID de servicio habilitan el acceso a sus servicios de IBM Cloud a aplicaciones alojadas tanto dentro como fuera de IBM Cloud. Las claves de API que están asociadas a un ID de servicio obtienen el acceso asociado a dicho ID de servicio. Para obtener más información sobre las claves de ID de servicio, consulte Gestión de claves de API de ID de servicio.

Métodos recomendados de claves de API

Proteja sus claves de API para reducir la posibilidad de exponer públicamente las credenciales que comprometerían su cuenta y aplicaciones. Para mejorar la protección de sus claves de API, siga estas directrices.

  • Asigne el rol de servicio más restrictivo que funcione para el nivel de acceso que necesita.

    Por ejemplo, asigne el rol de servicio Reader para llamadas desde su aplicación a los métodos de API GET. Este rol tiene acceso de solo lectura, por lo que no podrá crear ni editar recursos.

  • No incluya la clave de API directamente en el código.

    Las claves de API incluidas en el código podrían ser visibles para los usuarios. En lugar de incluir las claves de API en el código, almacénelas en variables de entorno o en archivos fuera del sistema de control del código fuente.

  • No almacene una clave de API en archivos dentro del sistema de control del código fuente de la aplicación.

    Si almacena las claves de API en archivos, conserve dichos archivos fuera del código fuente de la aplicación. Esta práctica es importante si se utiliza un sistema de gestión de código fuente público como GitHub.

  • Regenerar o rotar las claves de API.

    Cree nuevas claves periódicamente, o rótelas. No se olvide de suprimir las claves que ya no utilice.

Próximos pasos