Использование маркеров ограниченного доступа для Face

Независимые поставщики программного обеспечения (НЕЗАВИСИМЫе поставщики программного обеспечения) могут управлять использованием API распознавания лиц своих клиентов, выдавая маркеры доступа, предоставляющие доступ к функциям распознавания лиц, которые обычно включены. Это позволяет своим клиентам использовать API распознавания лиц без необходимости пройти формальный процесс утверждения.

В этом руководстве показано, как создать маркеры доступа, если вы являетесь утвержденным isV, и как использовать маркеры, если вы являетесь клиентом.

Функция маркера ограниченного доступа является частью существующей службы маркеров служб искусственного интеллекта Azure. Мы добавили новую операцию для обхода шлюза ограниченного доступа для утвержденных сценариев. Только поставщики программного обеспечения, которые передают требования к выбору, получат доступ к этой функции.

Примеры использования

Пример компании продает программное обеспечение, которое использует службу распознавания лиц Azure для управления системами безопасности доступа к двери. Их клиенты, отдельные производители устройств двери, подписываться на программное обеспечение и запускать его на своих устройствах. Эти клиентские компании хотят совершать вызовы API распознавания лиц с своих устройств для выполнения операций ограниченного доступа, таких как идентификация лиц. Используя маркеры доступа из поставщика программного обеспечения, они могут обойти формальный процесс утверждения для идентификации лиц. IsV, который уже утвержден, может предоставить клиенту маркеры доступа jit-time.

Ожидание ответственности

Поставщик программного обеспечения, выдавающий токен, отвечает за обеспечение того, чтобы маркеры использовались только для утвержденной цели.

Если isV узнает, что клиент использует LimitedAccessToken для не утвержденных целей, isV должен прекратить создание маркеров для этого клиента. Корпорация Майкрософт может отслеживать выдачу и использование LimitedAccessTokens, и мы зарезервируем право отозвать доступ поставщика программного обеспечения к API issueLimitedAccessToken , если злоупотребление не устранено.

Необходимые компоненты

Шаг 1. Поставщик программного обеспечения получает идентификатор ресурса распознавания лиц клиента

Поставщик программного обеспечения должен настроить канал связи между собственной защищенной облачной службой (которая создаст маркер доступа) и приложением, работающим на устройстве клиента. Идентификатор ресурса распознавания лиц клиента должен быть известен до создания LimitedAccessToken.

Идентификатор ресурса распознавания лиц имеет следующий формат:

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

Например:

/subscriptions/dc4d27d9-ea49-4921-938f-7782a774e151/resourceGroups/client-rg/providers/Microsoft.CognitiveServices/accounts/client-face-api

Шаг 2. Поставщик программного обеспечения создает токен

Облачная служба isV, запущенная в безопасной среде, вызывает API issueLimitedAccessToken с помощью известного идентификатора ресурса распознавания лиц клиента.

Чтобы вызвать API issueLimitedAccessToken , скопируйте следующую команду cURL в текстовый редактор.

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

Затем внесите следующие изменения:

  1. Замените <isv-endpoint> конечной точкой ресурса поставщика программного обеспечения. Например, westus.api.cognitive.microsoft.com.
  2. При необходимости задайте expiredTime параметр, чтобы задать время окончания срока действия маркера в секундах. Оно должно быть от 60 до 86400. Значение по умолчанию — 3600 (один час).
  3. Замените <client-face-key> ключом ресурса распознавания лиц клиента.
  4. Замените <subscription-id> идентификатор подписки клиента на подписку Azure.
  5. Замените <resource-group-name> именем группы ресурсов клиента.
  6. Замените <face-resource-name> именем ресурса распознавания лиц клиента.
  7. Задайте "featureFlags" для набора ролей доступа, которые требуется предоставить. Доступные флаги: "Face.Identification"и "Face.Verification""LimitedAccess.HighRisk". IsV может предоставлять только разрешения, предоставленные корпорацией Майкрософт. Например, если isV предоставлен доступ к идентификации лиц, он может создать LimitedAccessToken для Face.Identification для клиента. Все создания и использование маркеров регистрируются в целях использования и безопасности.

Затем вставьте команду в окно терминала и запустите ее.

API должен возвращать 200 ответ с маркером в виде веб-маркера JSON (application/jwt). Если вы хотите проверить LimitedAccessToken, это можно сделать с помощью JWT.

Шаг 3. Клиентское приложение использует маркер

Затем приложение поставщика программного обеспечения может передать маркер ограниченного доступа в качестве заголовка HTTP-запроса для будущих запросов API распознавания лиц от имени клиента. Это работает независимо от других механизмов проверки подлинности, поэтому личная информация клиента никогда не утечка в isV.

Внимание

Клиенту не нужно знать значение токена, так как его можно передать в фоновом режиме. Если клиент должен был использовать средство веб-мониторинга для перехвата трафика, он сможет просмотреть заголовок LimitedAccessToken. Однако, поскольку срок действия маркера истекает через короткий период времени, они ограничены тем, что они могут сделать с ним. Этот риск известен и считается приемлемым.

Это для каждого поставщика программного обеспечения, чтобы решить, как именно он передает маркер из облачной службы в клиентское приложение.

Пример запроса API распознавания лиц с помощью маркера доступа выглядит следующим образом:

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  
}'

Примечание.

URL-адрес конечной точки и ключ распознавания лиц относятся к ресурсу распознавания лиц клиента, а не к ресурсу поставщика программного обеспечения. Передается <token> в виде заголовка HTTP-запроса.

Следующие шаги