IdentityServer4-Resource定义-翻译
资源定义(Defining Resource)
通常,第一件事是定义那些你想保护的资源。这些资源可能是你的用户信息,比如个人数据,电子邮件或者对Api的访问。
Note:
你可以用C#实体类来定义资源或者加载从数据库中加载他们,都是通过对IResourceStore的实现来处理这些二级细节。此文档将在内存中进行实现。
定义身份资源(Defining identity resource)
身份资源通常都是指那些用户ID,名称,邮箱等信息。一个identity 资源有一个独一无二的名称,你能分配任意(arbitrary )的claim类型。这些claim将被包含在用户的token中。客户端将使用scope参数请求对identity resource的访问。
这个OpenID Connect规范指定了一组标准的身份资源。最低要求是,你为用户发行唯一ID的提供支持,也叫做subject id。这是通过暴露一个叫做OpenId的标准的身份资源来完成的。
public static IEnumerable<IdentityResource> GetIdentityResources()
{
return new List<IdentityResource>
{
new IdentityResources.OpenId()
};
}
这个IdentityResources类支持规范中所有的scopes 定义(比如,openid,email.profile,telephone,address)。如果你想支持这些,你可以在你的身份资源List中添加它们。
public static IEnumerable<IdentityResource> GetIdentityResources()
{
return new List<IdentityResource>
{
new IdentityResources.OpenId(),
new IdentityResources.Email(),
new IdentityResources.Profile(),
new IdentityResources.Phone(),
new IdentityResources.Address()
}
}
自定义身份资源
你也可以自定义身份资源。创建一个新的IdentityResource类,给它一个名称和一个可选的显示名称和描述,并在请求此资源时定义哪些用户声明应该包含在身份令牌中。
public static IEnumerable<IdentityResource> GetIdentityResources()
{
var customProfile =new IdentityResource(
name:"custom.Profile",
displayName:"cstProfile",
claimType:new[]{"name","email","status"}); return new List<IdentityResource>
{
new IdentityResources.OpenId(),
new IdentityResources.Profile(),
customProfile
};
}
有关身份资源设置的更多信息,请参阅reference 部分。
定义API resource
允许请求的access token访问哪些api,你需要定义这些api resource。
想得到关于APIs的accsee token,你需要以scope的身份注册它们。下面展示Resource类型的scope.
public static IEnumerable<ApiResource> GetApis()
{
return new[]
{ new ApiResource("api1","Some API 1"), new ApiResource
{
Name = "api2", ApiSecrets=
{
new Secret("secret".Sha256())
},
Scopes=
{
new Scope()
{
Name = "api2.full_access",
DisplayName = "Full access to API 2",
},
new Scope
{
Name = "api2.read_only",
DisplayName = "Read only access to API 2"
}
}
}
};
}
有关API资源设置的更多信息,请参阅reference部分。
Note:
由资源定义的用户声明由IProfileService可扩展性点加载。
IdentityServer4-Resource定义-翻译的更多相关文章
- IdentityServer4-客户端定义-翻译
客户端定义(Defining Client) 客户端可以从你的IDS服务器请求tokens. 通常,客户端需要遵循下面的通用设置: 一个唯一的Client ID 如果需要还可以提供密码 允许与toke ...
- laravel 定义翻译字符串
https://learnku.com/docs/laravel/5.6/localization/1376 // 全景链接$data['share_phone'] = trans('web.host ...
- 【翻译】IdentityServer4:基于资源的配置
这篇文章基于https://leastprivilege.com/2016/12/01/new-in-identityserver4-resource-based-configuration/进行翻译 ...
- 【初探Spring】------Spring IOC(三):初始化过程---Resource定位
我们知道Spring的IoC起到了一个容器的作用,其中装得都是各种各样的Bean.同时在我们刚刚开始学习Spring的时候都是通过xml文件来定义Bean,Spring会某种方式加载这些xml文件,然 ...
- BeanDefinition的Resource定位——3
1.我们重点看看AbstractRefreshableApplicationContext的refreshBeanFactory方法的实现,这个refreshBeanFactory被FileSyste ...
- BeanDefinition的Resource定位
1.以编程的方式使用DefaultListableBeanFactory时,首先定义一个Resource来定位容器使用的BeanDefiniton.这时使用的是ClassPathResource,这意 ...
- IOC容器初始化——BeanDefinition的Resource定位
以编程的方式使用DefaultListableBeanFactory时,首先定义一个Resource来定位容器使用的BeanDefinition.这是使用的是ClassPathResource,意味着 ...
- HTML5之appcache语法理解/HTML5应用程序缓存/manifest缓存文件官方用法翻译
习惯性的贴几个参考链接: W3School-HTML 5 应用程序缓存 官方 MDN window.applicationCache 接口文档 官方 MDN 用法示例 看所有的教程不如直接看最原始的官 ...
- IdentityServer4 实现 OAuth 2.0(密码模式 - HTTP Post 方式)
之前写了一篇文章:<IdentityServer4 实现 OpenID Connect 和 OAuth 2.0> 上面这篇文章虽然详细,但都是点到为止的介绍,并没有实际应用的示例,所以,后 ...
随机推荐
- jmeter+Jenkins持续集成(邮件通知)
jmeter构建后,自送发送邮件到指定的邮箱,配置如下 1)Jenkins Location配置 jenkins首页->系统管理->系统配置页面 其中Jenkins URL有默认值,最好修 ...
- org.apache.subversion.javahl.ClientException: Previous operation has not finished
1.问题 eclipse使用SVN出现异常: org.apache.subversion.javahl.ClientException: Previous operation has not fini ...
- Nginx 教程
开源版:http://nginx.org 商业版:http://nginx.com 阿里Tengine OpenResty开源版.商业版 视频教程:哔哩哔哩 菜鸟教程:nginx安装 1.初识 Nig ...
- Unity全面的面试题(包含答案)
一:什么是协同程序? 在主线程运行的同时开启另一段逻辑处理,来协助当前程序的执行,协程很像多线程,但是不是多线程,Unity的协程实在每帧结束之后去检测yield的条件是否满足. 二:Unity3D中 ...
- 功能强大的swiper插件
概述 今天体验了一下swiper,真是太强大了,无论是PC端还是移动端,各种轮播滑块效果随便实现.美中不足的是,有些实现需要自己想办法.下面我记录下我的需求和我的实现,供以后开发时参考,相信对其他人也 ...
- Testing - 软件测试知识梳理 - 软件性能测试
软件性能测试的基本概念 软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是软件在完成该功能时展示出来的及时性. 软件性能的指标 响应时间:是指系统对请求作出响应的时间,并且 ...
- django rest framework serializers解读
serializers是什么?官网是这样的"Serializers allow complex data such as querysets and model instances to b ...
- docker学习篇(二)---- 基础篇
引言 在之前的学习中,我知道了docker的三大组件分别是----镜像,容器,仓库.了解了这三个组件也就初步理解了docker.所以我学习了这三个组件,并记录下来. 镜像 docker在运行一个容器时 ...
- HDU 6044--Limited Permutation(搜索+组合数+逆元)
题目链接 Problem Description As to a permutation p1,p2,⋯,pn from 1 to n, it is uncomplicated for each 1≤ ...
- Zabbix系列之六——添加web监测
zabbix提供了web监测功能,监控到站点的响应时间,还可以根据站点返回的状态码,或者响应时间做报警,列入服务保证官网确打不开等现象. 官网地址:https://www.zabbix.com/doc ...