Я пытаюсь запустить процесс.
- войти на портал A с аутентификацией Azure.
- Внутри портала есть ссылка на систему навигации "A .
Возможно ли это сделать? как я пытался с помощью следующего метода, но я сталкиваюсь с ошибкой в коде ниже, который является нулевым значением в «коде»
Dim AR As AuthenticationResult = AC.AcquireTokenByAuthorizationCodeAsync(code, New Uri(redirectUri), cc).Result
Благодарю за помощь.
Запуск. vb
Public Shared clientId As String = ConfigurationManager.AppSettings("ida:ClientId")
Private Shared appKey As String = ConfigurationManager.AppSettings("ida:ClientSecret")
Public Shared aadInstance As String = ConfigurationManager.AppSettings("ida:AADInstance")
Private Shared redirectUri As String = ConfigurationManager.AppSettings("ida:RedirectUri")
Public Sub ConfigureAuth(ByVal app As IAppBuilder)
app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType)
app.UseCookieAuthentication(New CookieAuthenticationOptions())
app.UseOAuth2CodeRedeemer(New OAuth2CodeRedeemerOptions With {
.ClientId = clientId,
.ClientSecret = appKey,
.RedirectUri = redirectUri
})
app.UseOpenIdConnectAuthentication(New OpenIdConnectAuthenticationOptions With {
.ClientId = clientId,
.Authority = String.Format(CultureInfo.InvariantCulture, aadInstance, "common", "/v2.0"),
.RedirectUri = redirectUri,
.Scope = "openid profile offline_access Mail.Read",
.PostLogoutRedirectUri = redirectUri,
.ResponseType = "code",
.TokenValidationParameters = New TokenValidationParameters With {
.ValidateIssuer = False
},
.Notifications = New OpenIdConnectAuthenticationNotifications With {
.AuthorizationCodeReceived = AddressOf OnAuthorization,
.AuthenticationFailed = AddressOf OnAuthenticationFailed
}
})
End Sub
Logon.aspx.vb (который зарегистрирован в URI перенаправления azure)
Private Shared clientId1 As String = ConfigurationManager.AppSettings("ida:ClientId")
Private Shared appKey As String = ConfigurationManager.AppSettings("ida:ClientSecret")
Public Shared aadInstance As String = ConfigurationManager.AppSettings("ida:AADInstance")
Private Shared redirectUri As String = ConfigurationManager.AppSettings("ida:RedirectUri")
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
Dim redirectUri As String = SF.Config.GetRedirectLink()
Dim authorityUri As String = String.Format(CultureInfo.InvariantCulture, aadInstance, "common", "/v2.0") 'aadInstance
Dim code As String = Request.Params("code")
If code IsNot Nothing Then
Dim TC As TokenCache = New TokenCache()
Dim AC As AuthenticationContext = New AuthenticationContext(authorityUri, TC)
Dim cc As ClientCredential = New ClientCredential(clientId1, appKey)
Dim AR As AuthenticationResult = AC.AcquireTokenByAuthorizationCodeAsync(code, New Uri(redirectUri), cc).Result
Session("ThrAzureLogin") = True
Session("authResult") = AR
Response.Redirect("Redirect.aspx")
Else
Session("ThrAzureLogin") = True
Session("authResult") = Nothing
Response.Redirect("Login.aspx")
End If
Catch ex As Exception
Throw
End Try
End Sub