SOA 服务设计/身份验证

2024-01-29

我对 SOA 相当陌生,因此正在尝试。

目前,对我来说最大的问题是身份验证,我目前的想法涉及以下内容:

客户端向身份验证/用户服务发送某种身份验证消息,该服务查询数据库,如果找到用户并且密码有效,它将使用会话 ID 进行响应,该 ID 将用于所有进一步的请求这个客户。

这对我来说似乎相当不错,但我不知道应该如何处理对其他服务的请求,我想到了三种不同的方法。

  1. 每个服务都会询问身份验证服务会话是否有效,如果有效,则用户处于什么角色。身份验证服务会在数据库中查找并做出相应的回复。

  2. 身份验证服务将所有会话信息保存在 RAM 中,并且无需数据库往返即可响应请求。

  3. 身份验证服务将授权消息发送到 esb,esb 将此授权消息转发到每个服务,并且这些服务会缓存该消息。无需向身份验证服务发出进一步请求。如果用户注销或他的角色发生变化,则会发送另一条消息并由所有服务处理。

我认为第一种方法对身份验证服务/数据库造成了太大的压力,但实施起来却花费最少的精力。

第二个仍然很容易实现,但身份验证服务的压力几乎保持不变。

第三种实现起来稍微复杂一些,但会减少响应时间,因为不会访问身份验证服务。但是,如果会话信息太多,这种方法就会失败,并且很难提供可扩展性。


如果所有服务都是内部的,那么最好的方法应该是这样的,

  1. 身份验证服务向服务客户端颁发令牌。
  2. 服务客户端将令牌包含在封装在 WS-Security 或类似内容中的 SOA 消息中。
  3. 在提供服务之前,服务应使用身份验证服务验证令牌。

对于外部服务,我建议您查看联合解决方案,例如SAML http://en.wikipedia.org/wiki/Security_Assertion_Markup_Language.

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

SOA 服务设计/身份验证 的相关文章

随机推荐

  • 为什么STL的命名约定使用这么多前导下划线?

    例如 template
  • 如何使用子表达式

    你好 stackoverflow 社区 我有一个序言代码 它为真值表创建子表达式 然后给它们值 true false 它对于很多表达式都工作得很好 但是使用这个语句会发生这种情况 1 phrase subexprs bicond and i
  • mySQL 按成员名称分组

    我正在使用此查询来获取向用户发送消息的人员或向其发送消息的用户的列表 SELECT messages FROM SELECT MAX lastseen AS lastseen FROM messages WHERE user IN from
  • 如何使用 AutoHotkey 插入格式化文本?

    我创建了一个脚本 可以在任何 Windows 应用程序中插入今天的日期 当我将其粘贴到目标应用程序时 我想控制格式 例如字体和 或颜色 我似乎无法在文档或任何帮助论坛中找到它 格式化文本可以使用 AutoHotkey 1 1 又名 Auto
  • 使用 Flask 处理 Twitter Bootstrap 事件

    我在网络应用程序上有一组 Twitter Bootstrap 按钮 我需要将选择传递给 Flask 并且我不想使用提交按钮 div class btn group view opt btn group div
  • 在 PHP 页面之间传递信息

    如何在 PHP 页面之间传递信息 例如 我有一个 PHP 脚本来处理来自表单的登录输入 然后有一个单独的 PHP 脚本来处理用户的进一步输入 但是 我希望第二个 PHP 文件接收来自登录表单的输入 本质上 我不希望相同的脚本在登录时运行两次
  • ElasticSearch - RestHighLevelClient java.io.IOException:现有连接被远程主机强制关闭

    上午取100K使用单个查询添加索引中的文档 为此我正在使用ScrollSearchAPI 之后 我将逐一迭代每个文档 并向其中添加一个字段并为其创建一个新索引 我正在使用RestHighLevelClient用于 Java 代码和 Elas
  • 在 Python 中打印表格

    我有一个任务要在 Python 中创建一个 10 x 10 表 并且我在打印函数中使用结尾 t 来防止它创建新行 但是 我需要它在 10 个字符之后开始一个新行 我怎样才能让它做到这一点 这是我的代码 product 0 for x in
  • 在秒差距中,有没有办法防止词素消耗换行符?

    中的所有解析器Text Parsec Token礼貌地使用lexeme吃掉令牌后的空白 对我来说不幸的是 空格包含新行 我想将其用作表达式终止符 有没有办法说服lexeme留下一条新线 不它不是 这是相关代码 From 文本 Parsec
  • 如何在数据框中转换列? [复制]

    这个问题在这里已经有答案了 我正在从 hbase 获取数据并将其转换为数据帧 现在 我在数据框中有一列string数据类型 但我需要将其数据类型转换为Int 尝试了下面的代码 但它给我一个错误 df withColumn order ord
  • 显然 conda 找不到一些非常常见的包:我做错了什么?

    环境 我正在使用conda4 6 7 在配备 High Sierra 的 Mac 上 我有一些遗留的 Python 代码 首先我想运行它 当然 由于这是研究代码 我没想到会找到 花哨的东西 例如测试套件 但我希望至少有一个requireme
  • 项目无法识别 cucumber-picocontainer 依赖性

    我目前正在使用 Cucumber JUnit 和 Selenium 开发 Java 测试框架 我已经参与过类似的项目 但我在这个项目上遇到了问题 我正在尝试创建一个单例的 Context 类 我想使用 cucumber picocontai
  • UINavigationController 横向模式下的后退按钮问题?

    我的iPhone应用程序之前支持纵向模式 现在我想也支持横向模式 除了导航控制器后退按钮之外 我的应用程序中的一切都工作正常 我在导航控制器中使用了表格视图 当我在横向模式下单击后退按钮时 视图会弹出并加载以前的视图 但动画很奇怪 我已经给
  • Angularjs 列表和详细视图

    这是我的基本场景 对于项目列表 摘要视图 我想显示在同一页面上单击的项目的详细信息视图 我拿了这个jsfiddleexample http jsfiddle net pkozlowski opensource 65Cxv 7 并将其改造成这
  • 如何通过自动显式查看类型推断的结果?

    我最近正在研究C 11 14的自动功能 出于教育目的 我想明确显示我的代码的类型推断结果 我尝试了 typeid name 但我发现这种方法有两个问题 输出有时难以理解 例如 NSt3 16vectorIiNS 9allocatorIiEE
  • 如何用JQuery实现FLXHR进行跨域交互

    我正在使用 JQuery FLXHR 从跨浏览器获取数据 下面是示例jquery代码 set up the domain that we re going to call and tell flXHR not to try to parse
  • 创建全天活动失败

    我正在尝试创建一个全天活动 let foobar any subject calendarEvent Title v5 body contentType HTML content calendarEvent calendarEvent De
  • 代码覆盖率和分析之间的区别

    代码代码覆盖率和分析之间有什么区别 这是最好的代码覆盖率开源工具 代码覆盖率是对代码已运行量的评估 这用于查看测试对代码的执行情况 分析用于查看代码各个部分的执行情况 这些工具取决于您使用的语言和平台 我猜你正在使用Java 所以推荐代码覆
  • 什么是 stdole2.tlb

    stdole32 tlb 包含所有基本类型定义 如果我们使用 MIDL 则每个库都必须导入它 但是当我创建 ATL DLL 项目时 lib 文件看起来像这样 import oaidl idl import ocidl idl uuid 4C
  • SOA 服务设计/身份验证

    我对 SOA 相当陌生 因此正在尝试 目前 对我来说最大的问题是身份验证 我目前的想法涉及以下内容 客户端向身份验证 用户服务发送某种身份验证消息 该服务查询数据库 如果找到用户并且密码有效 它将使用会话 ID 进行响应 该 ID 将用于所