Identityserver4 如何使用IdentityServer 4发布长寿命只读令牌
我正在考虑如何进行后续工作Identityserver4 如何使用IdentityServer 4发布长寿命只读令牌,identityserver4,Identityserver4,我正在考虑如何进行后续工作 允许访问文件的API(存储API) 门户页面(SPA使用隐式授权) 身份服务器 这样,用户就可以通过隐式授权登录门户。根据identity server中的此客户端配置,门户现在有一个短期引用令牌 new Client { ClientId = "Portal", ClientName ="Portal", ClientUri = "https://example.com", AllowAccessTokensViaBrowser =
new Client
{
ClientId = "Portal",
ClientName ="Portal",
ClientUri = "https://example.com",
AllowAccessTokensViaBrowser = true,
RequireClientSecret = false,
RequireConsent=false,
AccessTokenType = AccessTokenType.Reference,
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
IdentityServerConstants.StandardScopes.Email,
"api1"
},
}
...
然后,我希望用户能够获得一个公共访问令牌,他可以将该令牌包含在永久链接中,与朋友共享他的文件,还可以创建新令牌,并根据他的要求再次撤销它们。但是这些标记应该是只读的
我读了一些关于长寿命参考标记的文章,并得出结论,这就是我所需要的。但是我不想更改上面用于与用户交互流的客户端,因为我希望他们的令牌是短期的
我该怎么办
ClientId=Portal1
并设置AccessTokenLifetime=infinity
services.AddAuthentication().AddIdentityServerAuthentication((options) =>
{
options.Authority = opidc.Authority;
options.RequireHttpsMetadata = true;
options.EnableCaching = false;
options.TokenRetriever = StorageServiceMiddleware.TokenRetriver;
options.ApiName = "api1";
options.ApiSecret = "secret";
});
我得到的印象是ApiName是单数的,并不是真正用来处理多种类型的读写作用域。那个么,如何在aspnet核心中使用授权处理程序配置它呢
同样,这里的目标是创建一个用户可以创建和撤销令牌的服务,例如第三方服务可以代表用户消耗资源
更新延期补助金
如果为长寿命引用令牌创建单独的客户端,则可以创建一个端点,该端点使用扩展授权从短命令牌创建长寿命令牌。这有意义吗