谁都能看懂的单点登录(SSO)实现方式(附源码)
谁都能看懂的单点登录(SSO)实现方式(附源码)
SSO的基本概念
SSO英文全称Single Sign On(单点登录)。
SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。
它是目前比较流行的企业业务整合的解决方案之一。
(本段内容来自百度百科)
今天这篇文章将介绍SSO的一种实现方式,代码超简单,仅用来验证我的思路是否可行,具体细节请大家来完善!
二级域名的单点登录
什么是二级域名呢?例如:
∙
∙
对于二级域名的单点登录,我们可以非常方便的通过共享cookie来实现,简单的说,就是在设置Form票据的时候,将cookie的domain设置为顶级域名即可,例如:
HttpCookie cookie = new HttpCookie(FormsAuthCookieName, encryptedTicket);
cookie.Expires = rememberMe ? expirationDate : DateTime.MinValue; cookie.HttpOnly = true;
cookie.Path = "/";
cookie.Domain = "";
context.Response.Cookies.Set(cookie);
这种方式不涉及跨域,当cookie的domain属性设置为顶级域名之后,所有的二级域名都可以访问到身份验证的cookie,在服务器端只要验证了这个cookie就可以实现身份的验证。
但是,当跨域的时候,例如:
∙
∙
这个时候就不能共享cookie了,所以上面的解决方案就会失效。
那么,要实现跨域的单点登录该如何做呢?请继续往下看。
跨域的单点登录
关于跨域的SSO的设计思路,我画了一个简单的流程图:
首先,我将跨域的SSO分为SSO-Server和SSO-Client两个部分,SSO-Client可以是多个的。
SSO-Server
SSO-Server主要负责用户登录、注销、为SSO-Client分配taken、验证taken的工作。
登录和注销采用的是Form认证方式,很多地方都有详细的介绍,我之前也写过一篇文章,想了解的可以去看看: Forms身份验证详解
SSO-Server分配Token
为SSO-Client分配Token的部分,在SSO-Client请求SSO受信页面的时候,检查SSO-Server是否登录,如果没有登录则跳转到SSO-Server的登录页面,如果已登录,则执行分配Token的代码,在分配完成以后将TokenID作为参数添加到returnUrl中,并跳转到returnUrl,具体的分配代码如下:
if (Domain.Security.SmartAuthenticate.LoginUser != null)
{
//生成Token,并持久化Token
Domain.SSO.Entity.SSOToken token = new Entity.SSOToken(); er = new Entity.SSOUser();
erName =
erName;
token.LoginID = Session.SessionID;
Domain.SSO.Entity.SSOToken.SSOTokenList.Add(token);
//拼接返回的url,参数中带Token
string spliter = returnUrl.Contains('?') ? "&" : "?";
returnUrl = returnUrl + spliter + "token=" + token.ID;
Response.Redirect(returnUrl);
}
当完成Token分配之后,页面将带有TokenID的参数跳转到SSO-Client页面,并在SSO-Client的Cookie中添加Token值,在以后的每次请求中,SSO-Client通过调用SSO-Server的服务来验证Token的合法性。
SSO-Server验证Token
我是通过WebService来验证Token的。
首先在SSO-Server定义一个Web Service:
[WebMethod]public Entity.SSOToken ValidateToken(string tokenID) {
if (!KeepToken(tokenID))
return null;
var token = Domain.SSO.Entity.SSOToken.SSOTokenList.Find(m => m.ID == tokenID);
return token;
}
[WebMethod]public bool KeepToken(string tokenID)
{
var token = Domain.SSO.Entity.SSOToken.SSOTokenList.Find(m => m.ID == tokenID);
if (token == null)
return false;
if (token.IsTimeOut())
return false;
token.AuthTime = DateTime.Now;
return true;
}
ValidateToken用来验证TokenID的合法性,KeepToken用来保持Token不会过期。
SSO-Client通过调用Validate验证Token,并得到当前的登录用户信息。
接下来看看SSO-Client的实现。
SSO-Client
SSO-Client作为受信系统来存在的,它自己没有认证系统,只能通过SSO-Server来完成用户身份认证的工作。
当用户请求SSO-Client的受保护资源时,SSO-Client会首先是否有TokenID,如果存在TokenID,则调用SSO-Server的WebService来验证这个TokenID是否合法;
验证成功以后将会返回SSOToken的实例,里面包含已登录的用户信息。
具体代码如下:if (!string.IsNullOrEmpty(tokenID))
{
AuthTokenService.AuthTokenServiceSoapClient client = new AuthTokenService.AuthTokenServiceSoapClient();
var token = client.ValidateToken(tokenID);
if (token != null)
{
this.lblMessage.Text = "登录成功,登录用户:"
+ erName
+ "<a
href='/logout.aspx?returnUrl="
+ Server.UrlEncode("")
+ "'>退出</a>";
}
else
{
Response.Redirect("/sso.aspx?returnUrl=" + Server.UrlEncode("/default.aspx"));
}
}else{
Response.Redirect("/sso.aspx?returnUrl=" + Server.UrlEncode("/default.aspx"));
}
源代码
文章中已经介绍了我的具体思路和一些实现,如果你仍然感兴趣,可以下载我的代
码>>Demo.SSO
源代码的部署:
1. 在IIS中创建两个站点,分别绑定到SSO-Server和SSO-Client,它们绑定的域名分别是和
2. 在hosts文件中添加两行映射,将和映射到127.0.0.1,确保可以访问
3.访问,这个时候页面将跳转到的登录页面,用户名、密码随便输入,然后点击登录即可。
SSO单点登录解决方案
SSO单点登录解决方案单点登录(SSO)是一种身份验证授权机制,允许用户在多个互联网应用程序和网站之间共享一个单一的登录凭据。
它通过一次认证,使用户能够在各个应用程序中访问受保护的资源,无需再次输入登录凭据。
以下是一个详细介绍SSO单点登录解决方案的文章,超过1200字。
引言:在现代的互联网时代,用户常常需要在多个应用程序和网站上进行登录。
这不仅使用户要记住多个不同的账号和密码,而且给用户带来了繁琐和不便。
为了解决这个问题,单点登录(SSO)技术应运而生。
什么是单点登录?单点登录(SSO)是一种身份验证和授权机制,允许用户一次登录凭据在多个应用程序和网站之间进行身份验证。
用户只需在一个应用程序上进行登录,便可以自由访问所有与之关联的应用程序,而无需再次输入登录凭据。
SSO解决方案的优点:1.提高用户体验:用户只需记住一个登录凭据,即可随意访问所有与之关联的应用程序,大大简化了用户的登录流程,提高了用户的便利性和满意度。
2.提高安全性:通过使用SSO解决方案,用户的登录凭据只需在一个可信的认证系统中验证,而不需要在每个应用程序中都输入凭据。
这减少了密码暴露的风险,并提高了系统的整体安全性。
3.简化管理:通过使用SSO解决方案,管理员可以轻松地管理应用程序和用户,而无需在每个应用程序中都进行独立的帐户管理。
减少了管理员的工作量,提高了管理效率。
4.降低成本:使用SSO解决方案可以减少密码重置和帐户管理等常见问题的费用。
此外,SSO解决方案还可以帮助组织简化其IT基础设施,减少硬件和软件的购买和维护成本。
SSO解决方案的实现方式:1.基于令牌的SSO:这种解决方案使用令牌来实现单点登录。
用户在登录到第一个应用程序时,会向认证服务器发送他们的凭据。
认证服务器会验证凭据的有效性,并生成一个令牌,并将该令牌返回给用户。
用户随后可以在其他应用程序上使用该令牌进行登录。
2.基于代理的SSO:这种解决方案使用代理服务器来实现单点登录。
单点登录实现方案
单点登录实现方案单点登录(Single Sign-On, 简称SSO)是一种用于企业内部系统和网络服务的身份验证解决方案。
它允许用户只需一次登录就能够访问多个相关的应用程序,提供了便捷和安全性。
本文将介绍几种常见的单点登录实现方案,探讨其优点和适用场景。
一、基于身份提供者的单点登录基于身份提供者的单点登录是一种常见的实现方案。
在这种方案中,用户只需通过一次身份验证就能够访问多个应用程序。
身份提供者在用户登录后生成一个令牌(Token),并将其发送给相关应用程序。
这样,用户在访问其他应用程序时只需将该令牌发送给应用程序,应用程序将验证该令牌的有效性,并授权用户访问相关资源。
优点:这种方案简化了用户的登录流程,提高了用户体验。
同时,身份提供者可以集中管理用户身份和权限,增强了安全性。
适用场景:该方案适用于企业内部网络和应用系统。
比如,一个企业内部拥有多个应用系统,员工只需通过一次登录就能够访问这些应用系统,方便了企业内部的业务流程。
二、基于代理服务器的单点登录基于代理服务器的单点登录是另一种常见的实现方案。
在这种方案中,代理服务器作为用户和应用程序之间的中间层,负责用户的身份验证和授权。
当用户访问一个应用程序时,代理服务器会首先验证用户的身份,并为用户生成一个令牌。
然后,代理服务器将令牌发送给应用程序,应用程序通过验证令牌来判断用户的身份和权限。
优点:这种方案可以灵活适应不同的应用程序和网络环境。
代理服务器可以根据不同的业务需求进行扩展和定制,提供更好的灵活性和安全性。
适用场景:该方案适用于企业内外网结合的环境。
企业可以在内部网络搭建代理服务器,实现对内外网应用程序的统一管理和安全控制。
三、基于标准协议的单点登录基于标准协议的单点登录是一种开放式的实现方案。
在这种方案中,使用标准协议来实现不同系统之间的认证和授权。
常见的标准协议包括OAuth和OpenID Connect等。
用户通过登录认证服务器后,认证服务器会生成一个授权码,再通过用户的许可,将授权码发送给应用程序。
Excel上使用VBA的WebBrowser控件实现单点登录(SSO)
Excel上使⽤VBA的WebBrowser控件实现单点登录(SSO)需求Excel 上可以做出很多漂亮的报表, 产品经理希望能够在Excel上弹出登录页⾯,实现单点登录,登录完成后,从服务器端取回模板列表,选择其中⼀个模板,插⼊到Excel中。
设计1. 登录界⾯可⽤前端技术实现,⽐如Angular与VUE2. VBA中⾃带的WebBrowser控件可以作为加载Web登录页⾯的“壳”。
3. VBA不断尝试获取页⾯上的cookie,直到取到cookie,并且cookie中包含token。
4. 使⽤URLDecode解码cookie,获取token。
5. 使⽤该token发出rest api请求获取模板列表。
部分实现从WebBrowser获取cookiePublic Function GetCookieFromBrowser(serverIP As String)Dim url As StringDim encodedCookie As StringencodedCookie = ""url = "https://" + serverIP + "/test/login/" + "?refresh=" + Guid()FLoginWeb.FWebBrowser.Silent = TrueFLoginWeb.FWebBrowser.Navigate urlFLoginWeb.Show vbModelessDo Until InStr(FLoginWeb.FWebBrowser.Document.cookie, "token") > 0: DoEvents: LoopIf FLoginWeb.FWebBrowser.Document.cookie <> "" ThenencodedCookie = FLoginWeb.FWebBrowser.Document.cookieFLoginWeb.HideEnd IfGetEncodedCookieFromWebBrowser = encodedCookieEnd Function注意1. 由于VBA的WebBrowser是IE内核,⽽微软官⽅已经宣布放弃⽀持IE,因此随着Angular、VUE等版本的升级,可能会出现WebBrowser⽆法正常加载⽹页的情况,需要多做测试。
单点登录的3种实现方式
单点登录的3种实现方式单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要一次登录就可以访问所有相互信任的应用系统的认证方式。
实现SSO有多种方式,下面将介绍三种常用的实现方式。
1.基于令牌的实现方式:基于令牌的SSO是目前应用较广泛的一种方式。
在这种方式中,用户登录成功后,一个包含用户认证信息的令牌会被生成,并存储在服务端。
在用户访问其他应用系统时,该令牌会被传递给其他应用系统进行验证。
应用系统收到令牌后,会到服务端验证令牌的有效性,如果验证通过,用户就可以在该应用系统中访问受保护资源。
这种方式的优点是简单易懂,不需要在应用系统中存储用户的认证信息,而且可以避免跨域访问的安全问题。
但是该方式需要依赖于服务端的共享存储,令牌的传递也会带来一定的网络开销。
2.基于身份提供者的实现方式:基于身份提供者的SSO是一种将认证过程交由专门的身份提供者来完成的方式。
在这种方式中,用户登录的请求首先发送到身份提供者。
身份提供者会验证用户的身份,并生成一个用户的认证凭证,然后将该凭证发送给应用系统。
应用系统接收到凭证后,会向身份提供者验证凭证的有效性。
如果验证通过,用户就可以在该应用系统中访问受保护资源。
这种方式的优点是可以集中管理用户的身份认证,减轻了应用系统的认证工作量。
同时,身份提供者还可以提供其他的安全特性,比如多因素认证、账号锁定等。
但是该方式需要依赖于身份提供者的稳定性和性能。
3.基于代理的实现方式:基于代理的SSO是一种通过代理服务器来实现的方式。
在这种方式中,用户在登录成功后,代理服务器会为用户生成一个会话标识,并将该会话标识存储在共享存储中。
用户在访问其他应用系统时,首先会发送一个从代理服务器获取会话标识的请求。
代理服务器验证用户的身份,并根据用户是否已经登录,决定是否颁发一个有效的会话标识给用户。
用户在访问其他应用系统时,会将会话标识附加在请求中。
应用系统在收到请求后,会向代理服务器验证会话标识的有效性。
单点登录的几种实现代码
单点登录的几种实现代码单点登录(Single Sign-On,简称SSO)是一种身份验证技术,允许用户使用一组凭据登录多个相关但独立的系统。
以下是几种实现单点登录的常见方法的代码示例:1. SAML(Security Assertion Markup Language)实现SSO:```java// Service Provider端public class ServiceProvider {public boolean authenticate(String username, String password) { // 身份验证逻辑}public void ssoRedirect(String idpUrl, String relayState) {// 构建SAML请求// 发送重定向请求到IdP}public void handleResponse(HttpServletRequest request) {// 解析SAML响应// 验证响应的签名// 获取用户信息}}// Identity Provider端public class IdentityProvider {public boolean authenticate(String username, String password) { // 身份验证逻辑}public void handleSSO(HttpServletRequest request) {// 解析SAML请求// 构建SAML响应// 签名响应// 发送响应到SP}}```2. OAuth 2.0 实现 SSO:```java// 授权服务器端public class AuthorizationServer {public String generateAuthorizationCode() {// 生成授权码}public String generateAccessToken() {// 生成访问令牌}public void authorize(HttpServletRequest request, HttpServletResponse response) {// 校验客户端身份String authorizationCode = generateAuthorizationCode();String redirectUri = request.getParameter("redirect_uri"); // 重定向到客户端指定的 redirect_uri,并携带授权码 }public void issueAccessToken(HttpServletRequest request, HttpServletResponse response) {// 校验授权码String accessToken = generateAccessToken();// 返回访问令牌}}// 客户端(资源服务器)端public class ClientServer {public void accessToken(HttpServletRequest request, HttpServletResponse response) {// 发送认证请求到授权服务器// 获取访问令牌}public void processResource(HttpServletRequest request, HttpServletResponse response) {// 处理资源请求}}```3. JWT(JSON Web Tokens)实现 SSO:```java// 认证服务器端public class AuthenticationServer {public String generateToken(String userId) {// 生成 JWT}public void authenticate(HttpServletRequest request, HttpServletResponse response) {// 身份验证逻辑String userId = "123";String token = generateToken(userId);// 返回 JWT}}// 资源服务器端public class ResourceServer {public void processResource(HttpServletRequest request, HttpServletResponse response) {// 处理资源请求String token = request.getHeader("Authorization");// 验证 JWT,提取用户信息}}```请注意,这些示例仅用于说明不同方法的实现,实际的代码实现可能因应用的需求和技术栈而有所不同。
sso单点登录的几种实现方式
sso单点登录的几种实现方式
单点登录(SSO)是一种身份验证和授权的机制,允许用户仅需一次登录就可以访问多个应用程序。
以下是几种常见的SSO实现方式:
1. 基于共享 Cookie:在这种方式下,所有应用程序共享一个中心服务器,该服务器负责验证用户身份并颁发加密的Cookie。
用户登录后,Cookie会在不同的应用程序之间进行传递,以实现无需再次输入用户名和密码即可访问应用程序。
2. 基于令牌:这种方式下,用户成功登录后,认证服务器会颁发一个令牌给用户。
该令牌包含用户身份信息和权限验证。
用户在访问其他应用程序时,只需要将令牌发送给认证服务器验证即可。
3. 基于身份提供商(Identity Provider):也称为Federation SSO,这种方式下,企业或组织委托第三方身份提供商来管理用户身份验证。
用户登录时,会被重定向到身份提供商进行验证,验证成功后,身份提供商会向应用程序提供一个供其验证用户身份的令牌。
4. 基于OAuth协议:OAuth是一个开放标准的授权协议,被广泛应用于SSO。
它允许用户使用第三方应用程序(被称为客户端)代表用户请求访问受保护的资源,而无需提供第三方应用程序的用户名和密码。
用户登录成功后,授权服务器会颁发一个访问令牌给客户端,客户端可以使用该令牌来访问受保护的资源。
这些实现方式可以根据具体的需求和系统架构选择使用。
sso实现方案
SSO实现方案简介单点登录(Single Sign-On,简称SSO)是一种身份认证技术,允许用户在进行集中身份管理的系统中使用一组凭据登录多个应用程序。
SSO可以提高用户体验、减少密码管理的负担,并增强应用程序的安全性。
本文将介绍一种可行的SSO实现方案。
方案概述本方案基于OAuth 2.0协议实现SSO功能。
OAuth 2.0是一种用于授权的开放标准,允许客户端通过令牌访问受保护的资源。
在SSO方案中,我们将使用OAuth 2.0的授权码模式。
方案步骤1. 注册认证服务器首先,我们需要注册一个认证服务器。
认证服务器负责生成和验证访问令牌,并提供Authorization Code,用于向客户端提供访问令牌的安全机制。
我们可以选择使用现有的认证服务器,如Auth0,或自己构建一个。
2. 注册客户端应用在认证服务器上注册客户端应用程序。
为每个需要实现SSO功能的应用程序注册一个唯一的客户端标识符和重定向URI。
客户端标识符用于标识客户端应用程序,重定向URI用于访问认证服务器并接收Authorization Code。
3. 用户登录用户通过打开客户端应用程序的登录界面进行身份验证。
客户端应用程序将用户重定向到认证服务器的登录页面。
4. 认证服务器发放Authorization Code认证服务器验证用户的凭据,并向客户端应用程序发放Authorization Code。
Authorization Code是一次性的,并且只能被认证服务器预先注册的重定向URI所使用。
5. 客户端应用程序获取访问令牌客户端应用程序使用Authorization Code和客户端标识符,在与认证服务器的指定端点交互后,获取访问令牌。
访问令牌将用于访问受保护的资源。
6. 客户端应用程序访问资源服务器客户端应用程序使用访问令牌向资源服务器请求受保护的资源。
资源服务器在接收到请求后,使用认证服务器的端点验证访问令牌的有效性。
单点登录的几种实现方式
单点登录的几种实现方式单点登录(Single Sign-On,简称SSO)是一种常见的身份验证机制,允许用户在一个平台上登录后,无需再次输入用户名和密码即可访问其他关联的认证系统。
以下是单点登录的几种实现方式:1. SAML(安全断言标记语言)* SAML是一种基于XML的标准,用于在不同安全系统之间交换认证和授权信息。
* 当用户在一个支持SAML的网站上登录时,网站会生成一个包含用户身份信息的SAML 断言(assertion),并将其发送给身份提供者(Identity Provider)。
* 身份提供者验证用户的身份后,将SAML断言转发给目的网站,以允许用户访问。
* SAML支持单点登录和单点登出功能,并且可以与多种身份管理系统集成。
2. OAuth(开放授权)* OAuth是一种基于令牌的身份验证协议,允许第三方应用程序访问用户在另一个服务提供商上的受保护资源,而不需要共享用户的凭据。
* 当用户授权第三方应用程序访问其受保护资源时,服务提供商会向该应用程序提供访问令牌,而不是用户的密码。
* 应用程序使用访问令牌来请求受保护的资源,服务提供商验证令牌的有效性并返回相应的数据。
* OAuth常用于API和微服务之间的身份验证和授权。
3. OpenID Connect(OIDC)* OpenID Connect是基于OAuth 2.0的身份验证协议,它建立在OAuth 2.0之上,并扩展了其功能以支持身份验证。
* 当用户尝试访问一个支持OpenID Connect的应用程序时,应用程序会重定向用户到身份提供者。
* 用户在身份提供者上登录后,身份提供者会返回一个包含用户身份信息的ID令牌(ID token),并将其发送回应用程序。
* 应用程序使用ID令牌来验证用户的身份,并允许其访问受保护的资源。
4. Kerberos* Kerberos是一种网络认证协议,它使用加密和密钥交换技术来确保只有经过身份验证的用户才能访问特定的网络资源。
单点登录的几种实现代码
单点登录的几种实现代码单点登录(Single Sign-On,简称SSO)是一种允许用户使用一组凭证(如用户名和密码)在多个应用程序中进行身份认证的身份管理技术。
它大大简化了用户的登录过程,提高了用户体验和工作效率。
下面将介绍几种实现SSO的常见方式。
1. 基于Cookie的SSO实现基于Cookie的SSO实现方式简单直观。
当用户登录一个应用程序时,该应用程序会生成一个包含用户身份信息的加密Cookie并发送给浏览器。
当用户访问其他需要登录的应用程序时,浏览器会自动将该Cookie携带过去,并通过校验以完成身份验证。
这样,用户无需重复输入用户名和密码,即可实现跨应用程序的单点登录。
2. 基于Token的SSO实现基于Token的SSO实现方式更加灵活和安全。
当用户登录一个应用程序时,该应用程序会向身份提供方(Identity Provider)发送用户的身份认证请求。
身份提供方验证用户的身份信息后,生成一个Token,并将其返回给应用程序。
用户在访问其他应用程序时,只需携带该Token即可完成身份验证。
Token通常是加密的,防止篡改和伪造,有效期限制了安全性。
3. 基于OAuth协议的SSO实现OAuth协议允许用户授权第三方应用程序访问受保护的资源,是一种常见的SSO实现方式。
用户在登录一个应用程序时,可以选择通过第三方身份提供方(如Google、Facebook)进行登录。
这个身份提供方会向应用程序颁发一个访问令牌(Access Token),应用程序可以使用该令牌请求用户的个人信息。
这样,用户只需在第三方身份提供方登录一次,就可以在多个应用程序中实现SSO。
4. 基于SAML协议的SSO实现Security Assertion Markup Language(SAML)协议是一种基于XML的开放标准,用于跨域身份验证和授权。
它通过身份提供方和服务提供方之间的交互,实现了SSO。
当用户尝试访问一个服务提供方时,服务提供方会将用户重定向到身份提供方,要求用户进行身份验证。
SSO系统实现单点登录方式有三种
1 概述UTrust SSO系统实现单点登录方式有三种,一为代填方式,二为Agent方式,二为网关方式。
本次需要完成的工作与Agent的实现方式有关系,因此这里只介绍Agent的实现方式。
Agent的实现方式需要对原有应用系统进行改造,改变原有应用系统的认证方式,同时采用认证服务器提供的技术进行身份认证。
Agent实现单点登录认证时,每个应用服务器中都需要安装一个代理程序(SSO Clinet Agent)完成用户的身份认证工作。
当用户访问目标应用服务器时,代理程序向SSO服务器询问该用户是否已经登录,如果是,则代理程序从SSO服务器中取得该用户的用户信息自动登录该应用系统。
登录成功后,用户直接访问该目标服务器。
如果未曾登录过任何应用服务器,则该应用要求用户进行身份认证,认证结束后,代理程序将认证结果发送给SSO 服务器。
本次需要做的即是需要实现应用服务器端的Agent,由于应用系统开发语言不同,因此需要根据不同的语言实现不同的SSO Clinet Agent供应用系统集成。
当前已经完成了Java 版的SSO Clinet Agent,其作用相当于一个Filter,起拦获用户访问请求,并完成与UTrust SSO服务器的认证过程。
下面描述一下使用Agent时系统的流程。
2 Agent单点登录工作流程1) 用户输入应用系统1的服务器地址,访问应用服务器;2) 应用系统1通过会话判断当前用户是否已经登录,如果没有通过登录,则当前的请求被重定向到UTrust SSO服务器。
3) UTrust SSO服务器根据用户的认证方式(USB KEY,数字证书,用户名口令,动态令牌等),完成对用户的认证。
4) 认证通过后,服务器生成一张凭证令牌(TGT)到客户端浏览器,并把这个凭证令牌写入到浏览器的Cookie中。
同时还生成一张服务令牌(Service Ticket 简写成ST)。
并且缓存下用户基本信息及当前用户访问的应用名称。
