我正在尝试通过 Microsoft 身份 Web 库的 Itokenacquisition 获取 azure devops 令牌。当范围存在于 enabletokenacquisitiontocalldownstreamapi 在启动文件中并且当我已经登录到应用程序时,我能够生成令牌。当我退出应用程序并再次登录时,它会要求管理员同意。不确定行为。第二次登录时,它包含 ado 范围。
答案 0 :(得分:0)
在网络应用程序和网络 API 中使用令牌缓存序列化程序。它们提供 用于存储令牌的分布式数据库或缓存系统。
<块引用>当您使用适用于 .NET 的 Microsoft 身份验证库获取访问令牌时
(MSAL.NET),令牌被缓存。当应用程序需要令牌时,
它应该首先调用 AcquireTokenSilent
方法来验证
可接受的令牌在缓存中。
有关 AcquireTokenSilent 的详细信息,请参阅 Acquire a token from cache。
.AddInMemoryTokenCaches();
:
示例:using Microsoft.Identity.Web;
public class Startup
{
const string scopesToRequest = "user.read";
public void ConfigureServices(IServiceCollection services)
{
// code before
services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(Configuration)
.EnableTokenAcquisitionToCallDownstreamApi(new string[] { scopesToRequest })
.AddInMemoryTokenCaches();
// code after
}
// code after
}
app.UseAuthentication();
AddInMemoryTokenCaches
接受类型为可选的参数
MsalMemoryTokenCacheOptions
使您能够指定持续时间
之后缓存条目将过期,除非它被使用。
有关详细信息,请参阅 msal-net-token-cache-serialization
prompt=consent
参数。您可以不包含该参数。参考: