2016-09-20 43 views
1

私は以下のドキュメントに従っています: https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-dotnet-backend-how-to-use-server-sdk/カスタム認証を構築します。私は、次のコードスニペットでSginingKeyフォーマットが何であるか疑問に思って:Azure Appsカスタム認証SigningKey

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

そして:

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

が、それは、Base64Stringますか?通常の文字列ですか?分散した例では、バイト配列がBase64Stringに変換されることがあります。

正しい文字列形式とは何ですか。また、テスト値を生成するにはどうすればよいですか?

答えて

2

署名鍵は、16進数でエンコードされた文字列です。 JWTトークンを生成するために使用されるキーが、それらを検証するために使用されるキーと同じであれば、テスト目的に任意の値を使用できます。

ブラウザを開いてhttps://your_app_name.scm.azurewebsites.net/Env.cshtml#envVariablesに接続し、WEBSITE_AUTH_SIGNING_KEYの値を見つけることで、Azure Webまたはモバイルアプリケーションで使用される値を取得できます。

+0

ありがとうございます。あなたの答えは上記の答えに矛盾し、Base64を指定することができます。あなたはどうですか? – Adam

+0

エンジニアと確認しました。この値は、16進数または16進数のいずれかになります。 Azureによって自動的に割り当てられた値は、16進数でエンコードされた文字列です。 –

0

これは、鍵に署名するために使用しているものです。あなたがBase64文字列を指定している場合(これは正常です)、それがそれです。 UseAppServiceAuthenticationセクションは、サービスをローカルで実行している場合にのみ使用されます。これは、Azure App Service内で実行しているときに自動的に処理されます。

+0

したがって、私がBase64を指定した場合、どちらのタイプからそれ以上の変換をせずに両方の例で割り当てることができますか? – Adam

関連する問題