Tag: firebase authentication

Firebase .NET令牌validation

处理使用Firebase进行某些数据存储的项目,我们的客户端请求使用C#.NET实现服务器。 我们在服务器上设置REST端点,以便客户端能够出于某些目的与其进行通信(例如,触发只能在服务器上运行的算法)。 Firebase建议我们通过ID令牌识别用户,如下所示: https : //firebase.google.com/docs/auth/server/verify-id-tokens#verify_id_tokens_using_a_third-party_jwt_library 由于没有支持令牌身份validation的官方.NET Firebase服务器SDK,我们已经使用第三方JWT库来执行此操作: https : //github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for -dotnet 根据Firebase文档中的规定,我们首先生成向服务器发送令牌。 在检查令牌中的几个不同字段后,我们使用kid字段从https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com获取公钥。 我们一直在浏览文档和StackOverflow很长一段时间,但是根据Firebase文档的规定,我们找不到使用此公钥来执行此操作的方法: 最后,确保ID令牌由与令牌的孩子声明相对应的私钥签名。 从https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com获取公钥,并使用JWT库validation签名。 Firebase文档实际上没有为此提供任何解释,我们正在使用的库的文档也没有。 因此,当我们给出的所有内容都是公钥时,我们甚至无法获得关于如何validation令牌是否由私钥签名的基本想法。 validation令牌是否由正确的私钥实际签名的最佳方法是什么?

Dialogflow,Google帐户链接和ASP.NET核心API(Webhook)

我是一名学生,正在为我的高级设计项目开发一个用于Google Home的NLP应用程序。 我特别想知道: 实施Google帐户关联的正确方法是什么?Google帐户关联提供了哪些通过Dialogflow注册/validation用户(即从初始查询到Google登录,返回Dialogflow,再到我的ASP.NET Core的数据流是什么样的API处理程序)。 帐户链接是否会将标题中的持有者令牌返回给Dialogflow,从而返回给我的处理程序? 或者我是否必须解析originalRequest JSON对象以获取用户信息,然后针对身份提供程序对其进行validation? 如何从我的webhook(ASP.NET Core API)中的Dialogflow请求中获取用户的信息? 我是否必须解析originalRequest JSON对象以获取用户信息? 根据我的理解,从这个很棒的教程 ,应该在validationJWT令牌后填充HttpContext 。 目前尚不清楚的是,如何从Dialogflow和Google帐户链接中获取令牌。 我感谢您提供的任何帮助或指导,以实现从Dialogflow到我的.NET webhook的用户身份validation/授权。

使用.NET Core的Firebase身份validation(JWT)

我正在开发一个处理Firebase身份validation的简单API – 稍后将用于Android客户端。 所以在Firebase控制台中,我启用了Facebook和Google登录方法,并创建了一个示例html页面,我可以使用它来测试登录方法 – 下一个函数由按钮调用: function loginFacebook() { var provider = new firebase.auth.FacebookAuthProvider(); var token = “”; firebase.auth().signInWithPopup(provider).then(function (result) { var token = result.credential.accessToken; var user = result.user; alert(“login OK”); user.getToken().then(function (t) { token = t; loginAPI(); }); }).catch(function (error) { var errorCode = error.code; var errorMessage = error.message; alert(errorCode + ” – ” […]

Firebase身份validationasp.net核心

成功登录Firebase后,我们收到了JWT令牌。 为了向我的asp.net应用程序添加授权,我尝试将JwtBearerAuthentication添加到我的中间件。 我尝试了以下JwtBearerOptions: var options = new JwtBearerOptions { Audience = “myApp”, Authority = “https://securetoken.google.com” }; 和 var options = new JwtBearerOptions { Audience = “myApp”, Authority = “https://securetoken.google.com/myApp” }; 不幸的是,这不起作用。 我的Auhtorityurl可能不正确。 有谁知道Auhtorityurl是否正确?

Firebase 3:使用.net和c#创建自定义身份validation令牌

我正在尝试使用自定义令牌实施Firebase 3身份validation机制(如https:// firebase.google.com/docs/auth/server/create-custom-tokens中所述)。 我的服务器是ASP.NET MVC Application。 因此,根据说明( https://firebase.google.com/docs/server/setup ),我为Firebase应用程序创建了一个服务帐户,并以“.p12”格式生成了一个密钥。 之后根据此处的说明( https://firebase.google.com/docs/auth/server/create-custom-tokens#create_custom_tokens_using_a_third-party_jwt_library )我尝试生成自定义令牌并使用之前收到的密钥对其进行签名步。 对于令牌生成,我使用了Microsoft的SystemIdentityModel.Tokens.Jwt库,因此代码如下所示: var now = DateTime.UtcNow; var tokenHandler = new JwtSecurityTokenHandler(); var key = new X509AsymmetricSecurityKey(new X509Certificate2(p12path, p12pwd)); var signinCredentials = new SigningCredentials(key, “http://www.w3.org/2001/04/xmldsig-more#rsa-sha256”, “http://www.w3.org/2001/04/xmlenc#rsa-sha256”); Int32 nowInUnixTimestamp = (Int32)(now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; var token = tokenHandler.CreateToken( issuer: serviceAccountEmail, audience: “https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit”, signingCredentials: signinCredentials, subject: new […]