将.net用户导入firebase

将.net用户导入firebase,firebase,firebase-authentication,firebase-admin,Firebase,Firebase Authentication,Firebase Admin,因此,要导入firebase,需要使用哈希函数正确解码密码。我们正在使用asp.net中的microsoft owen安全包。我在webconfig中有machineKey设置(我想这是我需要提供的hmac密钥?) 要导入firebase,我使用 (这是一个dev DB用户,所以我显示哈希值没关系) 让用户导入记录=[ { uid:'afd698c4-4172-49f1-a6c4-77d175efbc1c', 电子邮件:“”, passwordHash:Buffer.from('APwDZFRV

因此,要导入firebase,需要使用哈希函数正确解码密码。我们正在使用asp.net中的microsoft owen安全包。我在webconfig中有machineKey设置(我想这是我需要提供的hmac密钥?)

要导入firebase,我使用 (这是一个dev DB用户,所以我显示哈希值没关系)

让用户导入记录=[
{
uid:'afd698c4-4172-49f1-a6c4-77d175efbc1c',
电子邮件:“”,
passwordHash:Buffer.from('APwDZFRV6tnEREBsmECj2LMkgUZAqfOAb9/u0nMra5WrHgVG0F7ggFQABt0Qdtsw3w='),
passwordSalt:Buffer.from('apwdzfrav6tnerebs')
}
];
var admin=require(“firebase admin”);
var servicecomport=require(“./socket服务器/servicecomportkey.json”);
admin.initializeApp({
凭证:管理员凭证证书(serviceAccount),
数据库URL:“
});
admin.auth().importUsers(userImportRecords{
散列:{
算法:“PBKDF2_SHA256”,
轮数:10000,
盐分离器:16,
//必须在字节缓冲区中提供。
关键字:Buffer.from(“”)
}
});
这将导入,但密码不起作用。我假设我的salt和/或hash键有问题。我在asp.net文档中没有看到它在哪里设置密钥,但我知道我有machineKey设置,所以我认为这就是它使用的。(我们有另一台服务器验证令牌本身)


我相当肯定算法和轮次是正确的(从文档中提取)。我知道salt在密码散列的前面,我想它是16个字节。但是在这个设置中,我是保留散列中包含的16个字节,还是需要删除它们?我是否删除了正确数量的字符,或者是否需要将此字符串放入内存并手动提取16个字节。我觉得这太接近了。我只需要重新排列我的值。

非常确定SDK当前不支持salt首先出现的密码哈希。看见同时,尝试使用Firebase CLI。非常确定SDK当前不支持salt最先出现的密码哈希。看见同时尝试使用Firebase CLI。
<machineKey validationKey="<key>" decryptionKey="<decodeKey>" validation="HMACSHA256" />
   public void ConfigureOAuth(IAppBuilder app)
        {
            OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
            {   
                TokenEndpointPath = new PathString("/token"),                
                AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),                
#if DEBUG
                AllowInsecureHttp = true,
#endif
                Provider = new SimpleAuthorizationServerProvider()                
            };

            // Token Generation
            app.UseOAuthAuthorizationServer(OAuthServerOptions);            
            app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());


        }
let userImportRecords = [
    {
        uid: 'afd698c4-4172-49f1-a6c4-77d175efbc1c',
        email: '<usersEmail>',     
        passwordHash: Buffer.from('APwDZFRV6tnEREBsmECj2LMkgUZAqfOAb9/u0nMra5WrHgVG0F7ggFQABt0Qdtsw3w=='),
        passwordSalt: Buffer.from('APwDZFRV6tnEREBs')
    }
];



var admin = require("firebase-admin");

var serviceAccount = require("./socket-server/serviceAccountKey.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "<DB URL>"
});


admin.auth().importUsers(userImportRecords, {
    hash: {
        algorithm: 'PBKDF2_SHA256',
        rounds: 10000,
        saltSeparator: 16,
        // Must be provided in a byte buffer.
        key: Buffer.from('<webconfig machine decryptionKey key?>')
    }
});