Afte Login to okta page i am getting not found error in redirect url page.
My code in default.aspx(Login page)
If Not Request.IsAuthenticated Then
HttpContext.Current.GetOwinContext().Authentication.Challenge(
New AuthenticationProperties With
{
.RedirectUri = "/"
},
OpenIdConnectAuthenticationDefaults.AuthenticationType)
End If
I am using OIDC and asp.net web form .
This my Startup.cs file
Private ReadOnly _clientId As String = ConfigurationManager.AppSettings(“okta:ClientId”)
Private ReadOnly _redirectUri As String = ConfigurationManager.AppSettings(“okta:RedirectUri”)
Private ReadOnly _authority As String = ConfigurationManager.AppSettings(“okta:OrgUri”)
Private ReadOnly _clientSecret As String = ConfigurationManager.AppSettings(“okta:ClientSecret”)
Public Sub Configuration(ByVal app As IAppBuilder)
ConfigureAuth(app)
End Sub
Public Sub ConfigureAuth(ByVal app As IAppBuilder)
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie)
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType)
'app.UseCookieAuthentication(
'New CookieAuthenticationOptions With
'{.AuthenticationType = "Cookies",
' .CookieManager = New Microsoft.Owin.Host.SystemWeb.SystemWebChunkingCookieManager()
' })
app.UseCookieAuthentication(New CookieAuthenticationOptions())
app.UseOpenIdConnectAuthentication(New OpenIdConnectAuthenticationOptions With {
.ClientId = _clientId,
.ClientSecret = _clientSecret,
.Authority = _authority,
.RedirectUri = _redirectUri,
.ResponseType = OpenIdConnectResponseType.CodeIdToken,
.Scope = OpenIdConnectScope.OpenIdProfile,
.TokenValidationParameters = New TokenValidationParameters With {
.NameClaimType = "name"
},
.Notifications = New OpenIdConnectAuthenticationNotifications With {
.AuthenticationFailed = Function(context)
If context.Exception.Message.Contains("IDX21323") Then
context.SkipToNextMiddleware()
Return Task.FromResult(0)
End If
Return Task.FromResult(0)
End Function,
.AuthorizationCodeReceived = Async Function(n)
Dim tokenClient = New TokenClient($"{_authority}/v1/token", _clientId, _clientSecret)
Dim tokenResponse = Await tokenClient.RequestAuthorizationCodeAsync(n.Code, _redirectUri)
If tokenResponse.IsError Then
Throw New Exception(tokenResponse.[Error])
End If
Dim userInfoClient = New UserInfoClient($"{_authority}/v1/userinfo")
Dim userInfoResponse = Await userInfoClient.GetAsync(tokenResponse.AccessToken)
Dim claims = New List(Of Claim)(userInfoResponse.Claims) From {
New Claim("id_token", tokenResponse.IdentityToken),
New Claim("access_token", tokenResponse.AccessToken)
}
n.AuthenticationTicket.Identity.AddClaims(claims)
End Function,
.RedirectToIdentityProvider = Function(n)
If n.ProtocolMessage.RequestType = OpenIdConnectRequestType.Logout Then
Dim idTokenClaim = n.OwinContext.Authentication.User.FindFirst("id_token")
If idTokenClaim IsNot Nothing Then
n.ProtocolMessage.IdTokenHint = idTokenClaim.Value
End If
End If
Return Task.CompletedTask
End Function
}
})