2016-04-22 2 views
0

Сохранение KeyForHmacSha256, TokenIssuer, TokenAudience и TokenLifetimeMinutes в статическом хранилище - это наилучшая практика или чтение этих значений из файла конфигурации.Сохранение токена JWT в статичной подаче - лучшая практика?

public class SecurityConstants 
{ 
    public static readonly byte[] KeyForHmacSha256 = new byte[64]; 

    public static readonly string TokenIssuer = string.Empty; 

    public static readonly string TokenAudience = string.Empty; 

    public static readonly double TokenLifetimeMinutes = 1; 

    static SecurityConstants() 
    { 
     RNGCryptoServiceProvider cryptoProvider = new RNGCryptoServiceProvider(); 
     cryptoProvider.GetNonZeroBytes(KeyForHmacSha256); 

     TokenIssuer = "issuer"; 

     TokenAudience = "http://localhost:90"; 
    } 
} 

ответ

0

Как и в случае с чем-либо, ответ «это зависит».

Я бы, конечно, сделал аргумент, что переменная KeyForHmacSha256 извлекается из файла конфигурации или переменной среды, чтобы не допустить ее из-под контроля источника.

Лично я обычно динамически выхожу в эмитенте и аудитории. Эмитент вытаскивается из среды, поэтому мне не нужно вручную устанавливать его в каждом развертывании, а аудитория определяется тем, кто запрашивает токен.

Срок службы токенов имеет лучший вариант для просто статического определения. Если вам нужно сделать его динамичным, вам нужно будет его обработать, но его установка явно не является проблемой безопасности.

Смежные вопросы