隐式和混合流所需的IdentityResources.Profile?

时间:2017-07-13 14:34:49

标签: openid-connect identityserver4

摆弄来自IdentityServer4的quickstart examples并阅读文档我从this page(强调我的)发现了这句话:

  

OpenID Connect规范指定了几个标准   身份资源。 您提供的最低要求   支持为您的用户发送唯一ID - 也称为   主题ID。这是通过公开标准身份资源来完成的   叫做openid

使用 Quickstart3_ImplicitFlowAuthentication -Solution示例我想我只是尝试省略(在Project QuickstartIdentityServer - file Config.cs

IdentityResources.Profile()

来自Config.GetIdentityResources

IdentityServerConstants.StandardScopes.Profile

来自MVC-Client的AllowedScopes

但是当我尝试调用Secure-View时出现此错误:

  

抱歉,发生错误: invalid_scope

所以我的问题是,实际上要求ProfileOpenId,我是否忘记改变其他内容以使其有效或者我只是误解了引用的陈述?

1 个答案:

答案 0 :(得分:2)

我将根据openid specification回答这个问题。

关于 scope

的规范如下
  

必需的。 OpenID Connect请求必须包含openid范围值。如果openid范围值不存在,则完全不指定该行为。可能存在其他范围值。应该忽略实现不理解的使用范围值。有关本规范定义的其他范围值,请参见第5.4节和第11节。

您绝不应删除范围配置中的 IdentityResources.OpenId()

此外还有关于 profile 范围

的流动
  

可选的。此范围值请求访问最终用户的默认配置文件声明,其中包括:name,family_name,given_name,middle_name,nickname,preferred_username,profile,picture,website,gender,birthdate,zoneinfo,locale和updated_at。

虽然个人资料是可选的,但我相信这个例子(ImplicitFlowAuthentication)需要让个人资料范围正常运作。因此给出了这个错误。

相关问题