首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ASP.NET Core中集成防火墙身份验证

如何在ASP.NET Core中集成防火墙身份验证
EN

Stack Overflow用户
提问于 2021-12-06 13:35:28
回答 2查看 511关注 0票数 0

我有一个现有的ASP.NET Core应用程序,在这里我需要添加防火墙身份验证。是否可以将防火墙web用户界面集成到我的ASP.NET Core应用程序中?

EN

回答 2

Stack Overflow用户

发布于 2021-12-06 16:42:32

为了在ASP.NET Core应用程序中实现Firebase集成,您应该尝试两个教程。

这是Arno Waegemans的第一教程和Heather的第二

票数 0
EN

Stack Overflow用户

发布于 2021-12-12 05:55:10

JWT验证需要手动完成:来源

下面的代码正在验证FirebaseToken (JWT):

代码语言:javascript
复制
    //Download certificates from google
    HttpClient client = new HttpClient();
    var jsonResult = client.GetStringAsync("https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com").Result;

    //Convert JSON Result
    var x509Metadata = JObject.Parse(jsonResult)
                        .Children()
                        .Cast<JProperty>()
                        .Select(i => new x509Metadata(i.Path, i.Value.ToString()));

    //Extract IssuerSigningKeys
    var issuerSigningKeys = x509Metadata.Select(s => s.X509SecurityKey);

    //Setup JwtTokenHandler 
    var handler = new JwtSecurityTokenHandler();
    SecurityToken token;
    handler.ValidateToken(user.FirebaseToken, new TokenValidationParameters
    {
        IssuerSigningKeys = issuerSigningKeys,
        ValidAudience = "myApp",
        ValidIssuer = "https://securetoken.google.com/myApp",
        IssuerSigningKeyResolver = (arbitrarily, declaring, these, parameters) => issuerSigningKeys
    }, out token);

public class x509Metadata
{
    public string KID { get; set; }
    public string Certificate { get; set; }
    public X509SecurityKey X509SecurityKey { get; set; }

    public x509Metadata(string kid, string certificate)
    {
        KID = kid;
        Certificate = certificate;
        X509SecurityKey = BuildSecurityKey(Certificate);
    }

    private X509SecurityKey BuildSecurityKey(string certificate)
    {
        //Remove : -----BEGIN CERTIFICATE----- & -----END CERTIFICATE-----
        var lines = certificate.Split('\n');
        var selectedLines = lines.Skip(1).Take(lines.Length - 3);
        var key = string.Join(Environment.NewLine, selectedLines);

        return new X509SecurityKey(new X509Certificate2(Convert.FromBase64String(key)));
    }
}

参考:

https://developer.okta.com/blog/2019/04/30/store-data-firebase-aspnet-mvc-csharp

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70246361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档