将.net用户导入firebase
因此,要导入firebase,需要使用哈希函数正确解码密码。我们正在使用asp.net中的microsoft owen安全包。我在webconfig中有machineKey设置(我想这是我需要提供的hmac密钥?) 要导入firebase,我使用 (这是一个dev DB用户,所以我显示哈希值没关系)将.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
让用户导入记录=[
{
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?>')
}
});