Azure - предоставьте доступ к ресурсам внешнему приложению - PullRequest
0 голосов
/ 25 октября 2019

У меня есть приложение, которое я зарегистрировал на своем портале Azure, для которого требуются разрешения для доступа к API управления службами Azure. Чтобы он работал с ресурсами Azure, мне нужно добавить назначение роли в подписку для моего приложения, чтобы иметь возможность, например, выполнить вызов API, например:

https://management.azure.com/subscriptions/xxxx-xxxx-xxxx-xxxx/resourcegroups?api-version=2017-05-10

Iхочу, чтобы мое приложение работало с различными порталами Azure. У меня вопрос: как добавить назначение роли для моего приложения в другой Azure AD, в которой мое приложение не зарегистрировано, но дало на это согласие? Я подхожу к этому неправильно?

1 Ответ

0 голосов
/ 25 октября 2019

как добавить назначение роли для моего приложения в другой Azure AD, в которой мое приложение не зарегистрировано, но дало на это согласие?

Да, вы можете.

Когда приложение получит согласие вашего другого арендатора, Azure создаст корпоративное приложение для регистрации вашего приложения в этом арендаторе, которое вы можете найти вAzure Active Directory -> Enterprise applications (поиск с помощью All Applications).

Чтобы добавить назначение для него, просто нужно перейти к Subscription на портале -> Access control (IAM) -> добавить свойКорпоративное приложение (субъект службы) в качестве роли, например Owner / Contributor.

Затем вы можете использовать client credentials flow, чтобы получить маркер доступа для субъекта службы, client_secret это тот, кто у вас первый арендатор. Затем вы можете использовать токен для вызова остальных API в вашем вопросе.

Обновление:

Я не рекомендую вам использовать учетную запись пользователя для получения токена доступа. Потому что, когда вы включаете MFA, вы не можете использовать UserCredential для получения. Если вы используете Visual Studio, вы можете использовать AzureServiceTokenProvider для получения токена доступа.

 var azureServiceTokenProvider = new AzureServiceTokenProvider();
 string accessToken =  azureServiceTokenProvider.GetAccessTokenAsync("https://management.azure.com");

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

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...