你好,im使用IdentityServer 4,我有一个后台和移动应用程序,同时有独立的IdentityServer客户端和作用域。
后台用户使用带有CarSharing_Web
API范围和API资源的CarSharing
客户端。
移动应用程序用户使用带有CarSharing_WeRent
API范围和API资源的WeRent
客户端。
我想要的是,如果您想在CarSharing_WeRent
客户端上获得访问令牌,您只能通过在CarSharing_WeRent
客户端注册的用户获得它。
我不希望后台用户用后台帐户登录到mible。
在移动平台上,我使用的是/connect/token
api
这是我对邮递员的要求
发布于 2022-08-31 14:54:53
我不会修改令牌交换流,我要做的是确保只为使用WeRent
客户端id进行身份验证的用户授权CarSharing_WeRent
API范围。
IdentityServer4为用于验证请求的客户端id添加了一个声明,该声明称为client_id
。您可以创建一个授权策略,使用正确的值检查该声明,并将其附加到WeRent
控制器。
builder.Services.AddAuthorization(options => {
options.AddPolicy("WeRent", policy => {
policy.RequireClaim("client_id", "CarSharing_WeRent");
});
});
并在控制器上使用此方法:
[Authorize(Policy = "WeRent")]
public class WeRentController : ControllerBase {
...
https://stackoverflow.com/questions/73517565
复制相似问题