Я впервые работаю с Azure Active Directory B2C.Я разрабатываю приложение WPF / Desktop.
Вход в систему и выход из нее работали отлично, пока по непонятным причинам сегодня она перестала работать и теперь выдает следующее исключение при входе.
AADB2C90079: Clients must send a client_secret when redeeming a confidential grant.
Есть мнение, что мне нужно обновить токен, как указано в этом вопросе о переполнении стека: Пользовательские политики Azure B2C: неверный запрос, ошибка секрета клиента
Но я немалейшая подсказка, как это сделать.
Вот мой код входа в систему (Await PublicClientApp.AcquireTokenAsync (...) - это то, что вызывает исключение)
Public Async Function SignIn() As Task(Of Boolean)
Dim authResult As AuthenticationResult = Nothing
Dim accounts As IEnumerable(Of IAccount) = Await PublicClientApp.GetAccountsAsync()
Try
authResult = Await PublicClientApp.AcquireTokenAsync(ApiScopes, GetUserByPolicy(accounts, PolicySignUpSignIn), UIBehavior.SelectAccount, String.Empty, Nothing, Authority)
userProf = Await GetUserInformation()
SignInState = SignInStateEnum.SignedIn
Return True
Catch ex As MsalServiceException
Try
If ex.Message.Contains("AADB2C90118") Then
authResult = PublicClientApp.AcquireTokenAsync(ApiScopes, GetUserByPolicy(accounts, PolicySignUpSignIn), UIBehavior.SelectAccount, String.Empty, Nothing, AuthorityResetPassword).Result
userProf = GetUserInformation().Result
SignInState = SignInStateEnum.SignedIn
Return True
Else
logger.Error($"Error Acquiring Token:{Environment.NewLine}{ex}")
logger.Error("Exception Raised", ex)
userProf = Nothing
SignInState = SignInStateEnum.SignedOut
Return False
End If
Catch __unusedException1__ As Exception
logger.Error("Exception Raised", __unusedException1__)
userProf = Nothing
SignInState = SignInStateEnum.SignedOut
Return False
End Try
Catch ex As Exception
logger.Error($"Users:{String.Join(",", accounts.[Select](Function(u) u.Username))}{Environment.NewLine}Error Acquiring Token:{Environment.NewLine}{ex}")
logger.Error("Exception Raised", ex)
userProf = Nothing
SignInState = SignInStateEnum.SignedOut
Return False
End Try
End Function