IDX10214:使用Keycloak保护ASP.NET MVC时,观众验证失败错误

时间:2019-05-31 16:42:37

标签: c# asp.net-mvc keycloak

我对ASP.net不太熟悉。我已按照本link中的教程进行操作,以使用Keycloak保护asp.net mvc应用程序。 Keycloak在本地主机上运行。当我单击“关于”时,它将正确重定向到Keycloak登录页面,没有任何问题。当我正确输入用户名和密码,并且想要重定向以显示“关于”页面的内容时,会出现以下错误:

  

IDX10214:受众群体验证失败。受众群体:“帐户”。不匹配:validationParameters.ValidAudience:“空”或validationParameters.ValidAudiences:“空,应用程序”。

     

异常详细信息:   Microsoft.IdentityModel.Tokens.SecurityTokenInvalidAudienceException:   IDX10214:观众验证失败。受众群体:“帐户”。没有   匹配:validationParameters.ValidAudience:“空”或   validationParameters.ValidAudiences:“ null,应用”。

当我使用“ DisableAudienceValidation = true”禁用受众验证标志时,将引发签名验证失败错误:

  

DX10501:签名验证失败。无法匹配“孩子”:   '87783715-a04c-42c6-b400-827febc23d12',令牌:   '{“ alg”:“ HS256”,“ typ”:“ JWT”,“ kid”:“ 87783715-a04c-42c6-b400-827febc23d12”}。{“ jti”:“ 665f8127-53ca-4e88-ad23-c9c18e5a1ac1 “,” exp“:1559327065,” nbf“:0,” iat“:1559325265,” iss“:” http://localhost:8080/auth/realms/demo“,” aud“:” http://localhost:8080/auth/realms/demo“,” sub“:” dc6ea95d -c1b9-42c4-8998-49bf7f001c3b“,” typ“:”刷新“,” azp“:” app“,” auth_time“:0,” session_state“:” 8406120f-9609-457b-8603-3df4e300ee8b“,” realm_access “:{” roles“:[” offline_access“,” admin“,” uma_authorization“,” user“]},” resource_access“:{” account“:{” roles“:[” manage-account“,” manage-帐户链接”,“查看配置文件”]}},“范围”:“ openid”   电子邮件个人资料”}”。

     

异常详细信息:   Microsoft.IdentityModel.Tokens.SecurityTokenSignatureKeyNotFoundException:   IDX10501:签名验证失败。无法匹配“孩子”:   '87783715-a04c-42c6-b400-827febc23d12',令牌:   '{“ alg”:“ HS256”,“ typ”:“ JWT”,“ kid”:“ 87783715-a04c-42c6-b400-827febc23d12”}。{“ jti”:“ 665f8127-53ca-4e88-ad23-c9c18e5a1ac1 “,” exp“:1559327065,” nbf“:0,” iat“:1559325265,” iss“:” http://localhost:8080/auth/realms/demo“,” aud“:” http://localhost:8080/auth/realms/demo“,” sub“:” dc6ea95d -c1b9-42c4-8998-49bf7f001c3b“,” typ“:”刷新“,” azp“:” app“,” auth_time“:0,” session_state“:” 8406120f-9609-457b-8603-3df4e300ee8b“,” realm_access “:{” roles“:[” offline_access“,” admin“,” uma_authorization“,” user“]},” resource_access“:{” account“:{” roles“:[” manage-account“,” manage-帐户链接”,“查看配置文件”]}},“范围”:“ openid”   电子邮件个人资料”}'。

我用我的公司Keycloak服务器测试了该应用程序,该服务器运行在https上,并且还可以,但是当我在本地主机上使用Keycloak服务器对其进行测试时,会引发这些错误。然后,我比较本地主机的Keycloak服务器和公司的Keycloak之间的设置。所有设置都相同。

这是我的Startup.cs:

public void Configuration(IAppBuilder app)
{
    const string persistentAuthType = "AspnetApp_cookie_auth";

    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType = persistentAuthType
    });
    app.SetDefaultSignInAsAuthenticationType(persistentAuthType); 

    app.UseKeycloakAuthentication(new KeycloakAuthenticationOptions
    {
        ClientId = "app",
        ClientSecret = "my-client-secret-key",
        VirtualDirectory = "", 

        Realm = "demo", // Don't change this unless told to do so
        KeycloakUrl = "http://localhost:8080/auth/",

        SignInAsAuthenticationType = persistentAuthType, 
        AuthenticationType = "AspnetApp_keycloak_auth", 
        //DisableAudienceValidation = true,
    });
}

这是我的HomeController.cs:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    [Authorize]
    public ActionResult About()
    {
        ViewBag.Message = "Your application description page.";

        return View();
    }

    public ActionResult Contact()
    {
        ViewBag.Message = "Your contact page.";

        return View();
    }
}

0 个答案:

没有答案