使用用户名/密码进行 SAML 断言 - 消息到底是什么样的?

2023-12-20

我需要创建一些 SAML 2.0 断言,但无法找到 XML 的实际外观。大多数文档似乎都是关于使用特定工具,而不是关于消息。我已经有了模式,有很多可能性,但我找不到相关消息在实践中实际是什么样子的示例。

业务规则规定:为了创建共享身份,用户告诉系统 A 他们在系统 B 上的用户名和密码。系统 A 需要将此信息(以及一些人口统计数据)传达给系统 B。系统 B 验证该信息并通过返回一个唯一标识符,然后可以使用该标识符来引用该用户。

有人能给我一个示例,说明携带此信息的 SAML 2.0 断言是什么样子吗?

FWIW,我正在使用 C#,并且需要以排除使用第三方工具的方式传递 XML。


我不确定您的用例是否与 SAML 2.0 完全一样。

您所描述的业务规则实际上看起来像是身份配置的用例,而不是访问管理的用例。

标准 SAML 2.0 用例侧重于声明身份的一方(身份提供商)和依赖这些声明的另一方(或多方)(服务提供商)。断言携带所谓的名称标识符,其使用由身份提供者和服务提供者提前商定。

这些名称标识符几乎可以是任何东西,但它们大致分为两类:瞬态和持久。临时名称标识符仅在当前会话的上下文中有用(本质上仅表示“我知道这个人是谁”),并且往往用于保护主体的身份,同时允许某种类型的特权访问。持久标识符可以是不透明的(与使用 OpenID 访问 SO 的方式类似),其中断言方可以重复验证主体的身份而无需公开其身份,同时在断言方和依赖方之间维护动态但稳定的共享标识符,或者更重要的是,例如 Active Directory UPN(可以提前预先商定)。

当谈到密码时,正如您在问题中提到的那样,服务提供商(依赖方)永远不会看到用户的密码。服务提供商将用户通过身份验证请求移交给身份提供商。身份提供者将用户连同响应发送回服务提供者,在身份验证成功的情况下,该响应包含关于在身份提供者和服务提供者之间的关系的上下文中的用户身份的断言。

就您的问题而言,最重要的是 SAML 2.0 没有提供创建本地“应用程序”用户帐户或将该本地用户帐户链接到联合身份的方法。这根本不是 SAML 2.0 试图解决的问题。

现在,回到您的业务规则......

在我看来,您想要做的是帐户链接或注册 - 我会这样处理:

  • 用户访问应用程序,单击按钮以使用身份提供商的身份
  • 应用程序生成身份验证请求并将用户定向到身份提供者,并携带该身份验证请求
  • 身份提供者要么登录用户,要么重用现有的身份会话(如果用户有身份会话)。 IdP 生成一条响应消息,其中包含有关用户的断言。在您的情况下,此断言至少应带有持久名称标识符。身份提供者将用户引导回应用程序,并携带响应消息。
  • 应用程序处理响应消息。如果传递的持久标识符存在映射条目,则可以从该映射中识别用户并以该本地应用程序用户身份登录。如果不存在映射条目,则可以要求用户本地登录,并且在成功本地登录后可以生成映射条目,或者可以自动创建用户帐户,并且可以要求用户输入附加信息(姓名、电子邮件地址)等)“公司”用例是不允许自动帐户链接或创建,并且映射必须提前存在。

至于消息的内容……

The OASIS安全服务技术委员会 http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security有一个 zip 文件下载,其中包含 XML 模式各部分的大量文档,包括示例。协议和配置文件文档也非常值得阅读,因为它们描述了身份对话中涉及的各方之间的消息流。

我发现有大量的演示文稿非常有用。具体来说,SAML v2.0 基础知识 http://www.oasis-open.org/committees/download.php/12958/SAMLV2.0-basics.pdf作者:Eve Maler 帮助我开始意识到 SAML v2.0 试图解决什么问题。本演示文稿包含断言的示例。有更新的演示文稿和指向其他资源的链接saml.xml.org http://saml.xml.org/wiki/saml-introduction.

我不确定这是否有帮助,因为您的用例似乎不是 SAML 2.0 想要做的事情。您可以根据需要向请求和响应添加属性和扩展,但我看不到许多身份提供者对这些属性和响应执行任何操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用用户名/密码进行 SAML 断言 - 消息到底是什么样的? 的相关文章

  • 将密码存储到sql中的最佳方法

    在我当前的 C Windows 应用程序中 密码已以纯文本形式存储 这显然不好 所以我只想知道加密密码并存储到 SQL Server 中的最佳方法是什么 我读到使用哈希 盐更好 但我觉得sql 2005中的 EncryptByPassPhr
  • C# 中的密码恢复工具不起作用

    嗨 我对此还很陌生 我创建了一个门户 用户可以登录并在其中查看我制作的其他程序 问题是密码恢复似乎不起作用 我没有收到任何错误消息 我只是收到消息 我们无法访问您的信息 请重试 我已经正确设置了 ASP NET 配置 并使用不同的用户和权限
  • 使用 AWS SSO 时 AWS Java SDK 未找到配置文件

    当我使用 AWS SSO 登录时 我无法访问 aws 我使用以下方式从计算机登录 aws sso login profile staging 配置文件的配置如下 profile staging sso start url https som
  • 在 MySQL 表中存储用户密码的最佳 PHP 哈希方法?

    我已经阅读 Stack Overflow 问题大约 15 分钟了 每一个问题似乎都与我之前读到的问题相矛盾 Bcrypt SHA1 MD5 等 我目前对我的密码进行 MD5 但我想让我的数据库在发生泄露时更加安全 我知道这个问题已经被问了一
  • Adobe AIR 应用程序能否实现针对 Active Directory 的 SSO 身份验证?

    我对 AIR 应用程序了解不多 但我喜欢目前所看到的内容 所以现在 我想知道这种类型的应用程序在工作中的内联网中是否有意义 在投入时间和精力加强 AIR 开发之前 我想知道 Windows 上的 AIR 应用程序是否可以针对 Active
  • 如何确定登录的Windows帐户是否已在域上进行身份验证[重复]

    这个问题在这里已经有答案了 可能的重复 在客户端 服务器应用程序中使用 Active Directory 对用户进行身份验证 https stackoverflow com questions 1337923 authenticating
  • 配置 Ping Federate 和 Spring SAML 对应用程序进行身份验证

    我在运行 Windows Server 2008 R2 SP1 English 64Bit Base 2014 04 09 的 AWS EC2 上安装了 PingFederate 我有一个使用 Spring Security 进行身份验证的
  • 重置 MySQL root 密码不起作用

    我花了很多时间阅读并尝试了数十种重置 root 密码的方法 但我一无所获 我发现 并尝试过 的最完整的说明如下 顺便说一句 我在 Win7 32 位上运行 MySQL 5 5 我创建了一个文件 c mysqlinit txt 其中包含两行
  • 检查字符串是否是哈希值

    我正在使用 SHA 512 来散列我的密码 当然还有盐 我认为我想要的不可能 但无论如何我们还是要问一下 有没有办法检查字符串是否已经是 SHA 512 或其他算法 哈希值 当用户登录时 我想检查他的密码 如果它仍然是纯文本 则应将其转换为
  • bash中的用户名、密码程序

    我有一个程序 要求用户输入用户名和密码 然后将其存储在文本文件中 第一列是用户名 第二列是密码 我需要一个命令 在用户输入用户名和新密码时替换密码 如下我拥有的 bin bash admin menu Register User echo
  • 我仍然认为在客户端哈希密码更好。我错了吗?

    我读过这些 https hackernoon com im harvesting credit card numbers and passwords from your site here s how 9a8cb347c5b5 https
  • 有没有办法在 NodeJS 中生成受密码保护的 XLSX?

    我正在寻找 npm 包或任何其他解决方法 以便能够生成带有密码的 xlsx 文件 我不想保护工作表或单元格 我希望整个文件受到密码保护 我发现了一些非常好的软件包 excel4node exceljs 但它们都无法满足我的需要 任何建议表示
  • mysql 使用什么样的哈希?

    我正在编写类似于 phpMyAdmin 的自己的代码 但我需要用户能够使用 mysql 数据库中的用户名和密码登录 我需要知道mysql数据库使用什么样的哈希来存储每个用户的密码 我检查了 dev mysql com 寻找答案 但除了以 开
  • 期待、互动,然后再次期待

    有几篇关于相同内容的帖子 但我仍然无法使我的期望脚本正常工作 我的目的是自动化一切 但保留用户输入的密码 所以脚本有 3 个部分 自动登录 给予用户交互以输入密码 将控制权交还给 Expect 脚本以继续工作 所以我有一个将生成的脚本 其中
  • 我应该在密码中支持 Unicode 吗?

    我想允许我的用户使用 Unicode 作为密码 不过我发现很多网站不支持这一点 例如 Gmail Hotmail 所以我想知道是否有一些我忽略的技术或可用性问题 我在想 如果有什么问题的话 那一定是可用性问题 因为默认情况下 NET 接受
  • 如何使用WAMP登录phpMyAdmin,用户名和密码是什么?

    根 这个词是什么意思php我的管理员 http en wikipedia org wiki PhpMyAdmin 每当我写作时localhost phpmyadmin在地址栏上 我被要求输入用户名和密码 但我不知道它们是什么 我不记得何时何
  • 如何对JConsole的密码文件的密码进行加密

    我正在使用 JConsole 访问我的应用程序 MBean 并使用 password properties 文件 但根据 Sun 的规范 该文件仅包含明文格式的密码 com sun management jmxremote password
  • .NET 中是否有内置函数可以对密码进行哈希处理?

    我看到这个问题加密 散列数据库中的纯文本密码 https stackoverflow com questions 287517 encrypting hashing plain text passwords in database 我知道我
  • C#:询问用户密码,然后将其存储在 SecureString 中

    在我目前为客户开发的小型应用程序中 我需要询问用户他的 Windows 登录用户名 密码和域 然后使用这些信息系统 诊断 进程 启动启动一个应用程序 我有一个带有 UseSystemPasswordChar 的文本框来屏蔽输入的密码 我需要
  • Google SAML SSO - 登录个人 Google 帐户时出现 403 app_not_configured_for_user 错误

    我正在使用 Google G Suite 为我们的应用程序进行 SAML SSO 集成 我们的客户在其公司的 G Suite 管理设置中配置我们的 SAML 应用 集成在大多数情况下都能正常工作 假设您尚未登录 Google 帐户 您启动

随机推荐

  • 使用jQuery控制视频标签

    因此 我想使用 jQuery 函数从链接的 REL 收集 URL 并将其传递给元素 收集 REL 并将其发送到 没有问题 但是从 jQuery 触发元素的加载和播放功能需要什么 这是我到目前为止所拥有的 function a compone
  • 如何在不换行的情况下执行“float: left”?

    我有一个容器box1具有一定的宽度 可能会根据其内容而变化 那个盒子里有box2它有固定的宽度 它可以是一个图标 旁边box2 我有box3带有一些文字 我希望文本使用右侧的所有可用空间box2 通过粘贴下面的 HTML 您将得到 到目前为
  • 替换先前 bash 命令中所有字符串的快捷方式

    man bash描述了一个非常有用的事件指示符 https www gnu org software bash manual bashref html Event Designators 字符串1 字符串2 快速替换 重复最后一个命令 将
  • 使用 HttpWebRequest 使用 multipart/form-data 发布数据/上传图像

    我正在尝试使用 ImageShack API 上传图像 要使用它 我应该POST图像使用multipart form data 我这样做就像 var postData var req HttpWebRequest Create http w
  • 错误:无法分配给引用或变量!角度 4 [重复]

    这个问题在这里已经有答案了 添加一些新的 html 代码后 我在 Angular 4 中遇到错误 之前表单工作正常 我尝试评论新代码 但它仍然不起作用 该怎么办 我研究了这个错误并尝试解决 但没有任何帮助 我也没有得到问题的确切位置 我的代
  • 在django中提交表单后重定向到索引页面

    除了添加产品数据后重定向回索引页面之外 一切正常 目前在我的数据保存后 它被重定向到127 0 0 1 8000 产品 add product add product 目前 当我的索引页面 add product html 加载时 我有一个
  • 后增量后 == 令人费解的行为[重复]

    这个问题在这里已经有答案了 有人在某个论坛帖子中假设 许多人甚至经验丰富的 Java 开发人员都无法理解下面的 Java 代码 Integer i1 127 Integer i2 127 System out println i1 i2 S
  • 在标准任务之前/之后自动运行自定义任务

    我经常想在运行其中一项标准任务之前进行一些自定义 我意识到我可以创建新任务 按照我想要的顺序执行现有任务 但我发现这很麻烦 而且开发人员错过他应该运行 my compile 而不是编译的机会很大 并导致难以修复错误 所以我想定义一个自定义任
  • EntityFramework Core 2.0 跳过加载专栏

    我使用 EF core 将一些文件保存到 MSSQL 数据库中 其结构如下 public class UploadedFile public int Id get set public string Source get set publi
  • 如何轻松地使用可能的幺半群并将值与自定义操作组合起来?

    基本上 我想做的手动定义是微不足道的 maybeCombine a gt a gt a gt Maybe a gt Maybe a gt Maybe a maybeCombine Nothing Nothing Nothing maybeC
  • vlcj:: 无法在 64 位操作系统中加载库“libvlc”

    我使用的是 64 位操作系统 Windows 7 并且我有 32 位 VLC 版本 1 1 8 我已经添加了这些库jna jar platform jar vlcj 1 1 5 1 jar 我无法使用 jVlc 进行流式传输 public
  • 如何使用 RecursiveIteratorIterator 忽略目录?

    我尝试了几种方法来忽略某些目录RecursiveIteratorIterator在文件系统上 举个例子 我想忽略以下目录 cache My Iterator看起来像这样 dirname is root directory new Recur
  • bash:打印 x 空行数

    有时我想一次创建大量空白 与特定字符略有不同 我尝试使用 for 循环来执行此操作 但我只是打印 n一旦有了这个实现 此外 实际打印的是实际的 n 字符而不是空行 有什么更好的方法来做到这一点 for i in 1 100 gt do gt
  • Nginx 反向代理中的 SSL 传递?

    是否可以使用带有 SSL Pass through 的 Nginx 反向代理 以便将请求传递到需要客户端证书身份验证的服务器 这意味着服务器需要有客户端服务器的证书 而不需要 Nginx 反向代理服务器的证书 不确定它在您的情况下能发挥多大
  • jquery dataTable分页未出现

    我正在与http datatables net http datatables net 在 Grails 应用程序中 这是我的初始化代码
  • 显示不同文件更新的 Git 冲突标记

    我们正在将Master合并到Feature Branch中 突然 我们观察到一些文件出现了冲突 这些文件从未移至 Master 文件中的冲突标记在正确的部分显示 Head 但主标记显示来自完全不同文件的内容 不确定 2 如何可能 我们现在真
  • 通过注释过滤javadoc

    我希望能够使用 nnotations 来标记要从 javadoc 中排除的类或方法 有没有办法为此目的对标准 doclet 进行子类化 第一次查看 javadoc doc 并没有找到解决方案 已提议但目前尚未实现注释 exclude 在链接
  • 有没有比 CGI for Ruby 更好的 HTML 转义和反转义工具?

    CGI escapeHTML很糟糕 但是CGI unescapeHTML完全无聊了 例如 require cgi CGI unescapeHTML 8230 gt correct an ellipsis CGI unescapeHTML h
  • 如何让2个浮动div具有相同的高度

    我有一个包含内部包装器的包装器 并且该内部包装器包含 2 个浮动 div 左边的内容比右边的内容多 所以它的高度比右边的高 我正在寻找的是两个容器具有相同的高度 http jsfiddle net Kh2Fh http jsfiddle n
  • 使用用户名/密码进行 SAML 断言 - 消息到底是什么样的?

    我需要创建一些 SAML 2 0 断言 但无法找到 XML 的实际外观 大多数文档似乎都是关于使用特定工具 而不是关于消息 我已经有了模式 有很多可能性 但我找不到相关消息在实践中实际是什么样子的示例 业务规则规定 为了创建共享身份 用户告