Mvd*_*vdD 3 c# authentication azure azure-active-directory adal
我有一个MVC应用程序,我用它OpenIdConnectAuthenticationMiddleware来验证用户对AAD.此MVC应用程序使用一些需要用户身份验证上下文的后端服务.
如果我在AAD中单独注册这些服务,我可以使用它来获取令牌
AuthenticationContext.AcquireTokenSilentAsync.但是,使用AAD单独注册这些服务似乎是错误的,因为它们需要用户单独同意它们(它们实际上是应用程序的一部分).
因此,当用户进行身份验证时,我想使用从AAD获得的JWT令牌,并将其用作承载令牌以调用下游服务.我意识到这些服务需要与MVC应用程序具有相同的受众.
但是我如何获得JWT令牌.ClaimPrincipal的第一个标识没有引导上下文.
小智 7
请注意,让您的服务承认具有相同受众群体的令牌会让您受到令牌转发攻击.我不建议这样做.此外,同意应该在单个页面中进行并且只需单击一次 - 因此就用户影响而言,没有太大差异.那就是说.如果您确实设置了它,则可以通过将标志切换为true来强制在bootstrapcontext中存在令牌SaveSignInToken.看到
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
ClientId = clientId,
Authority = authority,
TokenValidationParameters = new System.IdentityModel.Tokens.TokenValidationParameters{SaveSigninToken=true},
PostLogoutRedirectUri = postLogoutRedirectUri
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2457 次 |
| 最近记录: |