Регистрация приложений в Microsoft Entra ID (Azure AD): OAuth 2.0, MSAL-интеграция, portal/CLI/Bicep. Покрывает все типы: web, SPA, mobile, daemon.
npx -y skills add microsoft/github-copilot-for-azure --skill entra-app-registration --agent claude-codeMicrosoft Entra ID (ранее Azure Active Directory) — облачная служба управления удостоверениями и доступом Microsoft. Регистрация приложений позволяет приложениям аутентифицировать пользователей и безопасно получать доступ к ресурсам Azure.
| Понятие | Описание |
|---|---|
| Регистрация приложения | Конфигурация, позволяющая приложению использовать платформу удостоверений Microsoft |
| Application (Client) ID | Уникальный идентификатор вашего приложения |
| Tenant ID | Уникальный идентификатор вашего Azure AD-арендатора/каталога |
| Client Secret | Пароль приложения (только для конфиденциальных клиентов) |
| Redirect URI | URL, на который отправляются ответы аутентификации |
| API Permissions | Области доступа, запрашиваемые вашим приложением |
| Service Principal | Удостоверение, создаваемое в вашем арендаторе при регистрации приложения |
| Тип | Применение |
|---|---|
| Web Application | Серверные приложения, API |
| Single Page App (SPA) | JavaScript/React/Angular-приложения |
| Mobile/Native App | Десктопные и мобильные приложения |
| Daemon/Service | Фоновые сервисы, API |
Создайте регистрацию в портале Azure или с помощью Azure CLI.
Через портал:
Рекомендуется использовать IaC для управления регистрациями, если вы уже применяете IaC в проекте, нужно масштабируемое решение или детальная история изменений конфигурации.
http://localhost или пользовательскую схему URIПредоставьте приложению доступ к Microsoft API или собственным API.
Распространённые разрешения Microsoft Graph:
User.Read — чтение профиля пользователяUser.ReadWrite.All — чтение и запись всех пользователейDirectory.Read.All — чтение данных каталогаMail.Send — отправка почты от имени пользователяДля конфиденциальных клиентских приложений создайте секрет клиента, сертификат или федеративные учётные данные удостоверения.
Интегрируйте OAuth-поток в код приложения. MSAL — рекомендуемая библиотека.
Пошаговая помощь при первой регистрации приложения.
Необходимая информация: имя приложения, тип (web, SPA, mobile, service), redirect URI, необходимые разрешения.
Создание консольного приложения .NET/Python/Node.js с аутентификацией пользователей.
Необходимая информация: язык программирования, библиотека аутентификации (рекомендуется MSAL), необходимые разрешения.
Настройка аутентификации daemon/service без участия пользователя.
Реализация: используйте Client Credentials flow.
| Команда | Назначение |
|---|---|
az ad app create | Создать регистрацию приложения |
az ad app list | Список регистраций приложений |
az ad app show | Показать детали приложения |
az ad app permission add | Добавить разрешение API |
az ad app credential reset | Сгенерировать новый секрет клиента |
az ad sp create | Создать сервисный принципал |
Поддерживаемые языки: .NET/C# — Microsoft.Identity.Client, JavaScript/TypeScript — @azure/msal-browser, @azure/msal-node, Python — msal.
| Практика | Рекомендация |
|---|---|
| Не хардкодьте секреты | Используйте переменные окружения, Azure Key Vault или управляемое удостоверение |
| Регулярно ротируйте секреты | Устанавливайте срок действия, автоматизируйте ротацию |
| Сертификаты вместо секретов | Более безопасно для production |
| Минимальные привилегии | Запрашивайте только необходимые разрешения API |
| Включите MFA | Требуйте многофакторную аутентификацию для пользователей |
| Используйте управляемые удостоверения | Для Azure-hosted приложений — избегайте секретов полностью |
| Валидируйте токены | Всегда проверяйте issuer, audience, expiration |
| Только HTTPS | Все redirect URI должны использовать HTTPS (кроме localhost) |
| Мониторинг входов | Используйте логи входов Entra ID для обнаружения аномалий |