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
- cURL instalado (u otra herramienta que pueda realizar solicitudes HTTP).
- El ISV necesita tener un recurso Azure AI Face o un recurso Multiservicio de servicios de Azure AI.
- El cliente necesita tener un recurso de Azure AI Face.
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:
- Reemplace
<isv-endpoint>
por el punto de conexión del recurso del ISV. Por ejemplo, westus.api.cognitive.microsoft.com. - 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). - Reemplace
<isv-face-key>
por la clave del recurso Face del ISV. - Reemplace
<subscription-id>
por el identificador de suscripción de la suscripción de Azure del cliente. - Reemplace
<resource-group-name>
por el nombre del grupo de recursos del cliente. - Reemplace
<face-resource-name>
por el nombre del recurso Face del cliente. - 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.