2016-09-20 6 views
1

Ich befolge die Dokumentation auf: https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-dotnet-backend-how-to-use-server-sdk/, um benutzerdefinierte Authentifizierung zu erstellen. Ich frage mich, was ist das SginingKey Format in dem folgenden Code-Schnipsel:Azure Apps Benutzerdefinierte Authentifizierung SigningKey

app.UseAppServiceAuthentication(new AppServiceAuthenticationOptions() 
{ 
    // Here 
    SigningKey = ConfigurationManager.AppSettings["authSigningKey"], 
    ValidAudiences = new[] { ConfigurationManager.AppSettings["authAudience"] }, 
    ValidIssuers = new[] { ConfigurationManager.AppSettings["authIssuer"] }, 
    TokenHandler = config.GetAppServiceTokenHandler() 
}); 

Und:

JwtSecurityToken token = AppServiceLoginHandler.CreateToken(
new Claim[] { new 
Claim(JwtRegisteredClaimNames.Sub, assertion["username"]) }, 
       // And here 
       mySigningKey, 
       myAppURL, 
       myAppURL, 
       TimeSpan.FromHours(24)); 

Ist es ein, Base64String? Normale Zeichenfolge? Ich habe festgestellt, dass in einigen verstreuten Beispielen manchmal ein Byte-Array in Base64String konvertiert wird.

Was ist das richtige String-Format und wie kann ich einen Testwert generieren?

Antwort

2

Der Signaturschlüssel ist eine hexadezimale Zeichenfolge. Sie können einen beliebigen Wert für Testzwecke verwenden, vorausgesetzt, dass der Schlüssel zum Generieren von JWT-Tokens mit dem Schlüssel identisch ist, der für die Gültigkeitsprüfung verwendet wurde.

Sie können den in einem Azure-Web oder einer mobilen App verwendeten Wert abrufen, indem Sie einen Browser mit https://your_app_name.scm.azurewebsites.net/Env.cshtml#envVariables öffnen und den Wert WEBSITE_AUTH_SIGNING_KEY finden.

+0

Vielen Dank für Ihre Antwort. Ihre Antwort widerspricht der obigen Antwort, die besagt, dass Sie Base64 angeben können. Wie sicher bist du? – Adam

+0

Ich habe mit dem Ingenieur überprüft - der Wert kann entweder hexadezimal oder base64 sein. Der von Azure automatisch zugewiesene Wert ist eine hexadezimale Zeichenfolge. –

0

Es ist alles, was Sie verwenden, um den Schlüssel zu signieren. Wenn Sie eine Base64-Zeichenfolge angeben (was normal ist), dann ist es das. Beachten Sie, dass der Abschnitt nur verwendet wird, wenn Sie den Dienst lokal ausführen. Es wird automatisch für Sie ausgeführt, wenn es in Azure App Service ausgeführt wird.

+0

Also, wenn ich Base64 angeben, dann könnte ich es einfach in meinen beiden Beispielen ohne weitere Umwandlung von einem Typ zum anderen zuweisen? – Adam

Verwandte Themen