我有一个使用Microsoft.AspNetCore.Authentication.OpenIdConnect包的应用程序,以使用IdentityServer4针对服务器进行身份验证。
在IdentityServer实现中,我将标准范围的集合设置为IdentityResource
。
return new List<IdentityResource>
{
new IdentityResources.OpenId(),
new IdentityResources.Profile(),
new IdentityResources.Email(),
new IdentityResources.Address(),
new IdentityResources.Phone()
}
我想添加一个具有新作用域的新身份资源以提供信息。为了测试向后兼容性,我在应用程序的AddOpenIdConnect
回调中添加了新范围:
.AddOpenIdConnect(options => {
// snipping for brevity
options.Scopes = new[] {
"openid",
"profile",
"my-new-scope" // <- Does not exist in Identity Server yet.
};
})
根据OpenId Connect Core specification-OpenId提供程序应该未知的范围(强调它们的范围)将被忽略。但是,当我尝试进行身份验证时,出现了invalid_scope
错误。
是否有一种方法可以告诉IdentityServer忽略它不知道的作用域?