将baml 转换为xaml

实施SAML之前

这是XACML请求到达要评估的PDP(策略决策点)时的样子。

<Request xmlns='urn:oasis:names:tc:xacml:2.0:context:schema:os'>
<Subject><Attribute AttributeId='urn:oasis:names:tc:xacml:1.0:subject:subject-id'DataType='http://www.w3.org/2001/XMLSchema#string'><AttributeValue>admin</AttributeValue></Attribute>
</Subject>
<Resource><Attribute AttributeId='urn:oasis:names:tc:xacml:1.0:resource:resource-id'DataType='http://www.w3.org/2001/XMLSchema#string'><AttributeValue>http://localhost:8280/services/echo/echoString</AttributeValue></Attribute>
</Resource>
<Action><Attribute AttributeId='urn:oasis:names:tc:xacml:1.0:action:action-id'DataType='http://www.w3.org/2001/XMLSchema#string'><AttributeValue>read</AttributeValue></Attribute>
</Action>
<Environment/>
</Request>

基本上,它说明谁(主题)想要访问哪个资源以及它想要对该资源执行什么操作。 PDP相信发出的请求在发送和接收时不会改变,并根据现有的已启用策略评估该请求,并作出如下决定的答复。

<Response>
<Result ResourceId='http://localhost:8280/services/echo/echoString'>
<Decision>Permit</Decision>
<Status><StatusCode Value='urn:oasis:names:tc:xacml:1.0:status:ok'/>
</Status>
</Result>
</Response>

同样,对于使用此响应的一方,也不能保证自从PDP发送该决定​​直到收到,该决定就不会改变。 为了实现服务器对服务器之间XACML请求和响应的安全通信,OASIS定义了XACML的SAML概要文件,通过允许使用XACML提供的细粒度授权来将系统安全性提高到更高水平。


实施SAML之后

以下是包装到XACMLAuthzDecisionQueryType中的上一个XACML请求的样子,该XACMLAuthzDecisionQueryType使用OpenSAML 2.0.0库生成,该库支持2004年声明的XACML的SAML概要文件 。 该图显示了XACMLAuthzDecisionQueryType的基本结构。

以下是示例XACMLAuthzDecisionQuery。

<xacml-samlp:XACMLAuthzDecisionQueryType InputContextOnly='true' IssueInstant='2011-10-31T06:44:57.766Z' ReturnContext='false' Version='2.0' xmlns:xacml-samlp='urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:protocol'>
<saml:Issuer SPProvidedID='SPPProvierId' xmlns:saml='urn:oasis:names:tc:SAML:2.0:assertion'> https://identity.carbon.wso2.org</saml:Issuer>
<ds:Signature xmlns:ds='http://www.w3.org/2000/09/xmldsig#'><ds:SignedInfo><ds:CanonicalizationMethod Algorithm='http://www.w3.org/2001/10/xml-exc-c14n#'/><ds:SignatureMethod Algorithm='http://www.w3.org/2000/09/xmldsig#rsa-sha1'/><ds:Reference URI=''><ds:Transforms><ds:Transform Algorithm='http://www.w3.org/2000/09/xmldsig#enveloped-signature'/><ds:Transform Algorithm='http://www.w3.org/2001/10/xml-exc-c14n#'><ec:InclusiveNamespaces PrefixList='ds saml xacml-context xacml-samlp'       xmlns:ec='http://www.w3.org/2001/10/xml-exc-c14n#'/></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm='http://www.w3.org/2000/09/xmldsig#sha1'/><ds:DigestValue>7T1ScatC2Xg7pSpjB2X9HB3EH8M=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>XQBUVH3j16HVm3aTFSFh5EYFyiYjn0IU4PJfXelzK6BfXp
GGTBGouVJEe2Kk26sa3Yj0nEgh51pKsNWxk8xQFWdXg6/UlMkq+CaKrYj7laYlM9yGuIlEBT6t
yzjIQBa8wskHeITL6tHE+G0aMa5YnTqtb+9IaJKGPIrl/K5Zn2A=</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>MIICNTCCAZ6gAwIBAgIES343gjANBgkqhkiG9w0BA
QUFADBVMQswCQYDVQQGEwJVUzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDU1vdW50YWluIFZ
pZXcxDTALBgNVBAoMBFdTTzIxEjAQBgNVBAMMCWxvY2FsaG9zdDAeFw0xMDAyMTkwNzAyM
jZaFw0zNTAyMTMwNzAyMjZaMFUxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEWMBQGA1U
EBwwNTW91bnRhaW4gVmlldzENMAsGA1UECgwEV1NPMjESMBAGA1UEAwwJbG9jYWxob3N0M
IGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCUp/oV1vWc8/TkQSiAvTousMzOM4asB2i
ltr2QKozni5aVFu818MpOLZIr8LMnTzWllJvvaA5RAAdpbECb+48FjbBe0hseUdN5Hpwvn
H/DW8ZccGvk53I6Orq7hLCv1ZHtuOCokghz/ATrhyPq+QktMfXnRS4HrKGJTzxaCcU7OQI
DAQABoxIwEDAOBgNVHQ8BAf8EBAMCBPAwDQYJKoZIhvcNAQEFBQADgYEAW5wPR7cr1LAdq
+IrR44iQlRG5ITCZXY9hI0PygLP2rHANh+PYfTmxbuOnykNGyhM6FjFLbW2uZHQTY1jMrP
prjOrmyK5sjJRO4d1DeGHT/YnIjs9JogRKv4XHECwLtIVdAbIdWHEtVZJyMSktcyysFcvu
hPQK8Qc/E/Wq8uHSCo=</ds:X509Certificate></ds:X509Data></ds:KeyInfo>
</ds:Signature>
<xacml-context:Request xmlns:xacml-context='urn:oasis:names:tc:xacml:2.0:context:schema:os'><xacml-context:Subject SubjectCategory='urn:oasis:names:tc:xacml:1.0:subject-category:access-subject' xmlns:xacml-context='urn:oasis:names:tc:xacml:2.0:context:schema:os'><xacml-context:Attribute AttributeId='urn:oasis:names:tc:xacml:1.0:subject:subject-id' DataType='http://www.w3.org/2001/XMLSchema#string'><xacml-context:AttributeValue>admin</xacml-context:AttributeValue></xacml-context:Attribute></xacml-context:Subject><xacml-context:Resource xmlns:xacml-context='urn:oasis:names:tc:xacml:2.0:context:schema:os'><xacml-context:Attribute AttributeId='urn:oasis:names:tc:xacml:1.0:resource:resource-id' DataType='http://www.w3.org/2001/XMLSchema#string'><xacml-context:AttributeValue>http://localhost:8280/services/echo/echoString</xacml-context:AttributeValue></xacml-context:Attribute></xacml-context:Resource><xacml-context:Action xmlns:xacml-context='urn:oasis:names:tc:xacml:2.0:context:schema:os'><xacml-context:Attribute AttributeId='urn:oasis:names:tc:xacml:1.0:action:action-id' DataType='http://www.w3.org/2001/XMLSchema#string'><xacml-context:AttributeValue>read</xacml-context:AttributeValue></xacml-context:Attribute></xacml-context:Action><xacml-context:Environment xmlns:xacml-context='urn:oasis:names:tc:xacml:2.0:context:schema:os'/>
</xacml-context:Request>
</xacml-samlp:XACMLAuthzDecisionQueryType>

如您所见,它携带了许多与请求内容相关的信息,例如谁发出请求,何时使用X509Certificate和XACML请求签名。 可以通过这种方式保持数据完整性。
执行完请求并从PDP获得响应后,还将发送带有签名的安全请求。 该图显示了基本SAML响应的结构。

以下是带有XACML响应的示例SAML响应。

<samlp:Response IssueInstant='2011-10-31T06:49:51.013Z' Version='2.0' xmlns:samlp='urn:oasis:names:tc:SAML:2.0:protocol'>
<saml:Issuer SPProvidedID='SPPProvierId' xmlns:saml='urn:oasis:names:tc:SAML:2.0:assertion'>
https://identity.carbon.wso2.org</saml:Issuer>
<ds:Signature xmlns:ds='http://www.w3.org/2000/09/xmldsig#'><ds:SignedInfo><ds:CanonicalizationMethod Algorithm='http://www.w3.org/2001/10/xml-exc-c14n#'/><ds:SignatureMethod Algorithm='http://www.w3.org/2000/09/xmldsig#rsa-sha1'/><ds:Reference URI=''><ds:Transforms><ds:Transform Algorithm='http://www.w3.org/2000/09/xmldsig#enveloped-signature'/><ds:Transform Algorithm='http://www.w3.org/2001/10/xml-exc-c14n#'><ec:InclusiveNamespaces PrefixList='ds saml samlp xacml-context xacml-saml'
xmlns:ec='http://www.w3.org/2001/10/xml-exc-c14n#'/></ds:Transform></ds:Transforms><ds:DigestMethod Algorithm='http://www.w3.org/2000/09/xmldsig#sha1'/><ds:DigestValue>uct4nBcdqAV4FIO50WMmFjSy9sE=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>dLaXFl6+HHqtaQoE8l22bCCM8byxblyBOYUTdUdG/LeYIR+
NUTn6nTRe9MJqWqrXT4qLtQ2Jvb3Cjrw66YZTdVrBXNjD1t6oWAg3YFXtZcO4s1+z5y4BeN6Mq
spLLKIUnovCADNbHvhhVDwtMkCOcUs0x35R0zENiU1PYVMLQMM=</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>
MIICNTCCAZ6gAwIBAgIES343gjANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJVUzELMAkGA1
UECAwCQ0ExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxDTALBgNVBAoMBFdTTzIxEjAQBgNVBAMM
CWxvY2FsaG9zdDAeFw0xMDAyMTkwNzAyMjZaFw0zNTAyMTMwNzAyMjZaMFUxCzAJBgNVBAYTAl
VTMQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzENMAsGA1UECgwEV1NPMjES
MBAGA1UEAwwJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCUp/oV1vWc8/
TkQSiAvTousMzOM4asB2iltr2QKozni5aVFu818MpOLZIr8LMnTzWllJvvaA5RAAdpbECb+48F
jbBe0hseUdN5HpwvnH/DW8ZccGvk53I6Orq7hLCv1ZHtuOCokghz/ATrhyPq+QktMfXnRS4HrK
GJTzxaCcU7OQIDAQABoxIwEDAOBgNVHQ8BAf8EBAMCBPAwDQYJKoZIhvcNAQEFBQADgYEAW5wP
R7cr1LAdq+IrR44iQlRG5ITCZXY9hI0PygLP2rHANh+PYfTmxbuOnykNGyhM6FjFLbW2uZHQTY
1jMrPprjOrmyK5sjJRO4d1DeGHT/YnIjs9JogRKv4XHECwLtIVdAbIdWHEtVZJyMSktcyysFcv
uhPQK8Qc/E/Wq8uHSCo=</ds:X509Certificate></ds:X509Data></ds:KeyInfo>
</ds:Signature>
<saml:Assertion IssueInstant='2011-10-31T06:49:51.008Z' Version='2.0' xmlns:saml='urn:oasis:names:tc:SAML:2.0:assertion'>
<saml:Issuer SPProvidedID='SPPProvierId'>https://identity.carbon.wso2.org</saml:Issuer>
<saml:Statement xmlns:xacml-saml='urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:assertion' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:type='xacml-saml:XACMLAuthzDecisionStatementType'>
<xacml-context:Response xmlns:xacml-context='urn:oasis:names:tc:xacml:2.0:context:schema:os'>
<xacml-context:Result ResourceId='http://localhost:8280/services/echo/echoString'
xmlns:xacml-context='urn:oasis:names:tc:xacml:2.0:context:schema:os'>
<xacml-context:Decision>Permit</xacml-context:Decision>
<xacml-context:Status><xacml-context:StatusCode Value='urn:oasis:names:tc:xacml:1.0:status:ok'/>
</xacml-context:Status>
</xacml-context:Result>
</xacml-context:Response>
</saml:Statement>
</saml:Assertion>
</samlp:Response>

XACML响应被包装到SAML声明中,该声明包含在SAML声明中,该声明又由SAML响应包装。我仅根据上下文对响应进行签名,并且仅包含一个声明。 我们可以根据规范分别对断言和响应进行签名,并在一个响应中包含更多断言。 也可以在响应中发送相关的XACML请求,并且根据规范,还有更多选项。 借助OpenSAML,我们可以将其中的大多数付诸实践。

参考: Pushpalanka博客博客上的JCG合作伙伴 Pushpalanka 向XACML实现SAML 。

翻译自: https://www.javacodegeeks.com/2012/07/implementing-saml-to-xacml.html

将baml 转换为xaml

将baml 转换为xaml_将XAML实施SAML相关推荐

  1. 阅读WPF揭秘前两章探索Silverlight运行的基本原理和RIA工作流程的密码(二)

    2.8  编译:将XAML与过程式代码混合使用 WPF允许用任何一种.NET语言完全以过程式代码编写应用程序.另外,一些简单的应用程序可以完全写在XAML中,这多亏了在第9章中提到的数据绑定特性,以及 ...

  2. 你不懂js系列学习笔记-类型与文法- 02

    第二章:值 原文:You-Dont-Know-JS JS 内建的值类型: 1. Array 和其他强制类型的语言相比,JavaScript 的 array 只是值的容器,而这些值可以是任何类型:str ...

  3. (三) 初识XMAL

    卷首语:根据第一篇的知识,我们知道WPF应用是由控制台程序创建的,拥有自己独立的消息循环.所以在之后的文章里和示例里,我会默认的选择开启控制台显示,以方便调试以及输出一些信息.并且为了简便,推荐直接创 ...

  4. C语言编周期100ms的方波信号,单片机系统设计 - 2020学年春(邸志刚)-中国大学mooc-题库零氪...

    项目一 :设计交通灯 相关知识:单片机简介随堂测验 1.下列器件中带ROM的是(). A.8031 B.8032 C.80C32. D.8051 2.下列器件中带EPROM的是(). A.8051 B ...

  5. java 枚举型 默认值,c# - 选择Enum类型的默认值而不必更改值

    c# - 选择Enum类型的默认值而不必更改值 在C#中,是否可以使用属性修饰Enum类型或执行其他操作来指定默认值应该是什么,而不更改值? 无论出于何种原因,所需的数字可能都是一成不变的,并且仍然可 ...

  6. [项目管理] IT软件交付项目流程阶段

    售前阶段 零基础考PMP可私,14天快速通过 阶段目标 客户经理主导销售,参与招投标或者与甲方谈判,签订合同,或者在需要的情况下提前内部立项,最终确定项目经理. 主要任务 售前技术交流,确定可行性技术 ...

  7. WPF 二维码生成器

    因为使用到ZXing.Net库,所以需要下载添加引用到项目去. ZXing是一个开源Java类库用于解析多种格式的1D.2D条形码,能够对QR编码.Data Matrix.UPC的1D条形码进行解码它 ...

  8. 架构道术-对架构敏捷实践的一些思考

    2022年我经历了几件大事: 1.主导大数据实时系统搭建. 2.参与数据中台建设. 3.实施敏捷文化建设. 感触最深的当属敏捷开发的实践过程. 一.敏捷理解 我把敏捷划分为三快: 1.快速响应 大方向 ...

  9. Android硬件扩展接口有哪些,一种安卓智能设备USB接口拓展的方法及装置与流程...

    本发明涉及安卓智能设备技术领域,特别是涉及一种安卓智能设备USB接口拓展的方法及装置. 背景技术: 安卓是一种以Linux为基础的开放源码操作系统,2007年正式推出后,在短短几年时间内得到了广泛的应 ...

最新文章

  1. 我是如何在尼日利亚的沃里创立Google Developers Group GDG分会的,并达到了100位成员...
  2. 转载:一位资深程序员大牛给予Java初学者的学习路线建议
  3. IOS UINavigationController use
  4. Linux下编写UDP/TCP版本的服务器和客户端的流程
  5. Forms身份验证基本原理
  6. git 列出标签_Git标签介绍:如何在Git中列出,创建,删除和显示标签
  7. html5填空题阅卷,“过五关”般严格,高考阅卷老师来自哪里?研究生参与阅卷?
  8. JAMstack简介:现代Web的体系结构
  9. IConfiguration的命令行解析
  10. mysql log error_MySQL日志之error_log
  11. 基于python的分布式扫描器_一种基于python的大数据分布式任务处理装置的制作方法...
  12. 解压 .solitairetheme8 文件
  13. jquery easyui后台模板
  14. 下载linux下ahci驱动怎么安装,怎么在u盘pe下给电脑系统安装ahci驱动
  15. PS小知识(五)——羽化(图片拼接后去缝、自然过渡渐变)
  16. [词性] 十一、介词 2 地点状语在前,时间状语在后 [ at ]
  17. 计算机科学 投稿 邮箱,《计算机时代》期刊投稿【编辑部_邮箱_地址_怎么样_版面费_代发表】...
  18. python技术文档
  19. 交互设计师必备的9种能力
  20. Vue + Vuetify使用感受以及部分自定义组件

热门文章

  1. 2014计算机基础知识,2014年计算机基础知识练习题240_甘肃中公教育
  2. springboot+vue框架搭建教程
  3. mysql必知必会读书笔记就——联结表、高级联结
  4. 响应式设计微网站静态模板,适合游戏、新闻资讯等平台
  5. Kylin作用是什么?
  6. 大数据分析与应用(中级) 数据预处理与特征工程
  7. 向量的线性表示和线性相关
  8. 模型参数与模型超参数
  9. 简单操作用R Markdown生成HTML和PDF文件
  10. 需求定律公式和需求弹性推导——《可以量化的经济学》