У меня есть проект VB.net с аутентификацией Windows. Я намереваюсь преобразовать аутентификацию в SSO с корпоративным активным каталогом. Я просмотрел несколько страниц Stackoverflow, а также несколько блогов и видео на Youtube. Я почти там сейчас. И нужна твоя помощь на последнем шаге.
Я создал новый проект MVC (для проверки единого входа) и выбрал аутентификацию в качестве «рабочей учетной записи». И SSO работает отлично. Затем я скопировал настройки web.config и код startup.auth.vb. Удалено несколько ошибок, которые я получил изначально. Теперь мое веб-приложение (asp.net MVC) запускается, но все равно показывает идентификатор пользователя Windows. Он просто не запрашивает детали AD.
Я отлаживал два проекта параллельно (мой оригинальный, тестовый SSO один). В тестовом проекте SSO приложение запрашивает детали AD после следующей строки. Однако в моем первоначальном проекте этого не произошло.
app.UseOpenIdConnectAuthentication(New OpenIdConnectAuthenticationOptions() With {
.ClientId = clientId,
.Authority = Authority,
.PostLogoutRedirectUri = postLogoutRedirectUri,
.Notifications = New OpenIdConnectAuthenticationNotifications() With {
.AuthorizationCodeReceived = Function(context)
Dim code = context.Code
Dim credential As New ClientCredential(clientId, appKey)
Dim signedInUserID As String = context.AuthenticationTicket.Identity.FindFirst(ClaimTypes.NameIdentifier).Value
Dim authContext As New AuthenticationContext(Authority, New ADALTokenCache(signedInUserID))
Dim result As AuthenticationResult = authContext.AcquireTokenByAuthorizationCodeAsync(code, New Uri(HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Path)), credential, graphResourceId).Result
Return Task.FromResult(0)
End Function
}
})
Любая помощь высоко ценится. Заранее спасибо.