ASP.NET Web Api 2中使用OAuth承载令牌和OAuthBearerAuthenticationOptions时的令牌缓存机制

时间:2017-02-12 15:14:44

标签: oauth asp.net-web-api2 openid claims-based-identity bearer-token

在我的startup.auth.cs里面我做了:

app.UseOAuthBearerAuthentication()

我向它提供了一个OAuthBearerAuthenticationOptions,其中包含一系列使用Azure Active Directory B2C租户量身定制的选项。这本身运作良好。我可以使用我的MVC应用程序登录,获取一个不记名令牌并调用此Web Api 2项目,我看到一个有效的身份验证身份。一切都很好。

然而,我需要做的是在验证过程中再做一些工作,并为身份添加一些自定义声明。我想弄清楚哪个地方最适合这样做。例如,在我使用OpenID的MVC应用程序中,我可以使用OpenIdConnectAuthenticationOptions的OnSecurityTokenValidated通知来添加声明。这个带有新声明的新令牌/身份似乎在整个神秘的OWIN浩瀚的地方被缓存,以便后续呼叫的身份具有我额外增加的声明,而不必每次都通过OnSecurityTokenValidated。

对于OAuthBearerAuthenticationOptions对应项,我尝试在自定义OAuthBearerAuthenticationProvider的ValidateIdentity()中添加声明。这样做有效,但我不希望每次调用都会产生性能损失,因为每次都会触发此回调,而不是在令牌验证期间触发一次。

所以我的问题是,如果在所有Oauth Bearer令牌类和OWIN中间件中都有一些地方,我可以这样做,这类似于OpenID对应的ValidateToken(),或者我是否必须编写自己的缓存机制?

感谢。

0 个答案:

没有答案