带有Keycloak的.NET MVC(剃刀)身份验证

时间:2019-04-09 14:19:23

标签: c# asp.net-mvc razor openid-connect keycloak

我们正在基于Razor框架的现有.NET应用程序中实现新的授权机制。作为身份提供者,我们想使用Keycloak,有一位同事向我们推荐。

我们遵循了本教程中的说明: Keycloak Owin ASP.NET MVC Tutorial

我们已经安装了Keycloak并自定义了Startup.cs,以准备用于KeycloakAuthentication的应用程序

public void ConfigureAuth(IAppBuilder app) {    
    const string persistentAuthType = "keycloak_cookies";
    app.UseCookieAuthentication(new CookieAuthenticationOptions {
                AuthenticationType = persistentAuthType
    });

    app.UseKeycloakAuthentication(new KeycloakAuthenticationOptions {
        Realm = "master",
        ClientId = "eservice",
        ClientSecret = "<<client-Secret>>",
        VirtualDirectory = "",
        KeycloakUrl = "<Keycloak URL>>",
        SignInAsAuthenticationType = persistentAuthType,
        AuthenticationType = persistentAuthType,
        UseRemoteTokenValidation = true,
        DisableAudienceValidation = true, 
        DisableIssuerValidation = true
    });
 }

Keycloak配置: Keycloak configuration

启动应用程序时,我们会看到典型的Keycloak登录屏幕。但是登录后,我们收到以下错误消息:

  

[SecurityTokenSignatureKeyNotFoundException:IDX10501:签名验证失败。无法匹配“孩子”:“ 4385f0fb-2c47-4787-aece-31937e230fd9”,令牌:“ {“ alg”:“ HS256”,“ typ”:“ JWT”,“孩子”:“ 4385f0fb-2c47-4787- aece-31937e230fd9“}。{” jti“:” 619b6b23-aa0f-40d3-9603-94445db7c763“,” exp“:1554799904,” nbf“:0,” iat“:1554798104,” iss“:” https:// ...

Keycloak似乎使用HS256算法,但是我们已经确定要设置RS256来对JWT进行签名。

0 个答案:

没有答案