当前位置: 首页 > 知识库问答 >
问题:

你能通过WIF只返回名称标识符声明吗

卢俭
2023-03-14

我正在做一个项目,使用WIF创建一个安全web应用程序和STS,除了在一个实例中,我只想返回标识的nameidentifier外,其他一切都正常工作。

在这种情况下,我得到以下SamlAssertion错误:"SamlAssertion至少需要一个语句"

现在是奇怪的一点——我使用标准xmlsoap模式定义来定义nameidentifier(http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier)只有当这个声明被发送时,错误才会发生。

如果我发送(例如)http://schemas.xmlsoap.org/ws/2005/05/identity/claims/email或一个我编造的,它都可以工作——如果你改变名称标识符声明上的大小写,它甚至可以工作(http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameIdentifier工作)!

名称标识符是否可能是SAML或WIF中的关键字,因此不能是发送的唯一声明?WIF显然允许发送单个声明,只是不允许单独发送名称标识符。

共有2个答案

张嘉熙
2023-03-14

就我个人而言,我从未使用过名称标识符声明。应使用名称类型(即http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name)。

我证实了你的观察——你不能把名称标识符(不管它是什么)作为唯一的声明,但是你当然可以把名称作为唯一的声明。

戈曾琪
2023-03-14

nameidentifier是否可能是SAML或WIF中的关键字

对在SAML令牌格式中,您有一个单独的主题概念(唯一标识实体的东西)和属性概念(关于实体的信息)。

WIF模型将所有这些内容表示为声明。当您将大多数声明写入SAML令牌时,它们会映射到SAML属性,但是nameidentifier是特殊的,并且会作为主题写入。

但是看起来您正在生成一个带有AttributeStatement的SAML令牌,它是完全空的。你能证实吗?您是否使用任何类型的自定义令牌处理程序?

我不确定,但我假设,默认情况下,当WIF遇到仅包含名称标识符声明的ClaimSideEntity时,它应该将该声明作为SAML主题写入AuthenticationStatement和AttributeStatement下,这样就不会发生您所得到的错误。

 类似资料:
  • 我正在使用SODA for Java存储和检索Oracle12c DB中的文档。我正在效仿这个例子。 这一例外背后的原因将是什么?

  • 所以我一直有这个错误,我不知道发生了什么。我在谷歌上搜索了一下,读了一些关于这个错误的问题,但什么都没用。我只想运行它,这样我就可以完成我的项目。 错误:开始低库存;结束;*第1行错误:ORA-06550:第1行,第9列:PLS-00201:标识符“LOWINVENTORY”必须声明ORA-06550:第1行,第7列:PL/SQL:忽略语句 编辑: 表创建:

  • 我正在调试一个非常大的树着色项目,在该项目中,作者使用glsl文件来着色树,但我在编译glsl文件时遇到了麻烦: 以下是错误日志: 我使用mac osx,Xcode7.0,OpenGL和glut都是默认版本。Glew版本是1.13.0。 这是因为版本与作者使用的原始版本不匹配吗?因为我检查了原始版本,所以他使用了GLEW 1.9.0和GLUT 3.7.6。 //////更新/////// 原来ma

  • 我使用Identityserver3作为MVC应用程序的授权服务器。因此,我的类如下: 这是我的子类: 这是我的: 但是在我的

  • 我尝试在回调中使用exchange名称。我在Pika中使用SelectConnection适配器处理异步请求。 我的想法是首先在我的程序中构建交换、队列和绑定的列表。然后,我将多个交换和队列声明分派给Pika,并在每个绑定所需的队列和交换收到DeclareOK消息后立即创建绑定。 这意味着我需要知道回调中交换和队列的名称,以便我可以将它们与要创建的绑定相关联。 类似这样: 这将给出以下输出,清楚地