我正在尝试在正在构建的ASP.NetWeb窗体应用程序上实现Azure AD身份验证。
预期的流程是提示用户从Azure输入用户名/密码,该用户名/密码经过身份验证,然后传递回应用程序。
我的验证码如下
Private Shared app As PublicClientApplication
Shared Sub New()
Dim clientId As String = ConfigurationManager.AppSettings("ida:ClientId")
Dim redirectUri As String = ConfigurationManager.AppSettings("ida:RedirectUri")
Dim tenantId As String = ConfigurationManager.AppSettings("ida:Tenant")
Dim authorityUri = "https://login.microsoftonline.com/" & tenantId
Dim scopes As String() = New String() {"https://graph.microsoft.com/User.Read"}
app = PublicClientApplicationBuilder.Create(clientId).WithAuthority(authorityUri).WithTenantId(tenantId).WithRedirectUri(redirectUri).Build()
End Sub
Public Function GetAuthenticationResult() As String
Try
Dim scopes As String() = New String() {"https://graph.microsoft.com/User.Read"}
Dim result As Microsoft.Identity.Client.AuthenticationResult = app.AcquireTokenInteractive(scopes).WithPrompt(Prompt.ForceLogin).ExecuteAsync().Result
Return result.Account.Username
Catch ex As Exception
Err.Clear()
Return "-"
Exit Function
End Try
End Function
Private Sub BtnConnectWithAzure_Click(sender As Object, e As EventArgs) Handles BtnConnectWithAzure.Click
Dim t As New Threading.Thread(AddressOf AuthenticateUser)
t.SetApartmentState(ApartmentState.STA)
t.Start()
End Sub
Private Sub AuthenticateUser()
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12
Dim app As New AuthenticationManager
Dim username As String = app.GetAuthenticationResult()
If username <> "-" Then
Response.Redirect(username)
End If
End Sub
但是,我得到以下错误消息:
错误类型:invalid_client。
错误描述:AADSTS7000218:请求体必须包含以下参数:'client_assertion'或'client_secret
我已在Azure AD门户上启用“允许公共客户端流”,但似乎无法解决问题
1条答案
按热度按时间vsikbqxv1#
“AADSTS7000218:请求体必须包含以下参数:'client_assertion'或'client_secret”
如果您在代码中使用公共客户端应用时,将“允许公共客户端流”设置为“是”,从而错过了在移动的和桌面应用平台中添加重定向URI,则通常会出现此错误。
我注册了一个Azure AD应用,并在**
Web
平台添加了重定向URI**,如下所示:当我运行下面的示例代码,使用interactive flow获取登录用户详细信息时,我得到了与下面相同的错误:
回复:
要解决此错误,请从
Web
平台中删除重定向URI,并将其添加到移动的和桌面应用平台中,如下所示:修改后再次运行代码示例,成功得到response,如下图所示:
回复:
在您的案例中,从
Web
平台中删除重定向URI,并将其添加到移动的和桌面应用平台中。