【发布时间】:2021-10-01 06:57:26
【问题描述】:
大致遵循Scott's 指南,我让它与授权代码流一起工作。但是,当我调查众所周知的时,我看到 junky_scope 被列为受支持。我的客户端和 API 范围/资源声明如下。访问令牌中的声明将基于IDS4's GitHub 规定的 API 范围。
public static IEnumerable<ApiScope> Obtain()
{
yield return new ApiScope("junky_scope", "Junky Scope"); ...
}
yield return new ApiResource
{
Name = "blopp", ...
Scopes = new List<string> { "awesome_scope", "junky_scope", ... }
};
yield return new Client
{
ClientId = "spa_client",
AllowOfflineAccess = true,
AllowedGrantTypes = GrantTypes.Code, ...
AllowedScopes = new List<string> { "openid", "awesome_scope", "junky_scope" }
};
调用将我的代码交换为令牌的调用会生成一个有效的访问令牌,但仅包含 openid 和 offline_access 范围。使用刷新令牌请求新令牌时也是如此。在正文中传递的有效负载如下所示。我尝试不指定 范围 来获取所有受支持的令牌(如承诺的 in the docs),但没有成功。
client_id=spa_client
&scope=junky_scope
&redirect_uri=http://localhost:44304/beep
&code=205D...EDBF
&grant_type=authorization_code
设置与this question 和this one 中的设置非常相似,尽管它们处理的问题不同。不过,声明的范围显示为包含在响应中。
起初我认为这可能与我的测试用户的定义有关,但那里没有任何关于声明的内容,我能看到的最接近的是声明。但我不依赖我范围内的声明,所以这是一条死胡同。
我迷路了,不知道如何进一步排除故障。 ids4 访问令牌范围不包括的谷歌搜索变化很少。
【问题讨论】:
标签: c# identityserver4 access-token