Участник безопасности для приложения - это объект ServicePrincipal (так же, как участник безопасности для пользователя - это объект User). Если приложение настроено как мультитенантное приложение, субъект службы для этого приложения может быть создан в любом другом клиенте. После создания этого участника службы ему может быть предоставлено назначение роли.
Пример использования Azure CLI:
Войдите в систему клиента A.
$ az login --tenant "{tenant-A-id-or-domain}"
В клиенте A настройте регистрацию приложения (объект приложения) как мультитенантную. (Здесь мы создаем новый, но вы также можете обновить существующий с помощью az ad app update
.)
$ az ad app create --display-name "App in Tenant A" \
--available-to-other-tenants true \
--query "appId"
"74dde9de-56e2-4750-a7cc-5da5f021b897"
Войдите в систему арендатора B.
$ az login --tenant "{tenant-B-id-or-domain}"
Создание принципала службы для приложения (которое было зарегистрировано в клиенте A) в клиенте B. Обратите внимание, что значение, используемое для id
, представляет собой appId
регистрации приложения, созданной на шаге 2 .
$ az ad sp create --id "74dde9de-56e2-4750-a7cc-5da5f021b897" \
--query "{appId:appId,displayName:displayName}"
{
"appId": "4c3e3be1-b735-41b1-a842-f095b9a45849",
"displayName": "App in Tenant A"
}
На этом этапе вы можете предоставить субъекту службы доступ к чему-либо. Например, вы можете назначить ему роль роли в ваших Azure подписках.
Теперь вы можете использовать учетные данные, настроенные при регистрации приложения (т. Е. Сертификат или секрет клиента). ), при аутентификации в Арендаторе B в качестве приложения.
Создание объекта субъекта службы вручную, как мы это сделали здесь, - это всего лишь один из подходов. Другой подход, особенно полезный, когда приложение имеет своего рода пользовательский интерфейс (например, веб-приложение), заключается в том, что пользователь в арендаторе B должен войти в приложение и согласиться с ним. После того, как хотя бы один пользователь согласился с приложением, объект участника службы приложения будет представлен в клиенте B, и ему может быть назначено назначение роли.