美文网首页
作用域和声明

作用域和声明

作者: 灭蒙鸟 | 来源:发表于2016-10-08 13:20 被阅读377次

layout: docs-default

作用域和声明

IdentityServer.Core.Models.Scope 类构建了OpenID Connect 和 OAuth2 作用域.

  • Enabled
    • 指明启用作用域,作用域可以申请。默认是true.
  • Name
    • 作用域的名字。客户端用这个名字申请作用域。
  • DisplayName
    • 同意页面上的显示名称。
  • Description
    • 同意页面上的显示的介绍。
  • Required
    • 同意页面上,用户可以选择或者取消这个作用域。默认是false.
  • ScopeSecrets ( v2.2新增)
    • 给作用域加上密钥(给内审端点使用) - 请参照 这里.
  • AllowUnrestrictedIntrospection (v2.3新增)
    • 当时用内审端点时,在访问令牌中允许这个作用域查看其它作用域。
  • Emphasize
    • 同意页面是否强调这个作用域。使用这个设置突出显示敏感或重要的作用域,默认是false.
  • Type
    • 作用域或者是Identity (OpenID Connect 相关) 或者是 Resource (OAuth2 资源). 默认为Resource.
  • Claims
    • 用户声明列表,包含在身份令牌(identity 作用域) 或者访问令牌(资源作用域).
  • IncludeAllClaimsForUser
    *启用后,用户的所有声明会包含在令牌中。默认是false.
  • ClaimsRule
    • 判定那个声明会被包含在令牌中的规则。(这是实现规格)
  • ShowInDiscoveryDocument
    • 指定这个作用域是否出现在发现(discovery)文档中。默认为true.

作用域同样指定那些声明会放到对应的令牌里 - ScopeClaim 类包含下面的属性:

  • Name
    • 声明的名字
  • Description
    • 声明的描述
  • AlwaysIncludeInIdToken
    • 指定声明是否总是放到身份令牌中(即使用户已经取到了访问令牌).只对身份作用域有效。默认是false.

role 身份作用域的例子:

var roleScope = new Scope
{
    Name = "roles",
    DisplayName = "Roles",
    Description = "Your organizational roles",
    Type = ScopeType.Identity,

    Claims = new List<ScopeClaim>
    {
        new ScopeClaim(Constants.ClaimTypes.Role, alwaysInclude: true)
    }
};

'AlwaysIncludeInIdentityToken' 指定了某个声明一定会被包含在身份令牌中,即使用户已经从用户信息端点得到了访问令牌。

IdentityManager API作用域的例子:

var idMgrScope = new Scope
{
    Name = "idmgr",
    DisplayName = "IdentityManager",
    Type = ScopeType.Resource,
    Emphasize = true,

    Claims = new List<ScopeClaim>
    {
        new ScopeClaim(Constants.ClaimTypes.Name),
        new ScopeClaim(Constants.ClaimTypes.Role)
    }
};

相关文章

  • var let const 区别

    let 和 var 都是用来声明变量的,let的声明范围是块级作用域 var 存在于全局作用域和函数作用域,存在变...

  • C++命名空间相关概念

    变量作用域分为三类: 声明域 2. 潜在作用域 3. 作用域 声明域> 潜在作用域 > 作用域 命名空间是一种描述...

  • let和var的区别

    var 和 let 都是用于变量声明的关键字 作用域var 是函数级作用域,let是块级作用域 变量提升问题 声明...

  • var let const之间的区别?

    1.var ①var声明的变量没有块级作用域,只有函数作用域和全局作用域 ②var声明的变量有变量提升 ③变量可以...

  • 第九天,函数作用域和声明提前

    函数作用域和函数声明提前。 函数作用域,分为全局作用域和部分作用域,在系统执行函数时会自动创建一个作用域,在执行完...

  • ES6语法--let和const

    1:let和const:作用域,全局作用域,函数作用域以及块级作用域(es6)。 let声明的变量只在块级作用域内...

  • js笔记之作用域

    1. 如何区分全局作用域和私有作用域? 在全局作用域下声明(预解释的时候)的变量是全局变量 在私有作用域中声明的变...

  • ES6-01

    一、let和const 作用:声明变量和常量 ①作用域是当前代码块({})②作用域不会被提升③在相同的作用域不能声...

  • let

    块作用域 必须先声明再使用,并且在同一作用域形成死区(声明的变量只能归作用域管) 同一作用域只能声明一次

  • 详解javascript中的词法作用域

    所谓作用域,就是一个声明起作用的那一段的程序代码。而作用域又分为词法作用域(也叫静态作用域)和动态作用域。静态作用...

网友评论

      本文标题:作用域和声明

      本文链接:https://www.haomeiwen.com/subject/jkuuyttx.html