2009-01-26 20 views
10

Varias API de servicios web le obligan a registrarse para obtener una clave API. Por ejemplo, los servicios web de UPS requieren una clave, que se incluye en las llamadas a su servicio: Además del nombre de usuario y la contraseña.¿Por qué algunos proveedores de API requieren una clave API?

¿Para qué sirve esta clave el proveedor? Quizás UPS es el único que necesita tanto la clave de API como el nombre de usuario/contraseña.

Una idea es que la usan para limitar o medir el uso de la API, pero me parece que una configuración en el perfil de los usuarios podría hacer lo mismo, especialmente porque generalmente debe obtener una cuenta con nombre de usuario y contraseña para obtener la API en primer lugar.

+0

¿Por qué hiciste esto una wiki? – GEOCHET

+0

¡Porque amo la wikiness! :) –

Respuesta

5

Existen dos casos de uso predominantes. El primero es medir, rastrear y restringir el uso de API. Si alguien está creando un servicio que permite a terceros acceder a él, el proveedor del servicio puede querer controlar (o al menos saber) quién tiene acceso para que puedan intentar y evitar cosas como ataques de denegación de servicio. En el lado de la medida y el seguimiento, se puede obtener información interesante, como saber qué aplicaciones son populares para acceder al servicio o qué características utilizan más las personas.

El otro caso de uso está relacionado con la seguridad y la autenticación.No es prudente que un proveedor de servicios tenga aplicaciones y servicios de terceros que exijan que los usuarios renuncien a su nombre de usuario y contraseña para el servicio principal. Esta es una gran exposición. Es por eso que muchos servicios se están estandarizando en protocolos como OAuth, que proporciona acceso delegado mediante autorización a los datos de un usuario. Aunque no es infalible, es definitivamente preferible distribuir credenciales de usuario a partes desconocidas y no confiables.

+0

Cuando se trata de la restricción del uso de la API, ¿no es posible usar la Clave API de, por ejemplo, una "Aplicación A" de un tercero y simularla a través de otra "Aplicación B "y recibir la solicitud? ¿Cómo se sirve el propósito de seguridad aquí en este caso? –

1

Normalmente solía obtener estadísticas sobre la cantidad de aplicaciones que realizan consultas a la API. Creo que pedir el nombre de usuario/contraseña con la clave API es ambiguo en algunos casos, pero es una forma de cómo se implementa, por lo que no podemos hacer nada con él.

Preguntan por la clave de API porque podría tener más de una API en la misma cuenta, en caso de que tenga más de un sitio que use la misma API.

0

Podrían usarlo para indicar qué versión de la API está tratando de usar. Quizás en la Versión 1.0, hay un método que toma un POST en www.UPS.com/search y hay otro en la versión 2.0 en la misma dirección, pero toma un conjunto de parámetros diferente, o incluso devuelve datos en un formato diferente/estilo. Su programa fue desarrollado en V1.0 y espera un cierto contrato de API. Quieren poder crear V2.0 sin interferir con los productos de sus clientes.

Eso es solo una suposición, pero me parece bien.

0

Creo que Gracenote hace algo similar para cddb. Olvidé los detalles, pero recuerdo algo sobre algún token.

(tienen/tenían reglas muy draconianas sobre el uso de su servicio también.)

Simon me recordó lo que la cosa era Gracenote. Gracenote y Fedex y otros servicios web tienen muchos desarrolladores que escriben aplicaciones para el software. Entonces los desarrolladores obtienen un token para poner en sus aplicaciones, pero los usuarios finales tienen su propio nombre de usuario y contraseña. Permite que los servicios vigilen el abuso de programas, etc. Esa es probablemente la razón principal. (como un navegador o un webbot informando al servidor web quién/qué es)

4

La mayor parte del tiempo es para monitorear cómo los desarrolladores están usando la API web. Si de alguna manera no están de acuerdo con el uso que hace de la API, proporciona un medio para que la desconecten sin perjudicar a los demás usuarios. Y las estadísticas por usuario/aplicación son siempre valiosas.

He utilizado la aplicación flickr. En esa situación, la clave es suya, pero los datos de inicio de sesión pueden ser de personas que usan su aplicación, por lo que la clave api es la única forma de diferenciar entre las aplicaciones.

+0

sí - ahora recuerdo - Lo mismo con gracenote – Tim

0

Originalmente, Blogger solicitó que solicitara una clave API (a la Google Maps) y la usó para restringir el acceso a la API. A medida que Blogger se convirtió en Metaweblog, el requisito para la API se volvió menos importante, y Blogger ya no requiere que solicite una clave. Como señalaron otros, todavía puede usarse con fines de seguimiento.

0

En nuestra situación, nuestros clientes quieren para:

  • seguimiento/análisis - averiguar quién está haciendo qué y qué productos de construcción. Debido a que una serie de usuarios son aplicaciones de escritorio, simplemente mirar las referencias no siempre es suficiente.
  • Permisos: ¿a qué recursos debe tener acceso un usuario? ¿Cómo puede un usuario crear aplicaciones que tienen acceso a recursos específicos?
  • Licencias/legal: se exige que los usuarios lean y acepten la información de licencia de usuario/licencia.
  • Seguridad: pasar nombres de usuario/contraseñas es una mala idea.
Cuestiones relacionadas