У меня клиентское приложение для Windows, подключающееся напрямую к серверу SQL.
Сейчас я использую аутентификацию на сервере SQL, но я хочу заменить ее для повышения безопасности. (Я не хочу развертывать учетные данные вместе с приложением)
Я хочу использовать Azure AD для предоставления доступа к приложению (и перенаправления токена доступа в БД)
Моя желаемая настройка будет выглядеть так:
У меня есть регистрация приложения Azure AD (принципал службы).
- Я назначаю разрешение на индивидуальное использование приложения -> Корпоративное приложение -> Требуется назначение пользователя -> Да
- Я даю разрешение приложению (субъекту службы) на базу данных SQL.
- Теперь я могу получить доступ к БД как зарегистрированный пользователь (разрешение API Azure SQL Server -> user_impersonation), но это означает, что я должен предоставить доступ всем отдельным пользователям непосредственно в БД.
Я хотел бы получить доступ к БД в качестве приложения.
Возможно ли это, и если да, то как?
Теперь я могу использовать ADAL для подключения в качестве субъекта службы к БД, но затем мне нужно создать секретный ключ клиента для субъекта службы и развернуть его вместе с приложением -> небезопасно. Или я могу использовать MSAL с user_delegation и обращаться к БД в качестве вошедшего в систему пользователя, но это означает, что я должен предоставить ему прямой доступ к БД, и он может получить к нему доступ другим способом, как в приложении (например, в MSSMS).