私はカスタム認証を使用してJWTトークンを生成しています。Azureモバイルアプリ、認証は機能しますが、トークンの有効期限は機能しません
すべてのサービスに投稿すると、承認属性には[Authorize(Roles = "Admin")]
と表示され、この役割を持たないユーザーには許可エラーが発生しています(良い!)。トークンの生成とポストバックが機能することがわかりました。
ただし、トークンが期限切れになると何も起こりません。私はローカルでテストしていると私はエラーを期待してい
JwtSecurityToken token = AppServiceLoginHandler.CreateToken(
new Claim[] { new
Claim(JwtRegisteredClaimNames.Sub, assertion["username"]) },
mySigningKey,
myAppURL,
myAppURL,
// Setting very short time to test expiration
TimeSpan.FromSeconds(10));
:
app.UseAppServiceAuthentication(new AppServiceAuthenticationOptions()
{
SigningKey = ConfigurationManager.AppSettings["authSigningKey"],
ValidAudiences = new[] { ConfigurationManager.AppSettings["authAudience"] },
ValidIssuers = new[] { ConfigurationManager.AppSettings["authIssuer"] },
TokenHandler = config.GetAppServiceTokenHandler()
});
と:私は例外のいくつかの並べ替えを取得する必要がありながら、それが有効なトークンとして扱われ、私のコードはこれです期限切れのトークンを示すクライアントに送信されます。私は間違って何をしていますか?
時間の無駄な調査の後、これが解決策でした。 Azureチームは5分以内に例外や何らかの警告を追加する必要があります。良い点。 – Adam
私は15分のクロックスキューを考慮することを推奨しますが、その数はばかげています。また、サーバー(少なくともS/O上のさまざまな記事に従っています)は、<3秒以内の時間スキューとほぼ同期しています。 –