#c# #azure #azure-resource-manager #azure-cli
Вопрос:
Я работал над проектом для компании, которая пытается преобразовать свой сценарий PowerShell для создания некоторой инфраструктуры. Они хотели бы, чтобы этот скрипт был преобразован в приложение формы, если это возможно. Я все еще несколько новичок в Azure, поэтому есть некоторые вещи, которые меня смущают, и мне любопытно, может ли кто-нибудь дать мне ответ или указать мне на некоторые ресурсы, о которых я могу прочитать. Большая часть моей путаницы до сих пор заключается в том, как разные API Azure взаимодействуют друг с другом.
Для этого проекта AzureRM будет основным API, который мы будем использовать. Однако в моих исследованиях GraphAPI всплывает для некоторых вещей, с которыми я играл. Большая часть моей путаницы в настоящее время связана с попытками провести различие между тем, как реализовать, и если/как их следует использовать вместе.
Это приложение будет приложением для одного арендатора для справки.
В своих исследованиях я могу найти множество способов, с помощью которых человек может войти в свою учетную запись Azure с помощью интерфейса командной строки или PowerShell. Я не смог найти много ресурсов, которые объясняли бы, как это можно было бы сделать программно на C# для чего-то подобного. У меня есть рабочий логин, который я использую для GraphAPI, что позволяет мне получать основную информацию о пользователе. Если мне нужно было использовать что-то вроде идентификатора пользователя с AzureRM, могу ли я использовать этот идентификатор пользователя, извлеченный с помощью GraphAPI, или это вызовет проблемы с AzureRM?
Если я не могу сделать вышесказанное, то что эквивалентно C# az login
с чем-то вроде AzureRM?
В дополнение к этому, я смог найти ресурсы для получения authToken для использования с AzureRM. В этом случае я пытаюсь получить информацию о подписке для учетной записи, вошедшей в систему. В настоящее время я могу получить авторизацию с помощью PowerShell, поэтому почти все ресурсы, которые я нашел, показывают, как это сделать. Опять же, я не смог найти ничего подходящего для этого с помощью C#. Есть ли способ получить эти коды авторизации программно на C#?
Также вполне возможно, что я совершенно неправильно понимаю, как следует делать определенные вещи при попытке использовать C# с Azure. Если что-то выше не так, я был бы признателен за представление о том, что мне нужно посмотреть, чтобы получить правильное понимание. Любые ссылки на ресурсы, которые я могу использовать для ознакомления с этими областями, чтобы начать работу, приветствуются.
Комментарии:
1. 1/1) Ваш вопрос слишком широк для переполнения стека. Невозможно объединить несколько лет опыта разработки Azure в один простой ответ. Независимо от того, насколько длинным будет ответ, будут упущены важные детали. Просто ваш вопрос о входе в систему az требует серьезных знаний об авторизации Azure и станет главой в книге. Существует множество способов реализации входа в систему az. OAuth, руководители служб, управляемые удостоверения и т. Д. Что требует понимания окружающей среды.
2. 2/2) Я рекомендую прочитать документацию по разделу API, написать некоторый код и поэкспериментировать. Задайте вопрос, когда у вас есть проблема, связанная с программированием, которая сфокусирована и четко определена.
3. Чтобы, надеюсь, добавить некоторые уточнения, API Graph касается людей, календарей, Azure AD и т. Д. Вам это не нужно, если вы не хотите извлекать информацию такого типа. Диспетчер ресурсов Azure — это совершенно другое-все дело в развертывании ресурсов в azure. В конечном итоге все достигается с помощью веб-API. AFAIK все остальные API (Powershell, azcmd и т.д. ) Просто сидят поверх этого. Возможно, вы захотите рассмотреть возможность создания веб-приложения вместо мощного клиентского приложения, так как вы найдете гораздо больше примеров. Сказав это, весь веб-код C# .net должен работать, будь то веб-клиент или толстый клиент.
4. Ценю ваши ответы. Это, по крайней мере, дает мне некоторое представление об уровне понимания, которого мне нужно будет достичь. Я приму во внимание эти предложения для будущих сообщений и краткую разбивку API.
5.
They'd like this script converted to a form application if possible
приложение pushthebutton forms может быть немного проще в использовании, но оно требует много разработки по сравнению со сценариями. Однако вы можете ознакомиться с документацией Azure REST API , чтобы просто проверить, как она выглядит.
Ответ №1:
Также вполне возможно, что я совершенно неправильно понимаю, как следует делать определенные вещи при попытке использовать C# с Azure.
В этом нет ничего плохого! Мы можем делать некоторые вещи программно, а некоторые-с помощью предоставленных команд, PowerShell, CLI, Kudu и т. Д.
Приведенные ниже ресурсы могут помочь вам ответить на ваши вопросы:
как различные API Azure взаимодействуют друг с другом.
- Различные типы управления API Azure RM
- Службы связи Azure — это набор расширенных интерфейсов API связи, API видео и API SMS для развертывания приложений на любом устройстве и на любой платформе. Знайте, как они играют вместе!
Если мне нужно было использовать что-то вроде идентификатора пользователя с AzureRM, могу ли я использовать этот идентификатор пользователя, извлеченный с помощью GraphAPI, или это вызовет проблемы с AzureRM?
Если ваш ресурс «https://graph.microsoft.com/» тогда ваши полномочия должны быть «https://login.windows.net/common/oauth2/v2.0/token» или тот же орган, но замените «общий» на идентификатор клиента azure AD.
Есть ли способ получить эти коды авторизации программно на C#?
невозможно использовать код C#, получая код напрямую.
Часть потока авторизации OAuth 2.0 выглядит следующим образом:
При получении кода авторизации пользователю необходимо ввести учетные данные и разрешение на согласие, которое является интерактивным запросом. Таким образом, невозможно использовать код C#, получая код напрямую.
Комментарии:
1. OP говорит об API Azure RM, а вы говорите об управлении API Azure и службе связи Azure. К сожалению, я не вижу в этом никакого отношения. Кроме того, вместо простого предоставления ссылок на другие ответы, пожалуйста, попробуйте предоставить примеры кода, которые может использовать OP. Вы можете пометить вопрос как дубликат другого вопроса, если он отвечает на запросы OP.