首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文搞懂单点登录三种情况的实现方式

一、是什么 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一 SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统 SSO...一般都需要一个独立的认证中心(passport),子系统的登录均得通过passport,子系统本身将不参与登录操作 当一个系统成功登录以后,passport将会颁发一个令牌给各个子系统,子系统可以拿着令牌会获取各自的受保护资源...这样所有的子域应用就都可以访问到这个Cookie 不过这要求应用系统的域名需建立在一个共同的域名之下, tieba.baidu.com 和 map.baidu.com,它们都建立在 baidu.com...这个域名之下,那么它们就可以通过这种方式来实现单点登录 不同域名下的单点登录(一) 如果是不同域的情况下,Cookie是不共享的,这里我们可以部署一个认证中心,用于专门处理登录请求的独立的 Web服务...,注册系统1 系统1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源 用户访问系统2的受保护资源 系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数 sso认证中心发现用户已登录

3.5K20

BI仪表板数据可视化大屏

以仪表板为例: (1)在新窗口打开仪表板 选择仪表板,单击页面右上角的新窗口按钮,在新的浏览器窗口中打开仪表板。...image.png (3)获取访问令牌 进入系统后台管理 >生成令牌。...image.png 在这里需要注意 生成令牌时使用的用户名,应具有待访问报表或仪表板的查看权限。...单点登录集成 如果业务系统有更高的安全性要求,可在业务系统登录画面中,通过登录API,以实现单点登录集成,并将获取的令牌放在会话变量中。...通常用业务系统用户账号调用BI系统的登录API,是需要Wyn中具有相同用户名和密码的账号才可以。 为了避免为每个用户创建多套账号密码,我们还可以编写自定义安全提供程序。

8.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

单点登录(Single Sign On)解决方案

需求 多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 A 网站和 B 网站是同一家公司的关联服务。...现在要求,用户只要在其中一个网站登录,再访问另一个网站就会自动登录,请问怎么实现? 涉及到的关键点: 这里就涉及到了 跨域认证 以及 前端页面 JavaScript 跨域 问题。...二、JavaScript 跨域 单点登录难免会遇到窗口之间 JS 跨域问题,此时的解决方案是 postMessage postMessage 是HTML5 XMLHttpRequest Level 2中的...页面和其打开的新窗口的数据传递 b.) 多窗口之间消息传递 c.) 页面与嵌套的iframe消息传递 d.)...origin: 协议+主机+端口号,也可以设置为"*",表示可以传递给任意窗口,如果要指定和当前窗口同源的话设置为"/"。

74730

当.Net撞上BI可视化,这3种“套路”你必须知道

(3)获取访问令牌 进入系统后台管理 >生成令牌。 输入令牌信息,单击" 生成令牌"按钮即可生成该用户名的令牌字串;单击右侧的获取令牌按钮即可将令牌复制。...在这里需要注意 生成令牌时使用的用户名,应具有待访问报表或仪表板的查看权限。 比如专门为项目创建一个名为guest的用户,再创建一个名为" 集成用户"的角色,并将guest用户加入该角色。...单点登录集成 如果业务系统有更高的安全性要求,可在业务系统登录画面中,通过登录API,以实现单点登录集成,并将获取的令牌放在会话变量中。...需要集成报表功能时,再从会话变量中取出令牌,串接在集成URL中。这样,业务系统的每个用户都是不同的令牌。 从业务系统的登录画面中取出的用户登录信息,是用户输入的业务系统用户名和密码。...通常用业务系统用户账号调用BI系统的登录API,是需要Wyn中具有相同用户名和密码的账号才可以。 为了避免为每个用户创建多套账号密码,我们还可以编写自定义安全提供程序。

3.1K20

单点登录(Single Sign On)解决方案

道一线大厂高频精选面试题合集(JVM+Spring+RabbitMQ+Mybatis+Redis+分布式+微服务) 整理完今年的阿里、腾讯、网易等公司的面试后,我有一个重大发现 需求 多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统...现在要求,用户只要在其中一个网站登录,再访问另一个网站就会自动登录,请问怎么实现? 涉及到的关键点: 这里就涉及到了 跨域认证 以及 前端页面 JavaScript 跨域 问题。...二、JavaScript 跨域 单点登录难免会遇到窗口之间 JS 跨域问题,此时的解决方案是 postMessage postMessage 是HTML5 XMLHttpRequest Level 2中的...页面和其打开的新窗口的数据传递 b.) 多窗口之间消息传递 c.) 页面与嵌套的iframe消息传递 d.)...origin: 协议+主机+端口号,也可以设置为"*",表示可以传递给任意窗口,如果要指定和当前窗口同源的话设置为"/"。

56800

前端常见问题和技术解决方案

-- 父窗口:http://www.domain.com/a.html --></iframe...页面和其打开的新窗口的数据传递b.) 多窗口之间消息传递c.) 页面与嵌套的 iframe 消息传递d.) 上面三个场景的跨域数据传递<!...(passport),子系统的登录均得通过 passport,子系统本身将不参与登录操作当一个系统成功登录以后,passport 将会颁发一个令牌给各个子系统,子系统可以拿着令牌会获取各自的受保护资源,...这样所有的子域应用就都可以访问到这个 Cookie不过这要求应用系统的域名需建立在一个共同的域名之下, tieba.baidu.com 和 map.baidu.com,它们都建立在 baidu.com...这个域名之下,那么它们就可以通过这种方式来实现单点登录3.

1.8K11

Dubbo 分布式架构搭建教育 PC 站 - 微信登录

令牌与密码的作用都可以进入系统,但是有三点差异: 1、令牌是短期的,到期会自动失效,用户自己无法修改。密码一般长期有效,用户不修改,就不会发生变化。 2、令牌可以被数据所有者撤销,会立即失效。...3、令牌有权限范围,比如不能获取用户密码信息。对于网络服务来说,只读令牌就比读写令牌更安全。密码一般是完整权限。 这些设计,保证了令牌可以让第三方应用获得权限,同时又随时可控,不会危及系统安全。...即 iframe 的页面将会被当做一个独立的源,并且不能提交表单,不能执行 JavaScript 脚本,也不能让包含 iframe 的父页面导航到其他地方,所有的插件, Flash 等也全部不能起作用...- 允许同域请求,比如 Ajax、storage allow-forms - 允许进行提交表单 allow-popups - 允许 iframe 中弹出新窗口,比如 window.open、target...=”_blank” allow-pointer-lock - 在 iframe可以锁定鼠标,主要和鼠标锁定有关 加上 sandbox=“allow-scripts allow-top-navigation

1.1K10

web跨域解决方案

我们举例说明:   比如一个黑客,他利用iframe把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名和密码登录时,如果没有同源限制,他的页面就可以通过javascript读取到你的表单中输入的内容...又比如你登录了OSC,同时浏览了恶意网站,如果没有同源限制,该恶意 网站就可以构造AJAX请求频繁在OSC发广告帖. 跨域的情况分为以下几种: ?...其中.源窗口可以是全局的window对象,也可以是以下类型的窗口:   1、文档窗口中的iframe: var iframe = document.getElementById('my-iframe')...:http://g.cn:80/)     接收消息:那目标窗口要怎么接收传过来的数据呢,只要监听window的message事件就可以接收了。...,该对象有三个属性: data : 消息 origin:消息的来源地址 source:发送消息窗口的window对象引用 使用方法(案例): http://test.com/index.html--

2.7K100

CSRF攻击与防御

访问恶意网站时,会对图片的路径发起 GET 请求(图片的地址是博客网站的,请求对象是博客网站后端),此使博在博客网站是登录态,请求就会带上 Cookie,结果后端认为就是博本人了,就删掉了博文。...防范 CSRF 攻击 CSRF 攻击主要特征就是利用用户的登录态,在有登录状态网站时访问了恶意网站(用户并不清楚是不是恶意的),恶意网站利用 CSRF 漏洞伪装成用户发起了请求。...: Set-Cookie: SameSite=Lax SameSite 很好用,但是兼容性不太好。...如果一个网站没有内嵌网页,它的 top 对象与 window 对象是同一个,如果嵌套了一个网页,切换到 iframe 的环境中,会发现 top 与 window 不是一个对象,top 指向窗口(顶级窗口...两者的 location 对象也不一样。下面是禁止 iframe 嵌套的代码: if(top.location !

1.9K40

跨域

更可怕的是,Cookie 往往用来保存用户的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。因为浏览器同时还规定,提交表单不受同源政策的限制。...; 3.2降域的限制性 使用降域来达成跨域的目的有非常大的限制性: 域名要相同:a.com和b.com就不行,a.oxc.com和b.oxc.com就可以; 降域只适用于iframe窗口和获取cookie...window.frames:返回窗口中所有命名的框架。 该集合是 Window 对象的数组,每个 Window 对象窗口中含有一个框架或 。...这个API为window对象新增了一个window.postMessage方法,允许跨窗口通信,不论这两个窗口是否同源。...也可以设为*,表示不限制域名,向所有窗口发送。

2.2K30

每天10个前端小知识 【Day 4】

下面从 DOM 同源策略和 XMLHttpRequest 同源策略来举例说明: 如果没有 DOM 同源策略,也就是说不同域的 iframe 之间可以相互访问,那么黑客可以这样进行攻击: 做一个假网站,里面用...这时如果用户输入账号密码,我们的网站可以跨域访问到 mybank.com 的 dom 节点,就可以拿到用户的账户密码了。...Null是对象?为什么? null不是对象。 虽然 typeof null 会输出 object,但是这只是 JS 存在的一个悠久 Bug。...应用场景 在了解了上述的前端的缓存方式后,我们可以看看针对不对场景的使用选择: 标记用户与跟踪用户行为的情况,推荐使用cookie 适合长期保存在本地的数据(令牌),推荐使用localStorage 敏感账号一次性登录...谈谈你知道的DOM常见的操作 文档对象模型 (DOM) 是 HTML 和 XML 文档的编程接口 它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容

10510

iframe跨域调用js_ajax跨域访问

是同域下面,不同子域之间的跨域: 同域,不同子域跨域,设置相同的document.domian就可以解决 … CP=";CAO PSA OUR";...,而Iframe是不能保存Session的因此,网上 … 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法 单点登录需要在需要进入的子系统B中添加一个类,用于接收A系统传过来的参数...1.IFrame跨域访问: http://blog.csdn.net/fdipzone/article/details/17619673 2.IFrame跨域访问自定义高度: 由于JS禁止跨域访问,...… javascript跨域、iframe跨域访问 1.window 对象 浏览器会在其打开一个 HTML 文档时创建一个对应的 window 对象.但是,如果一个文档定义了一个或多个框架(即,包含一个或多个....在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息.

10.8K20

如何取消Chrome浏览器跨域请求限制、跨域名携带Cookie限制、跨域名操作iframe限制?

取消跨域限制、跨域名携带Cookie限制、跨域名操作iframe限制之后的Chrome可以更加方便Web前端开发,同时也可以作为一个完美的爬虫框架。...当协议、子域名、域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算作“跨域”,正常情况下浏览器会阻止XMLHttpRequest对象的跨域请求。 2.如何取消跨域请求限制?...假设接口需要登录,就算我们已经登录了,跨域访问B域名接口因为没有携带Cookie,请求也是没有登录状态的。 2.如何解除限制?...假设我们在A域名的网页上有一个指向B域名的iframe,我们访问A域名的网页时,B域名的iframe正常显示,但是当我们通过js去操作B域名的iframe时,将会被浏览器阻止(同源域名不会被阻止);相应的通过...window.open弹出的窗口也受到这个策略的限制。

5.8K30

漏洞科普:对于XSS和CSRF你究竟了解多少

d.利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,进行不当的投票活动。 e.在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。...要完成一次CSRF攻击,受害者必须依次完成两个步骤: 1.登录受信任网站A,并在本地生成Cookie。 2.在不登出A的情况下,访问危险网站B。...是的,确实如此,但你不能保证以下情况不会发生: 1.你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。...(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登录/结束会话了……) 3.上图中所谓的攻击网站,可能是一个存在其他漏洞的可信任的经常被人访问的网站。...toBankId=11&money=1000> 首先,你登录了银行网站A,然后访问危险网站B,噢,这时你会发现你的银行账户少了1000块…… 为什么会这样呢?

99890

web messaging与Woker分类:漫谈postMessage跨线程跨页面通信

符串,结构对象、数据对象(:File和ArrayBuffer)或是数组都是可以的。 targetOrigin:接受方。...除了无法读取DOM对象(包括:document、window、parent)、本地文件、对话框(alert/confirm/prompt),大部分 window 对象的方法和属性是可以使用的,:  WebSockets...——即使这些脚本正在被不同的window、iframe或者worker访问。...Broadcast Channel: 可以实现同 源 下浏览器不同窗口,Tab页,frame或者 iframe 下的 浏览器上下文 (通常是同一个网站下不同的页面)之间的简单通讯。...相对于驱动应用的JavaScript线程,它运行在其他线程中,所以不会造成阻塞。它设计为完全异步,同步API(XHR和localStorage)不能在service worker中使用。

2K30

挖洞经验 | 看我如何通过子域名接管绕过Uber单点登录认证机制

如果在该网站完成登录之后意味着你通过了其SSO系统,利用SSO系统分配的会话cookie可继续实现其它Uber网站的登录访问。...这种方式下,由受害者生成一个临时的会话令牌”_csid”,而攻击者利用该令牌在单独的浏览器实现成功认证登录,非常完美。 PoC及视频演示 再多的流程图也比不上一个PoC说得清楚。...当页面加载完成后,你将会在底部看到一个url、Cookie字符串和Set-Cookie字符串,这就是自动窃取的,攻击者用来进行登录认证的cookie值 3、打开另外一个浏览器窗口,设置拦截工具进行请求回应的流量截取...接下来,就可以受害者身份完成其它域名网站的认证登录。...你可以将这两个PHP文件中的“riders.uber.com”改为其它Uber子域名,vault.uber.com、partners.uber.com和developer.uber.com等,进行攻击

2.5K50

聊一聊前端面临的安全威胁与解决对策

如果您实施良好的安全措施,将防止未经授权的用户数据访问,并有助于保持机密性。 处理用户身份验证和漏洞:确保用户登录和身份验证至关重要。...当您执行适当的前端安全措施时,可以阻止/减轻对用户账户的未经授权访问。这种身份验证可以防止用户在您的网络应用上的账户和操作被利用。...您可以使用指令 img-src 、 script-src 等来定义所有允许的域。...当用户登录您的Web应用程序或开始会话时,在服务器端生成一个唯一的CSRF令牌,并将其与用户的会话相关联。 2、在表单中或者您的AJAX请求的头部中,将CSRF令牌作为隐藏字段包含进去。...如果不是,顶级窗口将被重定向到相同的URL,从而打破任何嵌入的iframe

33930

Web 嵌入 | Electron 安全

,渲染进程访问 iframe 内变量的方式如下 iframe 页面设置变量 window.flag = "strings for iframe" 渲染进程可以使用 iframe 的 name 属性或者序号来获取...访问渲染进程就更简单了 渲染进程设置变量 window.abc = "abc" iframe 内通过以下代码获取到变量 window.parent.abc 这里需要注意一点,大多数渲染进程的窗口是通过加载本地文件创建的..., 本地文件创建的窗口与 加载http(s)页面的 iframe 是不同源的 本地文件创建的窗口与加载本地文件的 iframe 是同源的 3. iframe 执行 Node.js 的情况 从上面的测试来看...或者称作 HTML 嵌入对象元素)表示引入一个外部资源,它用于嵌入各种外部对象到网页中,如图像、多媒体(音频、视频)、SVG图形、PDF文档、Flash动画(虽然现代Web已逐步淘汰Flash)等。...应用效果 在一个独立的 frame 和进程里显示外部 web 内容 所以其实可以把它视为一个和窗口一样的窗口进程看待 使用 webview 标签将'guest'内容 (例如网页) 嵌入到您的 Electron

21110

在新窗口中打开页面?小心有坑!

回到上一个刚才的页面窗口。 嗯?登录态丢了,重新登录一下吧。 靠,中招了! ? 2....这个锅是一个叫opener的全局对象的锅。 回到例子1,可以自己动手尝试,在新打开的那个页面中,打开console, 输入opener,可以看到这个对象,正是打开本页面的父页面的窗口对象。...如果父页面和新开窗口中的页面是不同域名的,浏览器会禁止新窗口访问opener中的内容。...例子1就是利用这个方式,将父窗口的链接悄悄地替换成了钓鱼页面的地址。刚好父窗口的原始页面没有做防止被iframe嵌入,可以简单地通过iframe做一个极真实的钓鱼页面。...如果再搞得狠一些,父窗口中的页面交互可以寸步难行。 为什么新窗口中的页面会影响父页面的线程呢?chrome不是每个标签页一个单独的进程?然后进程内包含若干线程

3.9K10
领券