7

我已经在我的 api 网关中拥有了与我的应用程序一起使用的访问令牌。

var identityUrl = Configuration.GetValue<string>("urls:identity");
        services.AddAuthentication(options =>
        {
            options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;

        }).AddJwtBearer(options =>
        {
            options.Authority = Configuration.GetValue<string>("IdentityUrlExternal");
            options.RequireHttpsMetadata = false;
            options.Audience = "api1";              
            options.Events = new JwtBearerEvents()

AddJwtBearer 中的观众选项指的是什么。那是指 ClientId 还是 ApiScope。目前,我是根据我的移动应用程序设置的范围来与 api 网关进行通信的。如果我更改为某些东西,例如从移动设备(ro.client)发送的客户端 ID,我将无法访问授权的 api 功能。

我想清楚地了解我的设置是否正确。谢谢

另外,如何在controller下的ASP.net mvc core项目中添加Authorized Scope。

4

1 回答 1

3

下面的链接会带你去解释: http ://docs.identityserver.io/en/latest/topics/apis.html

ApiName 属性检查令牌是否具有匹配的受众(或短 aud)声明。

在 IdentityServer 中,您还可以将 API 细分为多个范围。如果您需要这种粒度,您可以使用 ASP.NET Core 授权策略系统来检查范围。

于 2019-02-22T10:57:39.007 回答