MVC5 Azure广告IDX21323

cbeh67ev  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(124)

我的Azure免费订阅已过期。我已被添加到我公司的Azure订阅中,但我无法再通过使用AD的Oauth2使用SSO。
VS 2017报告了0个订阅,当我转到"管理我的订阅“时,它已列出,但我无法启用它“服务器资源管理器不支持此订阅”。
我假设我需要在这一点上更新我们公司Azure订阅的一些东西,但我不知道从管理层要求订阅更新什么。
在我的免费订阅用完之前,这工作得完美无缺。
我尝试了以下SO问题:
使用Kentor。OwinCookieSaver:IDX21323 OpenIdConnectProtocolValidationContext.Nonce was null, OpenIdConnectProtocolValidatedIdToken.Paylocad.Nonce was not null
IDX21323 OpenIdConnectProtocolValidationContext.Nonce was null, OpenIdConnectProtocolValidatedIdToken.Paylocad.Nonce was not null
我已尝试以下Microsoft文档:https://learn.microsoft.com/en-us/azure/active-directory/develop/vs-active-directory-add-connected-service
我创建了一个新的MVC 5项目,并添加了Azure AD连接服务,结果相同。
我还清除了我的cookie,并在VS 2017中执行了“清理”。

public void ConfigureAuth(IAppBuilder app)
    {

        app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType);

        app.UseCookieAuthentication(new CookieAuthenticationOptions());

        app.UseOpenIdConnectAuthentication(
            new OpenIdConnectAuthenticationOptions
            {
                ClientId = clientId,
                Authority = authority,
                PostLogoutRedirectUri = postLogoutRedirectUri
            });
    }

下面是我的例外:“/”应用程序中的服务器错误。
IDX 21323:RequireNonce为“[PII被隐藏]”。OpenIdConnectProtocolValidationContext.Nonce为空,OpenIdConnectProtocol.ValidatedIdToken.负载.Nonce不为空。无法验证Nonce。如果不需要检查Nonce,请将OpenIdConnectProtocolValidator.RequireNonce设置为“false”。请注意,如果找到“Nonce”,则将对其进行计算。

更新

我也试过这个,我想我找到了部分问题,但我仍然没有解决方案...
https://github.com/Azure-Samples/active-directory-dotnet-webapp-openidconnect/wiki/The- 'nonce'-在jwt记号中找到的不符合预期的nonce
从上面链接中的源代码:方法调用:我的身份连接验证处理程序.检索Nonce(微软.身份模型.协议.开放身份连接.开放身份连接消息消息)
行:字符串nonceCookie =请求.Cookies[nonceKey]; OwinRequest. Cookie为空...
我还更新了我所有的Owin包从版本4.0到4.1没有任何变化。

qgelzfjb

qgelzfjb1#

当对应用程序的请求不包含nonce cookie时,会发生上述错误。您可以使用下面的说明捕获包含该错误的Fiddler跟踪。
http://blogs.aaddevsup.xyz/2018/09/12/capture-https-traffic-with-http-fiddler/
此外,请尝试以下操作:

app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions()
    {
        Notifications = new OpenIdConnectAuthenticationNotifications()
        {
            AuthenticationFailed = AuthenticationFailedNotification<OpenIdConnect.OpenIdConnectMessage, OpenIdConnectAuthenticationOptions> authFailed =>
            {
                if (authFailed.Exception.Message.Contains("IDX21323"))
                {
                    authFailed.HandleResponse();
                    authFailed.OwinContext.Authentication.Challenge();
                }

                await Task.FromResult(true);
            }
        }
    });

其他参考:
IDX21323 OpenIdConnectProtocolValidationContext.Nonce was null, OpenIdConnectProtocolValidatedIdToken.Paylocad.Nonce was not null
希望能有所帮助。

相关问题