`
ihuashao
  • 浏览: 4723166 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

C/S中利用域控进行SSO的简单实现方式

阅读更多

我先简单的介绍一下我的需求。我希望我做的软件中,可以与域控集成,实现单点登录,且不需要额外输入帐号秘密。当然这是在已经登陆到域的前提下。

为此我翻过很多资料。Windows 确实提供了 API 来操作登录。但小弟比较愚笨,一直感觉这些 API 使用起来很笨拙。且根据系统需求,往往进行域控帐号认证,都是在服务器上进行的。因为你的机器可能不能访问到我的域控服务器。对于一般的 IT 服务器部署,域控服务器都是在一个安全区域里面的。

在此之前,我已经实现了一个WebService ,提供了一个 Login(UserName,Password) 的方法, Login 可以在域控上进行认证。但这个方法必须在客户端自己做一个登陆窗体。

一次偶然的机会,我发现,如果在Webservice IIS 上设置了 NT 集成用户认证,那么在非域环境中登陆的时候,是会自动弹出一个登陆密码的框框的。其实这点我早就应该知道了,只是以前都是在网页中弹出的,没想到在 C/S 环境中也会自动弹出,根据这一个发现,我设计了一个简单的 SSO 登陆方式:

首先,实现一个Webservice ,我选用的 C# 实现的,微软这点还是做得非常易用的。这个 Service ,只需要提供一个方法:

publicstringGetUserName(){returnUser.Identity.Isauthorized?User.Identity.Name:"";}

实现也很简单,就从当前认证的用户信息中获取用户的名字就可以了。

然后,发布这个服务,并在IIS 中设置账户的安全信息是集成 NT 域控认证,同时取消匿名访问。

这样就可以,现在你只需要在你的应用中,在刚开始初始化的时候,调用一下这个WebServie, 如果获取的账号名不为空,就表示账户已经在域控进行认证了。

关键是,这个方法可以让你在很多地方进行复用,使用也很简单。不过前提必须是网络应用。那种单机应用就不怎么适合了。

分享到:
评论

相关推荐

    SSO个人实现方式

    在本文中,我们将探讨SSO的原理,以及如何通过提供的压缩包文件实现个人SSO系统。 SSO的核心思想是将用户认证过程集中管理,当用户成功登录到一个“认证中心”后,可以在其他已集成的系统中无缝漫游。这减少了用户...

    SSO的简单实现SSO的简单实现

    如果项目对SSO的需求较低,且不想改变被集成系统的原有结构,可以采取以下简单实现方式: - **建立映射关系**:首先,你需要创建一个映射表或利用LDAP来存储用户在门户系统与其他系统间的用户名对应关系。确保每个...

    spring boot 实现SSO单点登陆

    spring boot整合spring security 实现SSO单点登陆 完整DEMO. ...2、先后启动SsoServer、sso-resource、sso-client1、sso-client2 3、访问http://sso-taobao:8083/client1/ 或 http://sso-tmall:8084/client2/

    .NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录

    在这个项目中,我们将深入探讨如何利用Redis或Memory Cache以及cookie来实现SSO。 首先,SSO的核心理念是让用户在访问多个相互关联的应用时只需要登录一次,之后就能在这些应用间自由切换,无需重复认证。这对于...

    单点登录(SSO)实现方式(附源码).doc

    本文将详细介绍SSO的基本概念及其二级域名和跨域的实现方式。 SSO的核心在于提供一种机制,使得用户在首次登录后,其身份认证信息能够被其他系统识别,从而实现无缝切换和访问。通常,SSO的实现涉及到身份验证...

    关于SSO单点登录的简单实现

    在本文中,我们将探讨SSO的基本原理、实现方式以及一个简单的SSO系统的设计。 **SSO基本原理** SSO的核心是通过共享一种信任关系来实现跨系统的身份验证。这种信任通常由一个中央认证服务(CAS,Central ...

    Laravel开发-sso-broker

    本项目"laravel开发-sso-broker"旨在利用Laravel构建一个SSO代理,基于Jasny/SSO库,以实现跨多个Laravel应用的SSO功能。 **1. Jasny/SSO 库介绍** Jasny/SSO是由荷兰开发者Arnout Boks创建的一个轻量级的SSO解决...

    vCAC6.0配置说明

    - **综合职责**: 这个角色通常涵盖了多个方面的工作,如设计、开发和服务目录项的实现等。 ### 二、角色职责总结 通过以上介绍,我们可以看出vCAC 6.0中的各个角色分工明确,每个角色都承担着特定的任务和职责,...

    CAS框架SSO的实现

    CAS框架SSO的实现

    超全 Lotus Domino Xpages 开发资料——单点登录SSO的实现方式

    超全 Lotus Domino Xpages 开发资料——单点登录SSO的实现方式 大全通过分类提供给大家,请大家根据需要下载全开源, 并且一看就懂,不保留 https://blog.csdn.net/weijia3624/article/details/107013401

    SSO单点登录实现与实现原理

    二、SSO实现方式 1. **基于Cookie的实现**:最简单的方式是使用共享Cookie。每个应用都会设置相同的Cookie,当用户在一个应用中登录后,其他应用可以通过检查Cookie来确认用户已经登录。 2. **基于JWT(JSON Web ...

    spring+springMvc简单实现SSO单点登录

    利用springMvc 实现的简单的单点登录Demo,内含三个小Mavn项目分别是 1、认证中心SSOServer 2、子系统1SSOClient1 3、子系统2SSOClient2 文章请参考 http://blog.csdn.net/qq_31183297/article/details/79419222

    .net单点登录sso的实现

    .NET下的单点登录(Single Sign-On,简称SSO)是一种让用户在多个应用系统间自由切换,只需要一次登录验证的身份管理技术。它提升了用户体验,减少了密码管理的复杂性,尤其适用于企业内部或拥有多个子系统的环境。...

    ssm redis实现sso单点登录

    SSO(Single Sign-On)单点登录是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次进行身份验证。在本文中,我们将深入探讨如何使用SSM(Spring MVC、Spring、MyBatis)框架结合Redis...

    【ASP.NET编程知识】浅谈谁都能看懂的单点登录(SSO)实现方式(附源码).docx

    【ASP.NET编程知识】浅谈谁都能看懂的单点登录(SSO)实现方式 单点登录(SSO)是一种允许用户在一个应用系统中登录后,无需再次认证即可访问其他相互信任的应用系统的机制。这提高了用户体验,简化了身份验证过程...

    java web sso 实现

    在Java Web环境中,常见的实现方式包括使用票据(Ticket)或令牌(Token)。 2. **主要组件**: - **SSO服务器**(如CAS、Keycloak、OAuth2等):负责处理用户的登录请求,验证用户凭证,并为已验证的用户提供安全...

    单点登录: 仿CAS sso.zip

    实现了单点登录功能。访问 http://localhost:8090/ssoClient/index/index 或者 http://localhost:8090/ssoClient/login 进行登录 登录成功后会跳转到 http://localhost:8090/ssoClient/index/index。 然后再访问 ...

Global site tag (gtag.js) - Google Analytics