Compartir vía


Uso de tókenes de acceso limitados para Face

Los fabricantes independientes de software (ISV, por sus siglas en inglés) pueden administrar el uso de la API Face de sus clientes mediante la emisión de tókenes de acceso, que conceden acceso a las características de Face que suelen estar controladas. Esto permite a las empresas cliente usar la API Face sin tener que pasar por el proceso de aprobación formal.

Si usted es un ISV aprobado, esta guía le muestra cómo generar los tókenes de acceso; si es cliente, le muestra cómo usar los tókenes.

La característica de token de acceso limitado forma parte del servicio de token actual de Servicios de Azure AI. Hemos agregado una nueva operación con el fin de omitir la puerta de acceso limitado para los escenarios aprobados.

Importante

Solo los ISV que superen los requisitos de acceso tendrán acceso a esta característica. Para solicitar aprobación, póngase en contacto con azureface@microsoft.com.

Ejemplo de caso de uso

Una empresa de ejemplo vende software que usa el servicio Face de Azure AI para operar sistemas de seguridad de acceso a puertas. Sus clientes, fabricantes individuales de dispositivos de puertas, se suscriben al software y lo ejecutan en sus dispositivos. Estas empresas cliente quieren realizar llamadas a la API Face desde sus dispositivos para realizar operaciones de acceso limitado, como la identificación facial. Al confiar en los tókenes de acceso del ISV, pueden omitir el proceso de aprobación formal para la identificación facial. Con la aprobación previa, el ISV puede conceder tókenes de acceso Just-In-Time al cliente.

Expectativa de responsabilidad

El ISV emisor de tókenes es responsable de garantizar que los tókenes solo se usen para el fin aprobado.

Si el ISV descubre que un cliente usa LimitedAccessToken con fines no aprobados, debe dejar de generar tókenes para ese cliente. Microsoft puede realizar un seguimiento de la emisión y el uso de LimitedAccessTokens, y nos reservamos el derecho de revocar el acceso de un ISV a la API issueLimitedAccessToken si no se soluciona el abuso.

Requisitos previos

Paso 1: El ISV obtiene el identificador de recurso Face del cliente

El ISV debe configurar un canal de comunicación entre su propio servicio en la nube seguro (que generará el token de acceso) y su aplicación que se ejecuta en el dispositivo del cliente. Se debe conocer el identificador de recurso Face del cliente antes de generar LimitedAccessToken.

El identificador de recurso Face tiene el formato siguiente:

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.CognitiveServices/accounts/<face-resource-name>

Por ejemplo:

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/client-rg/providers/Microsoft.CognitiveServices/accounts/client-face-api

Paso 2: El ISV genera un token

El servicio en la nube del ISV, que se ejecuta en un entorno seguro, llama a la API issueLimitedAccessToken mediante el identificador de recurso Face conocido del cliente final.

Para llamar a la API issueLimitedAccessToken, copie el siguiente comando cURL en un editor de texto.

curl -X POST 'https://<isv-endpoint>/sts/v1.0/issueLimitedAccessToken?expiredTime=3600' \  
-H 'Ocp-Apim-Subscription-Key: <isv-face-key>' \  
-H 'Content-Type: application/json' \  
-d '{  
    "targetAzureResourceId": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.CognitiveServices/accounts/<face-resource-name>",  
    "featureFlags": ["Face.Identification", "Face.Verification"]  
}' 

Luego, realice los siguientes cambios:

  1. Reemplace <isv-endpoint> por el punto de conexión del recurso del ISV. Por ejemplo, westus.api.cognitive.microsoft.com.
  2. De manera opcional, establezca el parámetro expiredTime para establecer la hora de expiración del token en segundos. Debe estar entre 60 y 86 400. El valor predeterminado es 3600 (una hora).
  3. Reemplace <isv-face-key> por la clave del recurso Face del ISV.
  4. Reemplace <subscription-id> por el identificador de suscripción de la suscripción de Azure del cliente.
  5. Reemplace <resource-group-name> por el nombre del grupo de recursos del cliente.
  6. Reemplace <face-resource-name> por el nombre del recurso Face del cliente.
  7. Establezca "featureFlags" en el conjunto de roles de acceso que desea conceder. Las marcas disponibles son "Face.Identification", "Face.Verification" y "LimitedAccess.HighRisk". Un ISV solo puede conceder permisos concedidos por Microsoft. Por ejemplo, si se ha concedido acceso al ISV a la identificación facial, puede crear un LimitedAccessToken para Face.Identification para el cliente. Todas las creaciones y usos de tókenes se registran con fines de uso y seguridad.

Después, pegue el comando en una ventana de terminal y ejecútelo.

La API debe devolver una respuesta 200 con el token en forma de token web JSON (application/jwt). Si desea inspeccionar LimitedAccessToken, puede hacerlo mediante JWT.

Paso 3: La aplicación cliente usa el token

Luego, la aplicación del ISV puede pasar el token de acceso limitado como encabezado de solicitud HTTP para futuras solicitudes de la API de Face en nombre del cliente. Esto funciona independientemente de otros mecanismos de autenticación, por lo que nunca se filtra la información personal del cliente al ISV.

Precaución

El cliente no necesita tener en cuenta el valor del token, ya que se puede pasar en segundo plano. Si el cliente usara una herramienta de supervisión web para interceptar el tráfico, podría ver el encabezado LimitedAccessToken. Sin embargo, dado que el token expira después de un breve período de tiempo, está limitado respecto de lo que puede hacer con él. Este riesgo es conocido y se considera aceptable.

Depende de cada ISV decidir cómo pasa exactamente el token de su servicio en la nube a la aplicación cliente.

Una solicitud de API Face de ejemplo con el token de acceso tiene este aspecto:

curl -X POST 'https://<client-endpoint>/face/v1.0/identify' \  
-H 'Ocp-Apim-Subscription-Key: <client-face-key>' \  
-H 'LimitedAccessToken: Bearer <token>' \  
-H 'Content-Type: application/json' \  
-d '{  
  "largePersonGroupId": "sample_group",  
  "faceIds": [  
    "c5c24a82-6845-4031-9d5d-978df9175426",  
    "65d083d4-9447-47d1-af30-b626144bf0fb"  
  ],  
  "maxNumOfCandidatesReturned": 1,  
  "confidenceThreshold": 0.5  
}'

Nota

La dirección URL del punto de conexión y la clave de Face pertenecen al recurso Face del cliente, no al recurso del ISV. <token> se pasa como un encabezado de solicitud HTTP.