У нас очень большой проект Winforms, и нам нужно использовать SSO с AAD для выполнения вызовов API к внешней службе API.
Я использую MSAL и методы:
app.AcquireTokenSilent
app.AcquireTokenByIntegratedWindowsAuth
Однако я получаю сообщение об ошибке:
Microsoft.Identity.Client.MsalClientException: Integrated Windows Auth не поддерживается для управляемых пользователей. Подробнее см. https://aka.ms/msal-net-iwa.
в Microsoft.Identity.Client.Internal.Requests.IntegratedWindowsAuthRequest
с использованием метода:
app.AcquireTokenInteractive
Приложение отображает приглашение для пользователя выбрать, какую учетную запись он хочет использовать (в приглашении отображается сообщение о подключении к windows), и мне не нужно вводить пароль, сразу после того, как я нажимаю на пользователя, он поет и получает токен.
После того как токен получен и он сохранен с использованием PublicClientApp.UserTokenCache
следующих входов в систему, даже если срок действия токена истек, мне не нужно выбирать учетную запись, под которой пользователь автоматически поет.
Я хочу избежать этого первого приглашения.
Я пробовал 2 варианта (ни один не работал):
- Пользователь, созданный в Windows AD и затем синхронизированный с AAD
- Пользователь, созданный в AAD, а затем созданный в Windows AD
Дополнительная информация:
- Рассматривать приложение как общедоступный c клиент, помеченный как Да в приложении регистрация.
- Я использовал одну и ту же регистрацию приложения в веб-приложении (SPA), и с помощью Microsoft Edge я могу войти без участия пользователя, он входит автоматически
Проблема только с приложение Winforms
Спасибо. ?