identityserver4 oid 附加范围不出现请求?

Posted

技术标签:

【中文标题】identityserver4 oid 附加范围不出现请求?【英文标题】:identityserver4 oid additional scope not appear request? 【发布时间】:2018-04-17 11:53:09 【问题描述】:

我目前正在关注关于身份服务器文档的本教程:

https://identityserver4.readthedocs.io/en/release/quickstarts/3_interactive_login.html

我想在同意页面添加额外的身份范围(电子邮件),问题是为什么客户端 OpenIdConnectOptions 中的范围是只读的?

 services.AddAuthentication(options =>
        
            options.DefaultScheme = "Cookies";
            options.DefaultChallengeScheme = "oidc";
        )
            .AddCookie("Cookies")
            .AddOpenIdConnect("oidc", options =>
            
                options.SignInScheme = "Cookies";                    
                options.Authority = "http://localhost:5000";
                options.RequireHttpsMetadata = false;
                options.Resource = "openid profile email";      
                **options.Scope= // why this readonly ?**
                options.ClientId = "mvc";
                options.SaveTokens = true;
            );

这导致请求的范围仅配置文件和 openid。 http://localhost:5000/account/login?returnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fclient_id%3Dmvc%26redirect_uri%3Dhttp%253A%252F%252Flocalhost%253A5002%252Fsignin-oidc%26resource%3Dopenid%2520profile%2520email%26response_type%3Did_token%26scope%3Dopenid%2520profile%26其余部分省略

有什么想法吗?

【问题讨论】:

【参考方案1】:

在 IdentityServer4 v2 中,Scope 参数是一个集合。添加这样的范围:

options.Scope.Add("myscope");

【讨论】:

天哪,你说得对...非常简单,但我对只读感到困惑-.-

以上是关于identityserver4 oid 附加范围不出现请求?的主要内容,如果未能解决你的问题,请参考以下文章

IdentityServer4 客户端范围和基于用户声明的授权

IdentityServer4-端点

hibernate持久化对象三种状态及其转换

刷新 IdentityServer4 客户端中的访问令牌

访问令牌不包括 Identity Server 4 中声明的范围

IdentityServer4文档- 使用客户端凭据保护 API