在 IdentityServerAuthenticationOptions 客户端上更改 ApiName 后仍然适用于 Identity Server 4
After changing ApiName on IdentityServerAuthenticationOptions client still works with Identity Server 4
我是 Identity Server 4 的新手,我正在关注官方 QuickStarts。
文档建议尝试一下选项,这样人们就可以了解这一切是如何工作的。但是在我尝试了最后一个 "Further experiments" 点之后,我遇到了麻烦。
当我像这样更改 API Startup.cs 文件上的 ApiName 时:
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:5000",
RequireHttpsMetadata = false,
ApiName = "api2" //<-- this was api1
});
我仍在从客户端应用程序中获取结果(API 的 IdentityController 已执行,它 returns 用户声明的 json 数据。
阅读文档(也可能根据通用逻辑)我相信如果客户端应用程序获得与 API 所需范围不同的范围(又名 ApiName),它应该无法访问控制器。
我对流程的理解有误还是什么?
我也不确定这一点,但我认为 ApiName 不在范围内。如果您添加
AllowedScopes = {"api2"} 到选项,然后你会得到 "Forbidden" 作为结果。
我是 Identity Server 4 的新手,我正在关注官方 QuickStarts。
文档建议尝试一下选项,这样人们就可以了解这一切是如何工作的。但是在我尝试了最后一个 "Further experiments" 点之后,我遇到了麻烦。
当我像这样更改 API Startup.cs 文件上的 ApiName 时:
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:5000",
RequireHttpsMetadata = false,
ApiName = "api2" //<-- this was api1
});
我仍在从客户端应用程序中获取结果(API 的 IdentityController 已执行,它 returns 用户声明的 json 数据。
阅读文档(也可能根据通用逻辑)我相信如果客户端应用程序获得与 API 所需范围不同的范围(又名 ApiName),它应该无法访问控制器。
我对流程的理解有误还是什么?
我也不确定这一点,但我认为 ApiName 不在范围内。如果您添加
AllowedScopes = {"api2"} 到选项,然后你会得到 "Forbidden" 作为结果。