对于如何将Windows身份验证感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍浏览器从React应用程序传递到SpnegoKerberosSpringSSO?,并为您提供关于asp.net–W
对于如何将Windows身份验证感兴趣的读者,本文将会是一篇不错的选择,我们将详细介绍浏览器从React应用程序传递到Spnego Kerberos Spring SSO?,并为您提供关于asp.net – Windows 7中Safari 5.x的Windows身份验证问题、asp.net – 从表单身份验证转换为Windows身份验证、asp.net – 使用带有模拟的Windows身份验证的Web应用程序的IIS、asp.net – 在使用ASPNet Core的Linux上托管时的Windows身份验证的有用信息。
本文目录一览:- 如何将Windows身份验证(浏览器)从React应用程序传递到Spnego Kerberos Spring SSO?
- asp.net – Windows 7中Safari 5.x的Windows身份验证问题
- asp.net – 从表单身份验证转换为Windows身份验证
- asp.net – 使用带有模拟的Windows身份验证的Web应用程序的IIS
- asp.net – 在使用ASPNet Core的Linux上托管时的Windows身份验证
如何将Windows身份验证(浏览器)从React应用程序传递到Spnego Kerberos Spring SSO?
我们有一个React应用程序,用于从Spring Boot
Web服务获取数据。两者都部署在同一服务器(tomcat)中。但是我们只需要Kerberos身份验证即可从React应用程序进行Web服务调用。任何人都可以打开React应用程序,但是当它导航时,它将调用Webservcie获取数据。因此,如果我们将spring配置为支持spnego
kerberos spring sso,浏览器是否有可能将登录的Windows凭据自动(从React应用程序运行,在浏览器上运行)传递给spring
boot Web服务。
我们正在从React App调用该服务,如下所示-
export const client = rest .wrap(mime, { registry: registry }) .wrap(errorCode) .wrap(defaultRequest, { headers: { ''Content-Type'': ''application/json'', ''Accept'': ''application/json'' }, method: ''GET'' })export const fetchPDSIs = (Id) => APIHelpers.client(APIHelpers.buildPDSIReq(Id)) .then( response => (response.entity || []).sort((a, b) => a.portalinstance.localeCompare(b.portalinstance)) , response => { global.msg.error(<div className=''smallTextNotification''>`Fetching instances and portal for {Id} error: {response.status.code} -> {response.status.text}</div>) return [] } )export const buildPDSIReq = (Id) => ({path: `${serverAddr}/msd232/pdsiii/${Id}`})
答案1
小编典典是的,可能是客户端方面的要求:
- 用户登录操作系统的域帐号。
- 在浏览器中正确配置,请参阅Spring文档
例如,对于Internet Explorer:
E.3 Internet Explorer
完成以下步骤,以确保您的Internet Explorer浏览器已启用执行Spnego身份验证。
Open Internet Explorer.Click Tools > Intenet Options > Security tab.In Local intranet section make sure your server is trusted by i.e.
adding it into a list.
Kerberos身份验证由后端服务返回的HTTP标头触发:
WWW-Authenticate: Negotiate
如果正确配置了操作系统和浏览器,则将触发服务票证生成,该浏览器将作为 授权 HTTP标头值发送。
编辑: 如果您的应用程序分为分别托管在不同主机上的前端和后端,则您必须为用户将要输入的前端主机注册SPN(并生成密钥表)。例:
- 后端:api.test.com
- 前端:application.test.com
For SSO to work, you have to register SPN: application.test.com, backend host
name is irrelevant here. Command:
setspn -A HTTP/application.test.com@test.com ad_user_to_registern_spn_for
asp.net – Windows 7中Safari 5.x的Windows身份验证问题
Problems with Safari 5.1 in Asp.Net Windows Authentication
Problem using Windows authentication in Safari5.1
Safari 5.1 & Windows authentication broken with modal dialog
Safari 5.x是否存在Windows身份验证问题?如果是这样,如何解决?任何的想法?
解决方法
怎么解决?
在IIS中,转到您网站的身份验证设置.右键单击Windows身份验证,选择提供程序并删除Negotiate,留下NTLM,这使得一切正常.
[参考文献]
> AJAX POST Request Only Works Once in Safari 5
维基百科上的> Negotiate Mechanism文章显示它未在Safari中实现
asp.net – 从表单身份验证转换为Windows身份验证
解决方法
您可以创建新帐户并从旧的非Windows身份验证帐户导入信息,然后删除旧帐户.但是,作为迁移的一部分,需要在此方法中更改依赖UserId的所有db记录.
asp.net – 使用带有模拟的Windows身份验证的Web应用程序的IIS
如果我在IIS上设置Web应用程序以使用 Windows身份验证并模拟经过身份验证的用户和我的ConnectionString到sqlServer数据库使用Integrated Security = true;,我的应用程序在尝试连接到数据库时将使用应用程序验证的用户?
如果是的话,这是一件好事吗?
(该数据库具有LDAP / AD“域用户”权限.考虑一个可审计的数据库,其中每个用户都将记录您的操作.)
解决方法
一般来说,这并不好.但这取决于具体情况.以下是需要考虑的主要因素:
>每个用户都需要自己的连接.即使使用连接池,也无法重用来自不同用户的连接.创建连接是相对昂贵的操作.每个连接都需要一点内存>每个用户都需要登录(或者至少是用户所属的Windows组需要登录).这可以是创建登录等的额外维护.另一方面,可以以不同的方式保护每个这样的登录.重要的是,如果使用单个帐户连接到sql Server,也可以实现为不同用户保护对象
asp.net – 在使用ASPNet Core的Linux上托管时的Windows身份验证
public class Program { private static void Main(string[] args) { using (WebApp.Start<Startup>("http://localhost:9000")) { Console.WriteLine("Press Enter to quit."); Console.ReadKey(); } } } public class Startup { public void Configuration(IAppBuilder app) { var listener = (HttpListener) app.Properties["System.Net.HttpListener"]; listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication; app.UseNancy(); }
当请求进入时,将使用其Windows域凭据验证用户.
对于ASPNetCore,我想知道是否有类似的设置可以使用但是应用程序在Linux上使用Kestrel Web服务器运行.
我听说Windows 2016和OpenIdConnect中间件可能有多种选择,或者我可以使用在Windows上运行的IdentityServer,但在Linux上使用应用程序,但我认为需要中间件,我也不清楚是否会有“认证舞蹈”暗示它可能不像我现在那样无缝.
任何建议和/或代码示例将不胜感激.
谢谢
解决方法
通过Windows服务器路由登录请求是您唯一的选择. IdentityServer将是一个很好的起点. OpenIdConnect可能是您以最少的用户交互在两台服务器之间传递身份的最佳选择.
关于如何将Windows身份验证和浏览器从React应用程序传递到Spnego Kerberos Spring SSO?的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于asp.net – Windows 7中Safari 5.x的Windows身份验证问题、asp.net – 从表单身份验证转换为Windows身份验证、asp.net – 使用带有模拟的Windows身份验证的Web应用程序的IIS、asp.net – 在使用ASPNet Core的Linux上托管时的Windows身份验证的相关知识,请在本站寻找。
本文标签: