2017-09-30 3 views
0

Ich habe gefunden, was scheint ein hübsches nettes kleines Paket zu sein, das Sie dapper + identity core 2.0 verwenden können. Da ich jedoch sehr neu in der Kernentwicklung bin, bin ich etwas verwirrt und weiß nicht, wie ich es lösen soll. Das Paket in Frage ist das:Einrichten von Dapper mit Identity Aspnetcore 2.0

Was das Paket fragt mich ist, einige kleinere Konfiguration einzurichten und dann sollten die Dinge einfach funktionieren. Hier sind die Anweisungen:

//To configure the DBMS connection, you can add a DapperIdentity and a DapperIdentityCryptography section to your configuration file like this: 

"DapperIdentity": { 
    "ConnectionString": "Connection string of your database", 
    "Username": "user", 
    "Password": "123" 
}, 
"DapperIdentityCryptography": { 
    "Key": "base64 32 bits key", 
    "IV": "base64 16 bits key" 
} 

Was wirklich verwirrt mich ist das DapperIdentityCryptography Teil. Erwartet es, dass ich es so belasse, wie es ist, oder erwartet es eine verschlüsselte Zeichenfolge? Ich verstehe es einfach nicht. Der andere Teil, über den ich verwirrt bin, ist, die Connection-Zeichenfolge in einem lesbaren Format zu belassen, ich habe das Gefühl, dass ich sie verschlüsseln soll, sie in den ConnectionString-Abschnitt einfügen und dann einen Schlüssel zum Entschlüsseln bereitstellen soll?

Antwort

2

Von dem, was ich im Moment sehen kann, wird der DapperIdentityCryptography Abschnitt nur zum Entschlüsseln der bereitgestellten Password innerhalb der DapperIdentity Abschnitt verwendet. Dies ist nicht sehr nützlich, da Sie sowohl das verschlüsselte Passwort als auch den Verschlüsselungsschlüssel in derselben Datei speichern, was fast dasselbe ist wie das Speichern des Passworts im Klartext.

Sie können das Passwort auch direkt im Klartext speichern und den Abschnitt DapperIdentityCryptography vollständig ignorieren.

Beispiel:

"DapperIdentity": { 
    "ConnectionString": "Server=myServerAddress;Database=myDataBase", 
    "Username": "MyUserName", 
    "Password": "MyPassword" 
} 

Wenn stattdessen Sie die Kryptographie Abschnitt verwenden möchten, benötigen Sie ein Paar Schlüssel und IV für AES zu generieren, Ihre db Kennwort verschlüsseln und speichern Schlüssel und IV innen Ihre appsettings.jsonkonvertiert in BASE64 Strings (oder Sie können das Befehlszeilenprogramm dotnet user-secrets in Ihrem Entwicklungscomputer wie die Dokumentation sagt) und Ihr Db-Passwort in UTF8 Zeichenfolge.

Dann wie dies Ihr appsettings.json aussehen kann (aus der Stichprobe):

"DapperIdentity": { 
    "ConnectionString": "Server=myServerAddress;Database=myDataBase", 
    "Username": "MyUserName", 
    "Password": "MYUTF8STRINGENCRYPTEDPASSWORD" 
}, 
"DapperIdentityCryptography": { 
    "Key": "FrFE/VtQ5pfNhGYVnyf65Sa6j4h6ion3ItkAnqLsnBE=", // this is an example, never use in production 
    "IV": "Ig/YU0tgUqI1u2VzWH0plQ==" // this is an example, never use in production 
} 
+0

Wie generiere ich ein Paar Schlüssel und IV für AES? Das ist neu für mich. – Bojan

+1

Es gibt zu viele Möglichkeiten, am einfachsten kann ich OpenSSL verwenden. Wenn Sie möchten, können Sie sie auch in .NET 4+ mithilfe des folgenden Ansatzes erstellen: https://stackoverflow.com/a/2512373/3670737 –

Verwandte Themen