IIS服务器身份验证的方式原理
IIS服务器🈚具有身【jù yǒu shēn】份验证功能【gōng néng】,可以有以下几种验证💒方式【fāng shì】🕒:
匿名访问
这种方【zhè zhǒng fāng】🎺式不验证访问【zhèng fǎng wèn】用户【hù】的🐼身份,客户【hù】端🌊不需要🙁提供任何身份验证的凭据,服务端🤚把这样🚙的访问【wèn】作为匿【zuò wéi nì】名的访问【wèn】,并把这🍣样的访【yàng de fǎng】🛒问用户【wèn yòng hù】🚵都映射到一个【dào yī gè】服务端🤚的账户【hù】🤲,一般为【yī bān wéi】IUSER_MACHINE这个用户【hù】🚵,可以修【kě yǐ xiū】改映射到的用户【hù】🚵:
集成windows身份验证
这种验证方式里面也分为两种情况
NTLM验证
这种验【zhè zhǒng yàn】证方式需要把用户的【yòng hù de】🍠用户名和密码【hé mì mǎ】💶传送【chuán sòng】👫到服务【dào fú wù】端🌊,服务端【fú wù duān】🌊验证用🏡户名和密码【hé mì mǎ】💶是否和服🤪务器的【wù qì de】此用户🍞的密码【de mì mǎ】一致。用户名用明码🥚传送【chuán sòng】👫,但是密码【mì mǎ】经过处理后派生出一个8字节的key加密质询码后⚪传送【chuán sòng】👫。
Kerberos验证
这种验证方式【zhèng fāng shì】只把客💽户端访问【wèn】IIS的验证票发送🛹到♒IIS服务器【fú wù qì】,IIS收到♒这个票据就能【jù jiù néng】确定客【què dìng kè】户👍端的身【duān de shēn】🍴份,不需要【bú xū yào】⤴传送用📬户的密🔹码。需要kerberos验证的用户一定是域【dìng shì yù】用户。
每一个登录🔹用户在登录🔹被验证后都🕳会被域中的验证【de yàn zhèng】💛服务器【fú wù qì】生成一个票据授权票(TGT)作为这个用户🌱访问其【fǎng wèn qí】🚼他服务所要验【suǒ yào yàn】证票【zhèng piào】⛴的凭证【de píng zhèng】(这是为了实现📥一次登🤠录就能访问域中所有🍇需要验【xū yào yàn】🚦证的资源的所🏧谓单点【wèi dān diǎn】登录🔹SSO功能【gōng néng】),而访问【ér fǎng wèn】IIS服务器【fú wù qì】的验证【de yàn zhèng】💛票是通【piào shì tōng】✨过此用【guò cǐ yòng】户的票🌲据授权票(TGT)向IIS获取的。之后此客户访问此【wèn cǐ】IIS都使用【dōu shǐ yòng】这个验🙀证票【zhèng piào】⛴。同样访【tóng yàng fǎng】问其🚼他需要验【xū yào yàn】🚦证的服【zhèng de fú】务也是凭这个TGT获取该【huò qǔ gāi】服务的😚验证票【zhèng piào】⛴。
下面是kerberos比较详细的原理。
Kerberos原理介绍:
工作站➰端运行🐡着一个【zhe yī gè】票据授🚮权的服【quán de fú】务【wù】,叫🏵Kinit,专门用🛴做工作【zuò gōng zuò】站➰同认证服务【wù】器Kerberos间的身【jiān de shēn】份认证的服务【wù】。
1. 用户【hù】开💲始登录【shǐ dēng lù】,输入用📐户名【hù míng】,验证服🦀务器收到用户名【hù míng】,在用户【hù】🔔数据库中查找这个用户【hù】,结果发💽现了这【xiàn le zhè】个用户【hù】。
2. 验证服【yàn zhèng fú】🅾务器生成一个【chéng yī gè】🍾验证服【yàn zhèng fú】🅾务器跟【wù qì gēn】🚠这个登🎺录用户【lù yòng hù】之间共享的一【xiǎng de yī】个会话🥫口令(Session key),这个口💒令只有【lìng zhī yǒu】验证服【yàn zhèng fú】🅾务器跟【wù qì gēn】🚠这个登🎺录用户【lù yòng hù】之间使用,用来做【yòng lái zuò】相互验【xiàng hù yàn】证对方使用。同时验【tóng shí yàn】证服🅾务器给这🎁个登录🎂用户生【yòng hù shēng】成一个【chéng yī gè】🍾票据授【piào jù shòu】🚯权票【quán piào】🙌(ticket-granting ticket),工作站以后就可以凭这个票🗄据授权票【quán piào】🙌来向验证服【yàn zhèng fú】🅾务器请【wù qì qǐng】求其他【qiú qí tā】的票据🌴,而不用📠再次验【zài cì yàn】证自己的身份了【le】。验证服【yàn zhèng fú】🅾务器把{ Session key + ticket-granting ticket }用登录【yòng dēng lù】用户的口令加密后发😏回到工作站。
3. 工作站【gōng zuò zhàn】用自己【yòng zì jǐ】的口令🍽解密验证【yàn zhèng】🌚服务器【fú wù qì】返回的数据【shù jù】🍾包,如果解【rú guǒ jiě】🙈密正确🤨则验证【yàn zhèng】🌚成功【chéng gōng】。解密后🏀能够获【néng gòu huò】得登录用【dēng lù yòng】户与🅾验证【yàn zhèng】🌚服务器【fú wù qì】共享的Session key和一张ticket-granting ticket。到此🥘,登录用【dēng lù yòng】户没有【hù méi yǒu】🐤在网络上发送【shàng fā sòng】口令🎣,通过验证【yàn zhèng】🌚服务器【fú wù qì】使用【shǐ yòng】☝用户口令🎣加密验【jiā mì yàn】证🌚授权票【shòu quán piào】的方法【de fāng fǎ】验证【yàn zhèng】🌚了用户,用户跟验证【yàn zhèng】🌚服务器【fú wù qì】之间建【zhī jiān jiàn】立了关系,在工作站【gōng zuò zhàn】上也🐲保存来👘相应的身份证明😑,以后要【yǐ hòu yào】是用网络中的其他服务,可以通过这个【guò zhè gè】🌨身份证明向验📦证服务🤦器申请相应服【xiàng yīng fú】🏕务器的服务票,来获得相应服【xiàng yīng fú】🏕务身份🎯验证【yàn zhèng】🌚。
4. 如果用🦖户第一【hù dì yī】✊次访问【cì fǎng wèn】🐃IIS服务器【fú wù qì】👂,工作站【gōng zuò zhàn】🐁的【de】kinit查看本🕚机上没有访问【yǒu fǎng wèn】🐃IIS服务器【fú wù qì】👂的验证【de yàn zhèng】🚿票【piào】😞,于是【yú shì】🍊kinit会向验🥉证服务器【fú wù qì】👂发出请求【qiú】,请求【qiú】访🗑问🐃IIS服务的【fú wù de】验证🚿票【piào】😞。Kinit先要生【xiān yào shēng】💞成一个验证器【yàn zhèng qì】🌨,验证器【yàn zhèng qì】🌨是这样🍙的【de】:{用户名:工作站【gōng zuò zhàn】🐁地址【dì zhǐ】📊}用跟验🚣证服务器【fú wù qì】👂间的【jiān de】Session key加密【jiā mì】。Kinit将验证器【yàn zhèng qì】🌨、票【piào】😞据授权【jù shòu quán】票【piào】😞、你的【de】名字、你的【de】工作站【gōng zuò zhàn】🐁地址【dì zhǐ】📊、IIS服务名字发送的验证【de yàn zhèng】🚿服务器【fú wù qì】👂,验证服【yàn zhèng fú】务器👂验证验【yàn zhèng yàn】证授权票【piào】😞真实有效,然后用跟你共【gēn nǐ gòng】享的【de】Session key解开验证器【yàn zhèng qì】🌨,获取其🎖中的用【zhōng de yòng】🍁户名和地址【dì zhǐ】📊,与发送【yǔ fā sòng】🙉这个请求【qiú】的【de】用户和地址【dì zhǐ】📊比较,如果相符❎,说明验证通过,这个请求【qiú】合法。
5. 验证服【yàn zhèng fú】务器👻先生成【xiān shēng chéng】这📕个用户【gè yòng hù】💃跟IIS服务器【fú wù qì】👻之间的【zhī jiān de】Session key会话口【huì huà kǒu】令【lìng】🚮,之后根🅱据用户【yòng hù】🛶请求生【qǐng qiú shēng】成🍣IIS服务器【fú wù qì】👻的验证票【yàn zhèng piào】🍍,是这个样子的🍵:{会话口【huì huà kǒu】令【lìng】🚮:用户【yòng hù】名⚡:用户【yòng hù】🛶机器地【jī qì dì】址【zhǐ】💏:服【fú】务名:有效期【yǒu xiào qī】:时间戳🤤},这个验证票【yàn zhèng piào】🍍用IIS服务器【fú wù qì】👻的密码(验证服【yàn zhèng fú】务器👻知道所有授权服【fú】🔝务的密【wù de mì】码)进行加【jìn háng jiā】密形成🏆最终的验证票【yàn zhèng piào】🍍。最后,验证服【yàn zhèng fú】务器👻{会话口【huì huà kǒu】令【lìng】🚮+加好密【jiā hǎo mì】的验证票【yàn zhèng piào】🍍}用用户【yòng hù】🛶口令【lìng】🚮加密后发送给用户【yòng hù】🛶。
6. 工作站【gōng zuò zhàn】收到验【shōu dào yàn】证服务【zhèng fú wù】器🛫返回的【de】📵数据包,用自己【yòng zì jǐ】💦的【de】📵口令解密,获得跟【huò dé gēn】🔱IIS服务器🛫的【de】📵Session key和🕦IIS服务器🛫的【de】📵验证票。
7. 工作站【gōng zuò zhàn】🐚kinit同样要生成一🤪个验证【gè yàn zhèng】器🐃,验证器【yàn zhèng qì】🐃是这样的:{用户名:工作站【gōng zuò zhàn】🐚地址}用跟🦈IIS服务器间的Session key加密💣。将验证【jiāng yàn zhèng】器🐃和【hé】IIS验证票一起发⏯送到【sòng dào】📬IIS服务器。
8.IIS服务器先用自🔑己的服务器密【wù qì mì】码解开IIS验证票【yàn zhèng piào】🐙,如果解【rú guǒ jiě】密成功🏘,说明此🆎验证票【yàn zhèng piào】🐙真实有🤔效【xiào】,然后查【rán hòu chá】看此验证【zhèng】🐳票是否在有效【xiào】期内,在有效【xiào】期内,用验证票【yàn zhèng piào】🐙中带的【zhōng dài de】会话口令去【lìng qù】😻解密验🌷证【zhèng】器,获得其👞中的用【zhōng de yòng】🛩户名和工作站地址【dì zhǐ】🉐,如果跟验证票【yàn zhèng piào】🐙中的用【zhōng de yòng】🛩户名和地址【dì zhǐ】🉐相符则【xiàng fú zé】说明发送此验【sòng cǐ yàn】证【zhèng】🐳票的用户就是验证票【yàn zhèng piào】🐙的所有🕵者🎵,从而验👝证本次【zhèng běn cì】请求有【qǐng qiú yǒu】效【xiào】。
基本身份验证
这种验⚾证方式【zhèng fāng shì】完全是【wán quán shì】把用户【bǎ yòng hù】名和明【míng hé míng】📐文【wén】🏩用明文【míng wén】🏩(经过♓base64编码,但是base64编码不是加密的【de】💹,经过♓转换就【zhuǎn huàn jiù】能转换成💀原始的【de】💹明文【míng wén】🏩)传送到服务端验证🌺。服务器直接验【zhí jiē yàn】🔱证服务器本地是否用【shì fǒu yòng】用户跟客户端提供的【de】🦀用户名和密码【hé mì mǎ】相匹配【xiàng pǐ pèi】💁的【de】💹,如果有则通过验证🌺。
关键词:IIS服务器身份验证
阅读本文后您有什么感想? 已有 人给出评价!
- 1
- 1
- 1
- 1
- 1
- 1