亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

ASP.NET Core 實(shí)現(xiàn) SAML2 單點(diǎn)登錄:從協(xié)議拆解到線上排錯(cuò)

ASP.NET Core 實(shí)現(xiàn) SAML2 單點(diǎn)登錄:從協(xié)議拆解到線上排錯(cuò) 簡介Sustainsys.Saml2原稱Kentor.AuthServices是一個(gè)面向ASP.NET開發(fā)者的開源身份驗(yàn)證庫以C#語言實(shí)現(xiàn)用來為網(wǎng)站增加SAML2協(xié)議能力使其能夠作為服務(wù)提供方與身份提供方完成單點(diǎn)登錄對(duì)接。資源包共含883個(gè)文件大小約5.64MB其中以C#源文件和頁面視圖居多同時(shí)提供了大量配置文件、頁面樣式與腳本、測試證書以及完整的項(xiàng)目工程文件可用于還原出可運(yùn)行的示例站點(diǎn)與聯(lián)調(diào)環(huán)境。源碼按三個(gè)版本分支組織第一個(gè)分支基于舊版標(biāo)識(shí)模型兼容傳統(tǒng)模塊與多種框架第二個(gè)分支使用新版標(biāo)識(shí)模型支持多目標(biāo)框架第三個(gè)分支則專為新一代核心框架設(shè)計(jì)。對(duì)于需要在自己項(xiàng)目中實(shí)現(xiàn)SAML2認(rèn)證、研究服務(wù)提供方與身份提供方交互細(xì)節(jié)的開發(fā)者這份材料提供了可直接參考的源碼、配置模板和證書樣例當(dāng)前已有525人學(xué)習(xí)下載同時(shí)可借助分支對(duì)比來輔助版本遷移與二次開發(fā)。1. 為什么要在 ASP.NET 里專門做一個(gè) SAML2 身份驗(yàn)證服務(wù)接手過幾次企業(yè)級(jí)接入后你會(huì)發(fā)現(xiàn)SAML2 身份驗(yàn)證服務(wù)真正難的從來不是“驗(yàn)證簽名”和“解析 XML”而是把整個(gè)跳轉(zhuǎn)鏈路、信任關(guān)系、會(huì)話狀態(tài)串起來。很多團(tuán)隊(duì)第一次接入時(shí)想得很簡單把 IdP 給的證書拿來在自己站點(diǎn)里驗(yàn)一下斷言就完事。結(jié)果一上線就翻車——不是跳不回來就是簽名字節(jié)對(duì)不上再不就是登錄成功后用戶信息全是空的。這套東西最反直覺的地方在于它能跑通不代表你理解了它一旦某個(gè)參數(shù)兩邊各寫各的你面對(duì)的就是一條無法從應(yīng)用日志里直接看出原因的黑匣子鏈。這篇文章要講的是在 ASP.NET 平臺(tái)上把 SAML2 服務(wù)提供方SP完整落地的方法覆蓋從協(xié)議拆解、最小可運(yùn)行實(shí)現(xiàn)、核心參數(shù)調(diào)整到線上排錯(cuò)的全過程。不管你是要接入客戶的統(tǒng)一身份平臺(tái)還是打算把自己的系統(tǒng)對(duì)接到公司內(nèi)部的單點(diǎn)登錄體系只要涉及“讓 ASP.NET 應(yīng)用聽懂 SAML2 斷言”下面這些內(nèi)容都能直接拿來用。看完你能獨(dú)立搭出可交付的身份驗(yàn)證接入層并知道出了問題該看哪里。2. 拆開 SAML2消息、跳轉(zhuǎn)與信任模型這三件事2.1 三類核心消息斷言、協(xié)議消息與綁定方式SAML2 里的有效載荷是“斷言”Assertion一段攜帶用戶身份信息的 XML。斷言內(nèi)部又分三種語句認(rèn)證語句AuthnStatement聲明“用戶在某時(shí)刻通過某方式完成了認(rèn)證”屬性語句AttributeStatement攜帶郵箱、姓名、角色這類擴(kuò)展屬性授權(quán)決策語句AuthorizationDecisionStatement聲明“允許該用戶訪問某資源”。對(duì) ASP.NET 開發(fā)者來說平時(shí)處理的絕大多數(shù)場景只用到前兩種授權(quán)決策一般交給應(yīng)用自身的策略引擎很少直接從斷言里讀。真正在網(wǎng)絡(luò)上傳輸?shù)牟恢皇菙嘌远前褦嘌浴鞍饋怼钡膮f(xié)議消息。SP 向 IdP 發(fā)起認(rèn)證時(shí)發(fā)送 AuthnRequestIdP 處理完把用戶瀏覽器導(dǎo)回 SP 時(shí)攜帶 AuthnResponse。這兩條消息分別解決了“你是誰”和“我證明你確實(shí)是誰”。而綁定方式?jīng)Q定了消息怎么走最常見的是 HTTP Redirect 綁定適合發(fā)送 AuthnRequest因?yàn)?GET 參數(shù)長度有限卻足夠放進(jìn)一個(gè)沒有大量擴(kuò)展的請求另一個(gè)是 HTTP POST 綁定IdP 回傳斷言時(shí)幾乎都用它因?yàn)楹灻蟮?XML 體積大塞進(jìn) URL 不現(xiàn)實(shí)。在代碼層面你收到的 AuthnResponse 是一段需要驗(yàn)證的 XML。這里有一個(gè)非常關(guān)鍵的建議不要自己寫 XML 解析器。SAML2 的簽名驗(yàn)證涉及 XML 規(guī)范化Canonicalization、XPath 定位簽名節(jié)點(diǎn)、摘要重算手寫解析在邊緣環(huán)境下有數(shù)不清的兼容問題。我在生產(chǎn)環(huán)境里見過某個(gè)團(tuán)隊(duì)手寫了半年最后還是換成了現(xiàn)成的中間件。.NET 生態(tài)里目前活躍度最高、生產(chǎn)驗(yàn)證最充分的 SAML2 社區(qū)包就那么一個(gè)成熟選擇直接引入它把精力放到業(yè)務(wù)適配和排錯(cuò)上這才是性價(jià)比最高的路線。2.2 兩條登錄主線SP 發(fā)起的跳轉(zhuǎn)與 IdP 發(fā)起的跳轉(zhuǎn)SP 發(fā)起的登錄流程是大多數(shù)接入場景的主干。用戶訪問你的 ASP.NET 站點(diǎn)里一個(gè)受保護(hù)的頁面中間件發(fā)現(xiàn)當(dāng)前會(huì)話沒有認(rèn)證信息于是生成一條 AuthnRequest附上簽名后用 Redirect 綁定把用戶瀏覽器帶到 IdP 的登錄端點(diǎn)。用戶在 IdP 完成密碼、短信或掃碼認(rèn)證后IdP 在后臺(tái)生成斷言把瀏覽器用 POST 表單導(dǎo)回你的 ACSAssertion Consumer Service地址。你的站點(diǎn)收到 POST驗(yàn)簽、校驗(yàn)斷言、提取用戶標(biāo)識(shí)然后建立本地會(huì)話把用戶引導(dǎo)回最初想訪問的那個(gè)頁面。IdP 發(fā)起的登錄則完全反過來用戶先登錄公司門戶門戶里展示一排可訪問的系統(tǒng)圖標(biāo)用戶點(diǎn)某個(gè)系統(tǒng)的入口IdP 直接在瀏覽器里生成一條 POST 到該系統(tǒng) ACS 地址。你的 SP 沒有發(fā)起過任何請求卻在某個(gè)時(shí)刻突然收到一條斷言。這帶來一個(gè)很隱蔽的問題你無法校驗(yàn)“InResponseTo”——這條斷言到底是不是響應(yīng)你發(fā)出的上一條請求因?yàn)楦静淮嬖谏弦粭l請求。所以 IdP 發(fā)起的流程里必須格外依賴簽名驗(yàn)證和受眾校驗(yàn)一旦跳過攻擊者可以嘗試重放別人被截獲的斷言。在 ASP.NET 集成里IdP 發(fā)起的流程也是最容易在配置階段被忽略的一環(huán)。很多人測試時(shí)只測 SP 發(fā)起上線后客戶從門戶點(diǎn)進(jìn)來發(fā)現(xiàn)直接 401。常見做法是把兩種情況都列入聯(lián)調(diào)用例并且斷言消費(fèi)端點(diǎn)要同時(shí)容忍有 InResponseTo 和沒有 InResponseTo 的請求但在后者情況下必須做額外的 Audience 和 Recipient 校驗(yàn)。2.3 信任關(guān)系如何建立證書、metadata 與簽名驗(yàn)證SAML2 的信任基礎(chǔ)不是“用戶名密碼”而是證書。SP 需要持有 IdP 簽公鑰才能驗(yàn)證斷言簽名IdP 也同樣需要 SP 的公鑰來驗(yàn)證 AuthnRequest 簽名。雙方交換公鑰的載體叫 metadata——一份描述 EntityID、ACS 地址、證書、支持綁定方式的標(biāo)準(zhǔn) XML。實(shí)際項(xiàng)目中IdP 通常給你一個(gè) metadata 下載地址SP 這邊則把自己 metadata 發(fā)過去登記。驗(yàn)證簽名時(shí)中間件拿 IdP 的公鑰按 XML 簽名標(biāo)準(zhǔn)對(duì)斷言里的 DigestValue 重算比對(duì)通過后才信任。這個(gè)環(huán)節(jié)有個(gè)常見的幼稚錯(cuò)誤以為只要有一對(duì)證書就行結(jié)果兩邊各簽各的。實(shí)際上SP 自己那對(duì)證書用來給 AuthnRequest 簽名IdP 的證書用來驗(yàn)斷言兩把證書鏈路完全不同。彼此是通過 metadata 里的 KeyDescriptor 標(biāo)簽區(qū)分用途的signing 標(biāo)簽對(duì)應(yīng)簽名密鑰encryption 標(biāo)簽對(duì)應(yīng)解密密鑰。配置時(shí)如果選錯(cuò)了哪把鑰匙等待你的只有一個(gè)結(jié)果——簽名驗(yàn)證失敗。3. 搭一個(gè)能跑通的最小實(shí)現(xiàn)從空項(xiàng)目到本地首登3.1 環(huán)境準(zhǔn)備項(xiàng)目模板與證書生成做 SAML2 接入前先準(zhǔn)備好一個(gè)空 ASP.NET Core MVC 項(xiàng)目。我一直習(xí)慣從空模板起步因?yàn)?SAML2 中間件的注冊邏輯要放在中間件管線的特定位置模板自帶的東西有時(shí)候反而礙事。項(xiàng)目創(chuàng)建命令很簡單dotnet new mvc -n SpSample cd SpSample dotnet add package Itfoxtec.Saml2第二行命令拉取的是 .NET 生態(tài)里那個(gè)最主流的 SAML2 中間件包。我一般不會(huì)在文章里反復(fù)強(qiáng)調(diào)某個(gè)包的名字但在 SAML2 這個(gè)領(lǐng)域可選項(xiàng)實(shí)在太少這個(gè)包幾乎是事實(shí)標(biāo)準(zhǔn)。它處理了 AuthnRequest 生成、AuthnResponse 解析、簽名驗(yàn)證、RelayState 管理這些臟活你要做的是把業(yè)務(wù)參數(shù)喂給它。然后生成 SP 自己的簽名證書openssl req -x509 -newkey rsa:2048 -keyout sp-signing.key -out sp-signing.crt -days 365 -nodes -subj /CNsp.sample.local這里生成的證書是 SP 用來簽名 AuthnRequest 的不是 IdP 那個(gè)驗(yàn)證用的證書。注意-nodes參數(shù)表示私鑰不加密生產(chǎn)環(huán)境絕對(duì)不能這樣用開發(fā)環(huán)境圖省事可以。證書有效期設(shè)一年因?yàn)?SAML2 的 metadata 里會(huì)帶上證書有效期IdP 側(cè)如果嚴(yán)格校驗(yàn)過期證書會(huì)導(dǎo)致請求被直接拒絕。3.2 中間件注冊順序與配置SAML2 中間件的注冊順序有講究。它必須放在 UseAuthentication 之前因?yàn)樗庸艿氖恰斑@條請求是不是攜帶了一個(gè)可信任的身份斷言”這件事。放在后面注冊會(huì)導(dǎo)致請求先被別的中間件處理完了斷言還沒被解析。代碼里這樣注冊builder.Services.AddSaml2(options { options.SPOptions.EntityId new EntityId(urn:sp:sample); options.SPOptions.ReturnUrl new Uri(https://sp.sample.local/saml2/acs); options.SPOptions.SignatureAlgorithm Saml2SignatureAlgorithm.RsaSha256; var signingCert new X509Certificate2(sp-signing.crt, password); options.SPOptions.SigningCertificate signingCert; var idpMetadata new IdpMetadata(new X509Certificate2(idp-signing.crt), new Uri(https://idp.sample.local/realms/main)); options.IdentityProviders.Add(new IdentityProvider(idp, idpMetadata)); }); app.UseSaml2();這段配置里有幾個(gè)參數(shù)必須解釋清楚。EntityId是你的 SP 在全聯(lián)邦里的唯一名字IdP 端看到的 SP 標(biāo)識(shí)就是它改了這個(gè)值而 IdP 沒同步斷言會(huì)被判定為來路不明。ReturnUrl是 ACS 地址IdP 會(huì)把斷言 POST 到這里它必須和 IdP 側(cè)登記的回調(diào)地址完全一致差一個(gè)路徑段都不行。SignatureAlgorithm是簽名算法現(xiàn)在基本不用 SHA1 了但有些老 IdP 只支持 SHA1SP 端配了 SHA256 就會(huì)握手失敗。SigningCertificate是第 3.1 節(jié)生成的那把證書。IdentityProviders列表里要注冊每個(gè)可信任的 IdP包括它的證書和端點(diǎn)地址這一步很多人會(huì)漏掉——只配了 SP 自己的證書沒配 IdP 的信息結(jié)果驗(yàn)簽時(shí)找不到驗(yàn)簽公鑰。3.3 本地驗(yàn)證先跑通再談完善配置完成后別急著連真實(shí) IdP先在本地搭一個(gè)最小的測試 IdP把鏈路拉通。最省事的方案是寫一個(gè)簡單的控制器來扮演 IdP 的 ACS 端點(diǎn)[HttpPost(saml2/acs)] public async TaskIActionResult Acs() { var binding new Saml2PostBinding(); var saml2p new Saml2AuthnResponse(SPOptions, new Saml2AuthnRequest(SPOptions)); binding.Unbind(Request, saml2p); await saml2p.CreateSession(HttpContext, null); return Redirect(/); }Saml2PostBinding負(fù)責(zé)從 POST 表單中解析 SAMLResponse 字段Unbind方法把傳輸層的參數(shù)還原成強(qiáng)類型的響應(yīng)對(duì)象CreateSession則是在驗(yàn)證斷言有效后為用戶建立 .NET 認(rèn)證會(huì)話。這段代碼邏輯上就是把“收到一條 POST 斷言”翻譯成“建立一次登錄會(huì)話”。在本地聯(lián)調(diào)時(shí)我是按三個(gè)步驟遞進(jìn)的先關(guān)掉簽名驗(yàn)證手工拼一個(gè)最簡斷言直接 POST確認(rèn)解析和會(huì)話建立沒問題再打開簽名驗(yàn)證看驗(yàn)簽鏈路是否完整最后才跑完整的重定向流程。一步一步來出了問題立刻能定位是哪個(gè)環(huán)節(jié)的毛病。4. 四個(gè)必調(diào)參數(shù)與它們的邊界EntityID、簽名算法與時(shí)鐘偏移4.1 EntityID、ACS 與 metadata三個(gè)參數(shù)必須三方對(duì)齊SAML2 接入里最折磨人的一類問題是“配置明明沒錯(cuò)但 IdP 就是報(bào)錯(cuò)”。這類問題九成出在三方對(duì)齊上SP 端 EntityID、ACS 地址、IdP metadata 里記錄的同一份信息。你的 EntityID 寫成了urn:sp:sampleIdP 側(cè)錄入的卻是https://sp.sample.local/saml兩邊都能正常完成重定向但 IdP 生成的斷言里 Audience 會(huì)是它自己認(rèn)為的那個(gè) SP 標(biāo)識(shí)SP 驗(yàn)簽時(shí)發(fā)現(xiàn) Audience 不是自己直接拒絕。ACS 地址的對(duì)齊同樣苛刻。中間件默認(rèn)會(huì)根據(jù)當(dāng)前請求的 Host 頭動(dòng)態(tài)拼接 ACS 地址如果你的站點(diǎn)跑在反向代理后面外網(wǎng) Host 和內(nèi)部服務(wù)地址不一致生成的 ACS 就會(huì)變成內(nèi)網(wǎng)地址IdP 那邊登記的是公網(wǎng)地址兩邊一比對(duì)就不匹配。排查這條路的最佳實(shí)踐是ASP.NET 服務(wù)前加上app.UseForwardedHeaders()讓中間件感知真實(shí)的客戶端 Host。我一般在配置里顯式寫死 ACS 地址而不是讓它動(dòng)態(tài)生成這樣至少在復(fù)雜網(wǎng)絡(luò)環(huán)境下少一個(gè)變量。還有一種幾乎所有人都遇到過的詭異場景客戶說換證書了給了你新公鑰你也把新證書放進(jìn)配置了結(jié)果驗(yàn)簽還是失敗。最后發(fā)現(xiàn) IdP 的 metadata 里有新舊兩把證書名目上是“密鑰輪換”但實(shí)際請求斷言是用新證書簽的你的代碼卻在舊證書里做匹配。所以配置代碼里要支持證書的滾動(dòng)查找——驗(yàn)簽時(shí)先用當(dāng)前證書失敗后嘗試用備用證書再驗(yàn)一次而不是只信任一把。4.2 證書與簽名算法SHA1 還是 SHA256RSA 還是 ECDSA簽名算法協(xié)商是個(gè)容易讓人頭大的點(diǎn)。SAML2 標(biāo)準(zhǔn)在 XML 簽名里同時(shí)支持 RSA-SHA1、RSA-SHA256、ECDSA-SHA256但并非所有 IdP 都支持全部。大型政企系統(tǒng)里有相當(dāng)一部分老舊 IdP 只支持 RSA-SHA1你的 SP 端如果強(qiáng)制 SHA256IdP 在驗(yàn)證 AuthnRequest 簽名時(shí)會(huì)直接報(bào)錯(cuò)。我通常的做法是先看 IdP 的 metadata。metadata 里的SignatureMethod標(biāo)簽會(huì)明確列出它支持的算法按這個(gè)列表配置 SP 端行為就穩(wěn)穩(wěn)的。如果你拿不到 metadata或者 IdP 文檔語焉不詳直接用 RSA-SHA256 作為默認(rèn)值遇到握手失敗再降級(jí)到 SHA1。另一個(gè)容易被忽略的細(xì)節(jié)是證書密鑰長度。2048 位當(dāng)前仍是主流有些新部署已經(jīng)上了 4096 位但老 IdP 在驗(yàn)證簽名時(shí)對(duì)超大密鑰的處理存在性能問題會(huì)直接把請求超時(shí)。遇到這種情況別急著改算法先看看 IdP 是否有資源側(cè)的調(diào)優(yōu)參數(shù)。4.3 時(shí)鐘偏移、斷言有效期與會(huì)話老化SAML2 斷言里有NotBefore和NotOnOrAfter兩個(gè)時(shí)間戳限定了斷言的有效期。標(biāo)準(zhǔn)里沒有強(qiáng)制規(guī)定有效期長度但主流 IdP 一般默認(rèn)給五分鐘。這個(gè)五分鐘在正常網(wǎng)絡(luò)環(huán)境下完全夠用但有一個(gè)前提SP 和 IdP 兩邊服務(wù)器的時(shí)鐘必須大致同步?,F(xiàn)實(shí)中我踩過一次很深的坑——某個(gè)客戶的 IdP 跑在一臺(tái)時(shí)間漂移了八分鐘的服務(wù)器上SP 端一切正常但斷言里NotBefore比當(dāng)前時(shí)間晚了七分鐘SP 端判斷“斷言尚未生效”直接拒絕。解決手段有兩個(gè)層面。第一部署層面必須給服務(wù)器配置 NTP 時(shí)間同步云服務(wù)器默認(rèn)做得好自建機(jī)房就容易出問題。第二代碼層面在 SAML2 配置里把允許的時(shí)鐘偏移量調(diào)大一點(diǎn)通常設(shè) 30 到 60 秒已經(jīng)足夠。不要設(shè)置更大的值有效期存在的意義就是防止重放攻擊無限放寬等于把安全門拆了。還有一個(gè)經(jīng)常被忽略的與會(huì)話相關(guān)的坑SAML2 斷言的五分鐘有效期和 ASP.NET 本地 Cookie 的過期時(shí)間是完全獨(dú)立的兩件事。用戶體驗(yàn)是“用著用著突然跳到 IdP 要求重新登錄”但你查 SAML2 相關(guān)日志全部正常原因是本地 Cookie 過期了而新用戶在跳回時(shí)拿到的仍然是一個(gè)新的有效會(huì)話。排查這種問題時(shí)要把 Cookie 過期時(shí)間、IdP 會(huì)話策略、斷言有效期三者并列對(duì)比看哪個(gè)先到期。5. 避坑與排查SAML2 接入最常見的五個(gè)現(xiàn)場5.1 現(xiàn)象登錄成功后找不到用戶 ID用戶從 IdP 那邊登錄成功了瀏覽器也跳回了你的站點(diǎn)但你發(fā)現(xiàn)會(huì)話里拿不到身份標(biāo)識(shí)。查 SAML 斷言發(fā)現(xiàn) NameID 是空的或者 NameID 拿到了但郵箱、姓名全是 null。這個(gè)問題的根源基本都在屬性映射。SAML2 標(biāo)準(zhǔn)允許 IdP 在斷言里放置任意自定義屬性AttributeStatement標(biāo)簽下的每個(gè)Attribute用 Name 屬性區(qū)分。但 .NET 側(cè)的 Claims 機(jī)制期望的是一組標(biāo)準(zhǔn) ClaimType比如ClaimTypes.Email里裝的應(yīng)該是郵箱地址。而 IdP 返回的屬性名幾乎都是客戶自定義的可能是user.email也可能是mail還有可能是emailAddress。處理方法是寫一個(gè)屬性映射表把這些原始屬性名映射到 .NET Claim 類型options.SPOptions.ClaimsMapping.Add(mail, ClaimTypes.Email); options.SPOptions.ClaimsMapping.Add(employeeNumber, ClaimTypes.NameIdentifier);這段配置的意思是把 IdP 返回的屬性mail映射成 .NET 里的 Email ClaimemployeeNumber映射成用戶標(biāo)識(shí)。屬性映射是接入時(shí)最繁瑣的工作因?yàn)槟惚仨毾?IdP 方要一份“返回屬性清單”根本沒有自動(dòng)發(fā)現(xiàn)機(jī)制。另外還要注意屬性是有大小寫的Mail和mail是兩個(gè)完全不同的屬性名映射時(shí)嚴(yán)格按 IdP 文檔抄不要自作主張規(guī)范化。5.2 現(xiàn)象跳轉(zhuǎn)到 IdP 后提示“請求無效”用戶在瀏覽器里點(diǎn)擊登錄SP 把他重定向到 IdP結(jié)果 IdP 頁面報(bào)出“請求無效”或“invalid request”。這類問題通常不是簽名問題而是 AuthnRequest 本身不被 IdP 接受。最常見的原因是 SP 沒有提供 IdP 要求的簽名或者簽名算法不被支持。IdP 側(cè)如果設(shè)置了必須驗(yàn)簽才處理請求而 SP 端沒有為 AuthnRequest 配置簽名證書請求就會(huì)被丟棄。解決方法是回到第 4 章的證書配置確認(rèn)SPOptions.SigningCertificate正確加載。另一個(gè)隱蔽原因AuthnRequest 里帶了Destination屬性它必須和 IdP 實(shí)際接收請求的端點(diǎn) URL 精確一致。如果 IdP 的登錄端點(diǎn)有兩個(gè)——一個(gè)用于重定向綁定一個(gè)用于 POST 綁定——而你的配置寫錯(cuò)了綁定方式同樣會(huì)觸發(fā)這個(gè)錯(cuò)誤。處理邏輯很直白從 IdP 的 metadata 里找到正確的 SingleSignOnService 地址和綁定方式逐項(xiàng)對(duì)照。我在聯(lián)調(diào)時(shí)會(huì)把中間件實(shí)際發(fā)出的 AuthnRequest 完整記錄成日志一條一條檢查頭信息十次里有八次問題都是出在這種細(xì)節(jié)上。5.3 現(xiàn)象IdP 側(cè)的一切正常但 SP 端一直 401登錄鏈路都走完了IdP 那邊顯示認(rèn)證成功SP 端收到的卻是 401。檢查 SAML2 日志的時(shí)候發(fā)現(xiàn)請求沒有到達(dá)斷言處理邏輯直接被 ASP.NET 的認(rèn)證中間件攔截了。這問題通常不是 SAML2 配置的問題而是你的“匿名訪問”和“需認(rèn)證資源”沒分清楚。默認(rèn)情況下ASP.NET 中間件會(huì)對(duì)所有未認(rèn)證請求返回 401。解決辦法是檢查那些允許匿名訪問的端點(diǎn)是否帶了[AllowAnonymous]特性同時(shí)確認(rèn)UseSaml2中間件的執(zhí)行順序在UseAuthorization之前。還有一個(gè)容易搞混的點(diǎn)SAML2 中間件解析斷言成功后是調(diào)用CreateSession來建立本地認(rèn)證 Cookie 的。如果你繼承默認(rèn)配置會(huì)話自動(dòng)建立沒問題但如果你重寫了某個(gè)環(huán)節(jié)比如自己在控制器里手動(dòng)處理 SAMLResponse卻漏掉了CreateSession這一步那么即便驗(yàn)簽全過請求終態(tài)仍然是沒有認(rèn)證身份的狀態(tài)。5.4 現(xiàn)象所有配置都對(duì)但簽名驗(yàn)證就是失敗這類問題最考驗(yàn)?zāi)托囊驗(yàn)槟愕拇a、配置、乃至 IdP 提供的證書都“看起來沒問題”。簽名驗(yàn)證失敗的常見原因有三個(gè)。第一個(gè)是 IdP metadata 里的證書過期了IdP 本身已經(jīng)輪換到新證書但 metadata 沒更新你在代碼里加載的仍是舊證書。第二個(gè)是簽名算法匹配問題IdP 用 SHA1 簽名代碼配置卻只認(rèn) SHA256兩個(gè)在數(shù)學(xué)上完全不同的摘要方法當(dāng)然對(duì)不上。第三個(gè)是 XML 規(guī)范化問題——SAML2 簽名標(biāo)準(zhǔn)里規(guī)定了 XML 在簽名前要先做 C14N 規(guī)范化不同的 XML 庫對(duì)空白字符的處理有細(xì)微差異極端情況下同一份斷言在不同框架里算出的摘要會(huì)不一致。前面兩種原因好解決分別對(duì)應(yīng)證書輪換和算法對(duì)齊。第三種原因讓人頭疼一旦遇到我會(huì)先用 XML 工具把收到的原始斷言和簽名值完整導(dǎo)出然后對(duì)比文檔里的標(biāo)準(zhǔn)簽名流程逐步核查是哪個(gè)環(huán)節(jié)的變換出了問題。實(shí)際項(xiàng)目中這類問題如果跟框架的 XML 解析器有關(guān)換一種解析庫往往比研究協(xié)議理論更快。5.5 現(xiàn)象本地正常部署到服務(wù)器就失敗開發(fā)環(huán)境一切正常一上測試服務(wù)器就報(bào)錯(cuò)。這種場景最常見的原因是證書路徑和權(quán)限。你在開發(fā)環(huán)境加載證書用的是相對(duì)路徑.crt文件部署后工作目錄變了證書找不到或者運(yùn)行進(jìn)程的用戶沒有讀取證書文件的權(quán)限導(dǎo)致加載失敗。定位這樣的問題第一件事是看進(jìn)程啟動(dòng)日志證書加載異常會(huì)在應(yīng)用啟動(dòng)時(shí)直接拋異常。另一個(gè)部署相關(guān)的大坑是 HTTPS。SAML2 要求 ACS 地址必須通過 HTTPS 訪問否則斷言在傳輸過程中可能被篡改。局域網(wǎng)測試環(huán)境經(jīng)常有人用 HTTP本地能跑通是因?yàn)?SP 和 IdP 互相之間沒有做傳輸層安全強(qiáng)制但真實(shí)場景中 IdP 會(huì)很誠實(shí)地拒絕非 HTTPS 的斷言消費(fèi)地址。部署時(shí)先確認(rèn)反向代理層的 TLS 配置正確并確保ForwardedHeaders中間件把X-Forwarded-Proto正確傳遞到應(yīng)用層不然即使 HTTPS 實(shí)際是通的應(yīng)用里看到的請求協(xié)議仍是 HTTP各種校驗(yàn)依然會(huì)拒絕你。6. 把它做成能交付的東西給 ACS 端點(diǎn)加日志、多租戶支持與 SLO6.1 為 ACS 端點(diǎn)做結(jié)構(gòu)化日志接入排錯(cuò)時(shí)最怕黑匣子用戶說登錄不了但你沒留下任何可分析的信息。SAML2 的排錯(cuò)數(shù)據(jù)全藏在斷言和協(xié)議消息里所以我的習(xí)慣是在 ACS 端點(diǎn)里增加結(jié)構(gòu)化日志把 EntityID、NameID、斷言 ID、受眾、簽名算法、驗(yàn)證結(jié)果全部記錄下來。日志字段設(shè)計(jì)上至少要有請求全局 ID、SP EntityID、IdP 的 SSO 地址、返回的 RelayState 以及唯一的 trace 標(biāo)識(shí)。這套日志在線上追查“某用戶登錄失敗”時(shí)能夠把一次完整登錄鏈路從入口到退出拉平看不需要再靠猜。6.2 用配置文件驅(qū)動(dòng)多租戶支持如果你做的不是單個(gè)系統(tǒng)的接入而是要給多個(gè)客戶或內(nèi)部多個(gè)部門提供服務(wù)那每個(gè)租戶對(duì)應(yīng)一套 IdP 配置。改造的核心是把IdentityProviders列表改成從配置源加載租戶通過子域名或 URL 前綴區(qū)分中間件根據(jù)當(dāng)前請求的 Host 決定用哪一套證書去驗(yàn)簽。這里有個(gè)細(xì)節(jié)多租戶模式下EntityID 也要按租戶區(qū)分不然所有租戶共享同一個(gè) SP 身份IdP 端會(huì)混淆。實(shí)現(xiàn)了這一點(diǎn)之后新增一個(gè)租戶就不需要重新部署代碼只需要往數(shù)據(jù)庫里插入一條配置記錄。6.3 實(shí)現(xiàn)由 SP 主動(dòng)退出到 IdP 的 SLO單點(diǎn)登錄做好了退出登錄也要做好。SAML2 單點(diǎn)退出SLO的實(shí)現(xiàn)方式是 SP 主動(dòng)向 IdP 的SingleLogoutService端點(diǎn)發(fā)送 LogoutRequestIdP 清除全局會(huì)話后通知其他所有接入系統(tǒng)。我踩過最深的坑是在Logout控制器里忘了清除本地會(huì)話結(jié)果是用戶點(diǎn)了退出IdP 那邊全退干凈了回到本地頁面卻發(fā)現(xiàn)還能訪問受保護(hù)資源。正確做法是先從 IdP 注銷再調(diào)HttpContext.SignOutAsync清掉本地 Cookie順序反了會(huì)出現(xiàn)本地會(huì)話已清但 IdP 端還留著會(huì)話的情況。線上項(xiàng)目里我還養(yǎng)成一個(gè)習(xí)慣無論多簡單的接入都先確認(rèn) IdP 端的持久化會(huì)話策略。有些 IdP 默認(rèn)空閑會(huì)話二十分鐘就失效SP 端卻希望保持一個(gè)星期這個(gè)時(shí)間差會(huì)導(dǎo)致用戶以為登錄狀態(tài)還在實(shí)際上跳轉(zhuǎn)過去又被要求重新輸密碼。能讓雙方策略盡量對(duì)齊就盡量對(duì)齊對(duì)不齊時(shí)把 SP 本地 Cookie 過期時(shí)間設(shè)置得比 IdP 短一些雖然犧牲了一點(diǎn)體驗(yàn)但至少用戶知道什么時(shí)候該重新認(rèn)證。SAML2 接入這件事做一次覺得全是細(xì)節(jié)做三次就會(huì)發(fā)現(xiàn)套路清楚得很。每次排錯(cuò)我都堅(jiān)持一個(gè)笨辦法把原始請求報(bào)文、簽名值、證書指紋全部導(dǎo)出存檔對(duì)著協(xié)議標(biāo)準(zhǔn)逐項(xiàng)排查不靠猜測。希望你也能從這個(gè)方向入手少走一些我走過的彎路。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩国产欧美伦理在线| 97在线公开视频| 成人av在线播放| 丁香五月天堂网| 东北操逼| 懂色AV一区二区三区| 国产精品网址| 大香网伊人久久综合网eew| 蜜臀在线视频| 九九九九97| 久久久久久精品免费看A级| 综合天天网| www.91逼逼.com| 日韩精品操少妇| 国产超碰| 超碰2017| 天天爽入口| 中文字幕精品区先锋资源| 中亚黄色三级大片| 九九香蕉网| 亚洲男人天堂手机版| 亚洲欧美九九| 日韩精品国产一区二区| 久射吧| 91美女视屏| 男女激烈网站最新| 亚洲 欧美 日韩另类 麻豆| 亚洲18禁| 久久鲁干| 国产精品福利资源在线尤物| 一级做a爰片性色毛片久久| 日韩精品人妻系列无码天堂| 自怕偷自怕亚洲精品| 欧美97免费| 久久久免费懂色| 日韩情色AV| 日韩欧美经典在线观看| 99精品成人免费看| 日本高清电影欧美色图| 91一区二区| ji熟女.com| 一级性爱网| 亚州高清色综合| 欧美后进式| 日本狂喷奶水在线播放212| 亚洲中文字幕精品一区| 中国一级操逼视频| 99国产在线 精品 视频| 日韩性爱播放| 午夜性生活av免费在线看| 亚洲熟女一区| 国产一区二区三区不卡手机在线| 久九九九九九九热| 污啪啪啪视频| 欧美精品双插| 欧美白嫩女HD| 9久9久| 亚洲人在线| 亚洲欧美综合色| 九九九九九九成人| 涩亚洲欧洲| 亚洲制服欧美另类内射| 亚洲AV秘无码一区..| 欧美情色男人的天堂| 97综合国产精品高潮久久| 99热最新网址| 激情av| 五月丁香色色网| 玖玖97综合 | 91精品国产91久久福利| 国产又黄又粗的视频| 伦伦成年午夜免费视频| 中国亚洲呦女专区| 超AV色女| 国产成人啪一区二区| 91精品国产乱码| 亚洲中文sv| 日本成人免费一区二区三区| 亚洲成人性爱在线观看| 夜夜夜久久| 欧美日韩青操| 久久精品| 久久国产精品一级二级三级| 色色青青久久| 日韩一级久久毛片| 色五月综合网| 一区二区三区机械有限公司| 巨爆乳一区二区爆乳区| 久久嫩草国产成人一区| 桑老女人九区| 蜜臀AV秘一区翔田千里| 日韩在线76| 91人妻素女| 无遮挡男女激烈动态图| julia高潮后不停追击中出| 日本东京热大香蕉a片| 综合亚洲网| 蜜臀AV秘一区翔田千里| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 亚洲 图片 综合91| 视频在线观看一二三区| 试看60秒 爽| 色操逼网| 91久久久久久久久久久| 国产后入清纯| 天天香香欲综合| 一本久久精品中文字| 97精品视频| 91老熟女视频| 99色视频| 很很很很操| 热思思免费视频| 五月激情视频| 亚洲在线欧美| 96AV精品| 综合网欧美| 91美女中出| 欧美激情 亚洲色图| 丝袜内射| 亚洲国产亚洲天堂| 成人一道本免费视频| 色色婷婷丁香| 大奶的诱惑| 中文字幕 码 自拍 视频 区| 盗摄 精品 另类 一区| 激情四射婷婷六月天| 天天干电影| 日韩AV片| 高清在线不卡一区二区 视频| 乱伦日本色图AⅤ| 呻吟 欧美 日本 中出| 亚瑟国产精品久久无码| av2014 日韩在线中文字幕| 日韩去日本高清在| 一区二区视频你懂的| 操逼逼一区视频| 精品十三区| 狠狠中文字幕| 伊人网高清| 91婷婷伊人狠人| 大香蕉中文201| 成人麻豆av电影网站| 久久久久久久久久黄色网| 色嗨嗨在线| 国产精品。| 亚洲av淫乱| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 久久久久久少妇| 日韩亚洲Av人人夜夜澡人人爽| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 99综合网| 一级aaaaa欧美中文字幕录像片| 秋霞一区二区三区四区五区六区七区| 欧美v日韩v亚洲v最新在线| 操我啊啊啊啊啊| 日本熟女中文字幕一区| 婷婷色香伊人| 美女黑人91神马| 久久男女激情视频网站| 97亚洲欧美| 97 九色| 免费中文在线| 国产福利一区二| 日本最新1区2区3区| 亚洲图片欧美在线视频| 亚洲中文日韩欧美大香蕉视频| 色91综合网| 国产强奸乱伦欧美| 久久久久久久久久久久97| 精产国品一区二三产品| 熟女精品一区二区三区| 成人 日本A片无码8888| 日韩av情韩国爱禁区av一区二区| 亚洲性爱电影| 欲香欲色综合天天伊人| 99精品伊人| 偷窥自拍亚洲天堂网爆| 国产黄色小视频网站| 粉嫩AV一区二区夜夜| 91伊人大香蕉| 日韩天美| 亚洲图片激情综合另类| 日本熟妇人妻中出视频| 国产狂喷潮在线精品| 亚洲做性| 噜噜吧,噜噜色,噜噜| 久久久爆乳翘臀一线天伦理视频| 以及麻豆国产入口在线观看免费| 天堂性色| 草蕉影视亚洲无码| 日韩精品一区二区三区四虎影视| 欧美久久人人网| 翔田千里A片一区二区| 五月天久久人妻| 亚洲drav色图| 超碰97欧美日韩| 亚洲少妇激情视频| 欧美72网页| 成 人 影视 一区 二区 三区 四区| 92午夜免费福利视频| 成人一级性爱| 巨爆乳一区二区爆乳区| 日本熟女免费視颖| 免费看黄视频亚洲网站| 亚洲性爱免费电影| 国产第25页在线观看| 岛国片在线播放| 秋霞操逼片| 秋霞操逼片| 亚洲黄片免费在线播放| 这里只有精品视频在线观看麻豆| 五月婷网站| 日本一区二区三区午夜观看| 一区不卡在线观看av| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 国产91专区| 亚欧美综合网。| 中文字幕亚洲热播人妻| A 天堂在线观看视频| 成人26uuu| 九九视频黄色片| 综合av社区| 无码免费在线观看黄色片| 日韩欧美亚欧在线视频| 一级性爱视频免费在线| 免费a级毛片av无码久久精品中文字幕| 黄骗免费网站| 国产精品嫩草久久久久| 亚洲精品第一| 日日干日日| 亚洲熟女国产综合另类| 亚洲永久AV无码精品秋霞| 91亚洲电影| 在线视频资源| 欧美欧美啪啪视频| 91三级理论片播放器| 日本色色色| 九九热男人天堂| 久操 高清| 偷偷人人精品女女久久| 国产精品婬乱一级毛片彝族| 激情五月激情综合网| 禁止观看美女黄| 老女人碰碰在线碰碰视频| 啊啊啊啊啊舒服| 啊啊啊免费| 精品成人亚洲午夜电影| 香蕉综合网| 亚洲第一页欧美| 久久噜噜噜精品国产亚洲综合| 大粗鳼巴久久久久| 91小视频| 97国伦国色| 麻豆色99999| 私人尤物在线精品不卡| 男人的天堂一区三区| 亚洲情色电影网| 国产精品久久久久久亚洲色欲| 精品亚洲一区在线观看| 天天综合精品| 熟妇激情| 欧州一区二区三区四区| 啪啪一区| 日韩无码久久熟女一级片| …中文字幕亚洲乱,97人妻无码费视…| 四虎影视精品| 在线v中文字幕一区二区三区| ′ !γ}丶。。久久精品欧美一区二区三区| 日韩伦理视频| 欧美色91| 成人亚欧免费视频| 亚洲五区熟女| 国产精品操| 97国产高清视频在线观看| a男人的天堂| 亚洲黄色AV电影| 亚洲色图亚洲无码强奸乱伦| 9久久美女首页| 97香蕉网| 久久极品一区二区| 伊人九九| 男人亚洲91首页在线| 国产青青综合伊人| 国产一级作爱毛片| 91碰碰| 婷婷久久五月综合激情| 亚洲高清在线| 东京热,男人的天堂| 日韩av影片在线观看| 欧美日韩亚洲高清不卡一区二区三区| 欧美综合另类| 91女在线观看| 9丨亚洲一区二区在线| 麻豆天美国美国产| 国产人妻天天干精品| 欧美亚综合色图| http://qxhbdz.com| 超碰欧美COM| 把腿张开老子CAO烂你| 久久鲁夜| 在线看片国产精品每日更新| 青青草狠狠撸| 天堂8在线新版官网| 超碰综合97在线| 亚洲欧美一区二区三区一猛片| 另类视频在线| 人人操人人摸人| 久久久少妇诱惑精品视频| 亚洲一级性爱视频免费看| 久久日本熟女精品一区| 久久6热视频免费观看| 亚洲激情深爱文学小说网站| 色综合色色| 欧色网址| 日本加靬比网站发布页| 99国产在线 精品 视频| 97超色| 亚洲日本韩国在线| 我要去看2个日本美女.com曹逼| 毛片视频白嫩| 性爱视频无打码在线观看| 欧美国产一区二区三区麻豆传媒| 欧美精品久久久久久久久88| 天天日天天干天天摸天天操| 亚州宗合另类| 久久精品国产96精品亚洲拳交| 日日嗷| 久久五月丁香| 激情熟女12P| 日日噜噜夜夜久久亚洲一区二区| 五月天婷婷成人网| 黑人美精品 A片| 一区二区无码视频| 天美欧美国产| 夜色五月天| 自拍偷拍草一草| 日韩高清一二三| 亚洲av夫妻操穴网| 约操熟妇| av影片在线观看不卡| 亚洲经典啪啪| 一区在线国产播放| 久9爱精品| 亚洲色堂免费视频| 日日碰狠狠添天天爽超| 无码高清操逼网址| 综合欧美亚洲| 97欧美色| 大香蕉啪啪啪啪在线| 六月婷婷色综合| 日本成人A片网站| 97超碰中文在线| 乱伦一二三| 天天综合网亚洲综合网| 校园春色欧美色图| 97人妻色| 综合激情五月天| 做爱A级亚欧| 欧美91变态| 日韩人妻精品| 亚欧美综合网。| 国产精品青青草| 这里都是精品在线观看| 人人潮人人摸| www.91人妻.com| 成人久久久| 美女91网| 欧美色97| 91亚洲电影| 国产中文字幕在线观看| 久久久久国产| 91爱做| 日产中文字幕2020| 蜜臀精品1区2区| 狠狠狠狠狠| 六月丁香久久| 亚洲五月婷婷| 丁香六月婷| 丁香九月激情啪| 综合久久欧美| 超碰在线人妻| 久久香蕉网| 色噜噜狠狠色综合日日| 欧美成人性爱视频大全| 手机看片1025| 婷婷五月天av| 97超碰碰碰| 色吧91| 99精品成人免费看| 蜜臀操逼黄色视频操的好爽| 乱伦日本色图AⅤ| 日韩一级特黄av毛片| 中文字幕国产| AA特级绝黄| 超碰成人最新最好看| 国产操偷| 丁香啪啪| 91欧美偷拍| 综合网久久| 天天看高清麻豆| 长久操视频| 视频在线中文字幕| 后入人妻无码| 亚洲色图亚洲| 日韩乱伦影音先锋| 丁香五月影院| 国产黄色动态精品| 色综合1991| 欧美一区二区| 你懂的在线观看区国产| 日韩亚洲中文字幕在线| 99热思思| 超碰1024久久| 国产美女91| 蜜桃久久一区二区| 自怕偷自怕亚洲精品| 嫩草影院在线观看精品| 口爆综合网| 久久国产对白激情浪潮| 丰满欧美放荡少妇在线| 人人操 欧美| 日韩一级性爱无码| 欲香欲色综合天天伊人| 91色色网站| 性爱乱伦视频免费| 狠狠色丁香| 日韩99999色| 日韩精品人妻中文字有码在线| 午夜精品人妻二区三区| 欧美不在线| 久久riav中文精品| 欧美亚州手机在线| 天美传媒精品一区二区三区| 久久精品国产精品一区| 操逼逼福利视频| 97国产精品国| 亚州高清AV| 人妻干天天| 亚洲高潮少妇| 无码人妻毛片丰满熟妇精品区| 免费一二区| 久久这里只精品99re66图| 人妻天天爽夜夜爽精品2| 欧美综合自拍亚洲综合图| 亚洲一区日韩精品中文字幕| 超碰AV在线| 蜜桃久久久久久久久久久久| а√天堂资源官网在线资源| 99只有精品| 久久久精品一区二区| 国产精品午夜福利亚洲综合网| 日韩国产中文字幕| 91天天美女| 精品人妻一区二区视频| 蜜屁Av| 国产精品精品系列在线观看| 91国产精品在线看| 91色欧美| 在线国产探花| 久久久久深夜无码| 操逼逼无码| a片在线播放| 大香蕉亚洲中文| 大白逼三四级| 激情五月天社区| 久久久久久久久久精| 国产狂喷潮在线精品| 亚洲不卡不卡中文字幕不卡| 97在线免费视频观看| 狠狠操综合| 国内一级精品| 炮色五月| 一级岛国大片| 射丝袜大香蕉| 国语对白在线播放视频| 中文字幕免费在线观看| 久久婷婷视频| 好属操| 色穴精品| 国产狂喷潮在线精品| 96免费视频在线| 飘花国产午夜精品不卡| 加勒比海成人视频网| 亚洲导航深夜福利| 99热线麻豆| 色五月网址| 久 久无码人妻AV| 欧美大码在线视频| 亚洲欧洲日本精品中文a∨| 91逼逼女人91| 逼操网站| 久久在肏| 色爱综合网欧美| 日韩 欧美 另类 人妻| 黄色十八禁| 人人考人人摸人人干| 91性网| 四虎影视在线| 91天堂色男人的天堂| 深爱伊人影院| 男人干美女| 人人摸人人摸人人干| 精品十八在线观看| 宗合情欲网| 亚洲第一黄色av网站| 亚洲欧美激情小说| 成年男人的天堂| 国产亚洲精品美女久久久m| 人妻少妇精品久久久久久| 99超碰色| 亚洲强奸乱伦影视网| 亚洲三级。日韩三级| 久久嫩草国产成人一区| 亚洲欧洲网站免费观看| 强奸乱伦 亚洲一区| 伊人午夜福利视频| 久久这里精品国产99丫e6| 色黄色美女大长腿午夜视频| 搡老女人老熟女91老熟女综合网| 成人十八禁日韩欧美一二三| 男人天堂2019亚洲| 操逼逼无码| 秋霞免费无码视频日韩A片| 欧美爱国产综合、| 9精品在线| 99热免费| 国产黄色av大片网站| 69国产对白刺激| 色噜噜人妻av中文字幕| 国产熟女| 日本午夜福利视频| 97久久国产亚洲精品超碰热| 激情网五月天| 噜噜吧,噜噜色,噜噜| 中文字幕国产| 中国农村熟妇毛片视频| 亚洲视频精选| 91N综合网| 黑人干亚洲| 人妻 制服 日韩 中文 在线| 中文字幕91综合| 长长久久曰曰夜夜成人网| 日韩AV无码中文一区二区| 日本黄色精品专区网站| 亚洲欧美色图| 亚洲天堂精品日韩电影| 午夜毛片亚洲精品片国产久久久| 亚洲区小说| 精品欧美日韩在线观看| 伊人精品国产| 97国产精品久久久久| 成人热久久精品| 欧美熟妇人体| 青青草伊人久久| 91人妻丝袜无码| 少妇高潮99p| 欧美日韩99| 色综合久| 国产又粗又又黄又猛| 五月丁香激情啪啪| 久久98| 久久色情| 思思热在线观看| 日本狠狠干| 天天爽天天操| 天天综合网国产| 91亚洲青青草原精品1区| 欧美嗯啊……在线观看视频免费| 亚洲欧洲小说图片视频 | 超碰久久性爱| 一区二区三区网站日日骚| 91逼逼女人91| 97天天操天天干| 久久骚少妇| 尤物视频网 刘玥| 中文字幕无码不卡啪啪| 亚州性色| 国产欧美日本亚洲精品| 日本成人A片网站| 国人欧美精品一区二区| 天天肏夜夜肏| ,国产乱人伦精品一区二区三区| av婷婷色网| 婷婷精品国产一区二区三区日韩| 亚洲性综合| 加勒比aⅴ| 黄片视频观看| 亚洲av影音先锋| 91操操| 久久久久久久久久久97| 啊啊啊啊啊好舒服视频| 亚洲色阁| 国产精品成人福利在线| 99操逼| 97资源超碰| 日本新免费二区三区| 91成人亚洲色图| 伊人影院日本| 爱av免费| 91夜夜蜜桃臀1区2区3区| 久久精品一区二区三区蜜桃臀| 欧美在线天堂| 熟女乱伦A| 91久久久久免| 91美女視頻| 久久加勒比| 91快色色色色色| av天天在线观看| 国产欧美后入| 久青草影院| 日本黄色裸日本黄色裸体 | 欧美成人黄网色网站| 国产蜜臀精品一区免费尤物| 免费超碰97久久| 激情婷婷综合久久| www色色com| 在线情色电影 91大 | 射久久| 亚洲黄色网址视频| 免费人人搞97| 一区二区三| 91free福利| 欧美大片一区二区三区| 亚洲国产美女久久久久| 99久久久99久久91熟女| 亚州九九九精品视频| 性色AV蜜色av色欲av| 婷婷中文字幕| 人人操超碰在线| 国产精品久久久久久久毛片1| 91在线美女| 大香蕉狠狠爱| 日本综合色图| 欧美,日韩,中文,另类| 思思热久久成人| 欧美熟妇操操视频| 日本成熟少妇A∨网站| www.91色综合| 精品对白久久不卡| 五月婷婷丁香| 偷窥自拍亚洲| 欧美色综合影院| 天天操天天日天天干| 国产女人高潮嗷嗷嗷叫小说| 97久久精品国产| 日本黄大片在线观看视频| 成人贴图日韩欧美| 婷婷尹人大香蕉免费| 日本蜜桃| 欧美日韩性爱电影在线| 长长久久免费视频| 无码精品久久| 精品久一区免费| 超碰人妻久久| 亚州操操穴网| 国产乱伦搜索结果91P| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 99精品在线播放| 深喉吞精| 亚洲夜色在线| 翔田千里A片一区二区| 精品人人| 日日噜噜夜夜狠狠视频无| 操一区| ji熟女.com| 色网综合网| 怡红院一区二区熟女人妻| 蜜桃精品视频一区二区三区| 91精品久久综合熟女| 亚洲资源一区| 蜜臀av中字字幕网站| 日婷婷| 大香蕉伊然在亚洲91| 久久露脸国产老熟女| 91天天综合日韩欧美| 二级毛片| 综合欧美日本三级| 超碰九区| 丝袜无码a片| 国产吞精a级片激情电影| 大香蕉线| 欧美日韩婷婷中文| JULIA一区二区三区在线播放| 本道综合精品| 欧美精品91| 亚洲色欲天天人妻无码系列专区| 久久精品一区二区| 欧美一区二区成人一卡| 婷婷五月天伊人| 欧美五十路熟| 极品色综合| 天美传媒Av在线| 91蜜桃婷婷狠狠久久综合9色| 亚洲av噜噜噜噜噜噜| 欧美激色| 亚洲最大的黄色电影网站。| 国产男人又猛又粗又爽| 日本欧美中文字幕| 搡老熟女国产1000部| 黄页大片在线观看| 欧美精品久久久久久久久88| 免费AV中文网在线观看| 五月天加勒比啪| 资源在线观一 二| 国产白嫩漂亮KTV在线| 蜜臀久久99精品久久久久久无删减 | 久久天天性久久伊人| 久草网站免费在线观看| 亚洲精品久久久久毛片A片拉屎| 中文久久96| 极品白嫩福利在线| 婷婷丁香在线| 熟女人妇一区二区三区| 极品欧美一区二区三区| 60秒不遮不挡| 欧美偷| 熟女AV一区| 无码一区二区三区四区五区六区七区八区九区十区视频 | 九九亚洲视频| 激情干在线| 嫩呦国产一区二区三区AV| 国产99热| 国产熟女无套内射| 久9久9久9久9久9久9| 青娱乐手机日韩在线视频| 久草综合京东| 日韩精品.久久精品.AV女优.天美传媒 | 久九九九九九九热| 亚洲日本成人动漫| 日本 欧美 亚中文字幕| 亚洲精品蜜桃久久久| 欧美中日韩XXXX| 亚洲啪啪啪啪视香蕉| 老熟女熟妇| 色噜噜人妻av 中文字幕| 五月丁香| 久久怡红院| www.久久久久| 六月丁香五月婷婷| 99热在线播放| 日韩一区二区精品视频| 五月天激情国产综合婷婷婷| www.色操逼| 天美麻花大全视频| 91久操| 曰韩av中文字幕专区| 亚洲aV性爱| 99九九久久| 欧美一级三级| 亚洲男人的天堂V| 色女99一级片在线观看| 欧美日韩亚洲天堂网| 亚洲精品1区| 精彩久久中文| av天堂加勒比| 亚洲 暴爽 AV人人爽日日碰| TS人妖另类精品视频系列| 国产中出内射一区二区| 久久精品国产99精品亚洲蜜...| 免费1级a做爰片观看| 无码逼| 99综合视频| 小草精彩毛片| 好看的久久不射无码影视影院| 天天日美女的B| 亚洲日精品| 欧美亚洲天堂| 国产网红精品| 99精品久久| 亚洲男人的天堂V| 久久久久元码视频| 91av一区二区在线观看| 亚洲人妻中文高清| 99无码精品| 影音先锋一区二区在线资源| 亚洲色图第四色| 神马久久久久久久| 欧美一区二区三区入口| 色丁香五月婷婷| 精品久久久久瑟瑟| 精品9999| 人人操人人干xxx| 8050无码八戒| 搡老女人老妇女老妇老熟女怎么读| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 深夜国产福利| 九九干| 色婷婷丁香五月| 天堂射| 国产99热| 国产97视频免费观看| 久操B网| 久欲AV| 亚洲国产精品无码AV久久| 国产精品婬乱一级毛片彝族| 97超碰美国| 欧美亚洲清纯| 国产一区免费午夜视频| 伊人久久88国产女| 狠狠干2020| 久久这里只精品免费福利| 亚洲色综合| 欧美在线中M| 网站A V在线| 在线观看一卡二卡| 另类老少妇| 啪啪AV导航| 成人色女网| 97干97色| 五月丁香六月激情综合| 国产精品97超碰| 无码丰满熟妇一区二区浪潮AV| 殴美性色a级欧美| 0755午夜福利视频| 国产精品一二三在线看| 丝袜天堂| 另类亚洲一区二区三区| 日本三级中国三级99人妇网站| 久操| 国产人妖视频一区在线观看| 亚洲AO在线| 日本淫乱女一区二区三区视频| 亚洲高清在线| 91麻豆天美国产欧美高潮| 男女性感激情网站| 天天影视射综合网| 91 天天综合| 日韩久射综合| 国产成人免费观看在线视频 | 大奶的诱惑| 九九99精品视频在线观看| 中文无线日韩一区| 96久久精品一二三区色欲| 91欧美另类| 美女天天干| 狠肏骚人妻| 亚洲97综| 97久精品| 日本成a人v网站在线观看| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 死我十八禁| 操逼视频免费日韩无码| 色一区二区三区综合| 欧美精品久久久久久久久88| 狠狠爱夜夜干| 国产精品久久久三级无码| 清纯唯美综合亚洲| 丁香五月天啪啪| 九九久久玖玖| AND人妻系列| 亚洲天堂一区二区久久| 九九九九精品一区| 亚洲欧洲网站免费观看| 农村少妇久久久久久久| 精品久久久久久亚洲| 国产强奸乱伦第1页| 2025亚洲男人天堂| 国产精品亚洲高清在线| 午夜精品久久久久久久99| 免费毛片在线播放| 尤物网址| 99蜜月精品久久| 久久午夜伦| 黄色片A级一区二区三区| 亚洲综合骚逼| 五月丁香网站| 亚洲AV无码乱码| 在线五区| 九九热精品免费视频| 无码久久亚洲高清,| 九九九九精品一区| 久久九九99| 国产一区二区免费福利片| 久污| 日产狠狠干| 久久伊人亚洲AV无码网站| 蜜臀久久99'精品久久久| 欧美日不卡| 日本成人A片网站| 抽插亚洲无码| 久久久九九九九| 激情小说五月天| 中文字幕一区二区三区字幕| 青青草影视蜜久久| 一二三啪啪专区| 免费伦费视频在线观看| 97天天日| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 韩国免费播放一级毛片| 欲色啪| 黄页18禁| 亚洲欧洲综合视频在线| 18禁无码永久免费无限制| 欧美日韩小说| 久久视频少妇美女| 亚洲日本男人天堂网| 澳门特级毛片免费观看| 一个人免费视频观看在线WWW | 欧美疯狂做爰xxxx| 成人无遮挡毛片免费看| 欧美熟妇精品黑人巨大91| 骚逼一区二区| 亚洲欧美激情另类色图| 亚洲最大AV网| 一级日本牲交大片好爽在线看| 欧美性夜| 欧美黑人168页欧美黑人167| 伊人久久大香蕉线AV五月天| 夜夜爽33333| 伦理片秋霞免费影院| 岛国色情视频在线观看| 熟妇乱伦一区二区| 深夜视频| 农村少妇久久久久久久| 成年人免费观看网站| 日本欧美色| 人人操天天爽| 有码免费观看| 蜜桃视频精品一区二区| 极品极品色影院| 亚洲色图亚洲无码强奸乱伦| 操逼片国产| 国产欧美日本亚洲精品 | 久久久98网站免费视频| 九九九九九九免费视频| 亚洲永久永久永久永久一级一级一级精品| 被窝影院午夜看片无码| 欧美日韩操操操| se吧提供91精品国产91久久久久久| 亚洲熟女av中文字幕| 亚洲清纯综合| 青青草在线视频美女| 九一性生活免费视频| 国产天美传媒精品| 日本东京热加勒比久久| 黑人娇小av在线播放| 婷婷亚洲五月***久久| 97欧美精品综合| 天天躁日日躁AAA片李宗瑞| www.99中文字幕| 变态乱伦伪娘灌肠一区二区| 日婷婷| 欧美激情激情xxxx欧美专区| 天天躁日日躁狠狠躁| 99热在线播放| 超碰97人妻在线| 97国产精品| 狠狠久久手机视频精品| 国产毛片毛片4p懂色| 国产精品福利资源在线尤物| 国产亚洲色停停久久99精品91| 凹凸视频在线一区二区| 欧美成年人性爱视频免费观看| 天美传媒婬乱| 亚洲欧美色图小说| 最新三级网址| 97超碰国产亚洲精品资源| 日韩探花精品在线视频| 亚洲aV性爱| 天天射影院| 亚洲欧美激情小说| 极品少妇久久久久| 亚洲日韩精品一区二区| 成人精品无码| 日韩中文字幕人妻视频| 久久99精品视频| 日本高清电影欧美色图| 天天操av懂色| 国产青一二三| 日本淫穴在线| 另类图片五月天| 国产精品夜夜| 成人av在线播放| 亚洲女毛多水多21P| 日韩啪啪啪啪啪| 99综合自拍| 亚洲成人在线资源| 日韩兔费看黄片| 久操凹凸视频| www.狠狠| 亚洲淫色网中文| 日韩99999| 国产精品探花色| 国产高潮AA片免费看| 99国产精品在线观看| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 美女91在线观看| 夜夜国产一区| 麻豆一区二区AV天美| 亚洲最新Av| 欧美中出1| 好好的日:com久久九九| 欧日韩一二三f区| 国产精品一区二区久久精品| 91人妻Pr| AV丝袜东京热| 国产91精品在线免费| 国产av美女被艹的乱叫| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 性吧在线视频| 天天日美女的B| 亚洲在线网站| 激情五月婷婷| AV色图| 午夜性生活av免费在线看| 欧美 亚洲 偷拍自拍| 国产精品欧美激在线| 欧美大色交| 久操视频这里只有精品| 久久国产乱子伦精品免费女人| 人妻天天夜夜爽一区二区| 欧洲精品欧洲精品| 妇女性内射冈站HDWWWCOM| 激情五月天婷婷| 人妻精品一区一区三区蜜桃91| 91人精品妻入口| 人人喜人人妻| 欧美性性性| 欧美久热| 国产丁香精品露脸视频| 大香网站| 男人的亚洲天堂| 久久久久久69国产一区二区| 高清不卡视频| 97精品久久| 视频二区美腿丝袜制服人妻欧美| 亚洲脚交| 亚洲AV无码成人精品久久| 97操在线| 在线观看无码三级少妇| 亚洲91网。| 成人AV超碰免费在线| 日韩内射视频| 百度百度日本操逼| 成年男人的天堂| 日韩电影在线观看网址| 国产女上位好爽在线| 美女久久久久久久久久久| 五月婷色| 男同专区一区二区三区在线| 一级免费啪啪片| 啊啊啊啊嗯嗯在线久久久| 蜜桃无码AV一区二区| 2019亚洲男人天堂| 操逼视频免费日韩无码| 国产人妻精品一区二区三区秋霞 | 久九九九九九九九热| 日韩成人免费电影| www.男人的天堂| 超碰97欧美在线| 污色区网站| 东北老女人的激情视频| a一区二区三区乱码在线| 天美传媒AV国产在线| 无码av永久免费专区网站| 天天日熟妇| 91精品久久久久久77777| 91精品导航| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 欧美激情超碰777| 亚洲第一免费视频| Julia Annxxxxx| 男女啪啪网站免费视频| 成人性交午夜免费片| 成人夜夜爽| 狠狠婷婷亚洲中文综合久久| 午夜成人福利影视| 中文字幕亚洲永久精品| 天堂av最新电影网| 亚洲天堂人妻一区二区| 亚洲一区日韩精品中文字幕| 青女在线| 色情五月婷婷| 亚洲天堂在线怕怕视频| 熟女网站最新| 99色色网| 51久久夜色精品国产麻豆| 色偷偷超碰亚洲| 久超碰在| 乳欲人妻办公室奶水| 精品一区二区三区18| 亚洲色图20p| 懂色AV蜜臀无码精品APP| 天天射日日干| 午夜后入| 激情文学网伊人| 精品人妻中文字幕4399| 中韩中文字幕在线观看| 男人的天堂.com| 久久亚洲精品成人av| 水多多映视AV| 尹人免费观看视频在线| 豆1无夜无码| 色999人与兽| 国产精品无码AV网站| 视频国产欧美在线播放| 超碰久久综合| 精品人妻一区二区三区-国产精品 一个人在线看的黄色电影网站 | silk lablo在线观看一区二区| 色色99| 操逼国产免费| 欧美激情久操网| aV中文麻| 国产久久久久影院老熟女| 久久婷婷色综合一区二区三区| 国产熟女乱论| 国产精品亚洲色婷婷久久久| 九九九999久久久网站| 精品久久九| 青青草原综合久久大伊人精品| 这里都是精品在线观看| 中文字幕一区二区三区字幕| 91黄站| AV久日| 亚洲欧美setu| 人妻在线中出视频| 亚洲nv男人的天堂网| 熟妇操花| 加勒比在线视频一区二区三区 | 东北老女人的激情视频| 精品国产乱码久久久久A| 在线视频日韩欧美国产| 欧美日本中字另类在线| AⅤ片水多多| 亚洲丝袜诱惑| 激情在线青青操| 天天影视综合色| 欧美日韩人妻少妇 一区二区三区| 大香蕉欧美伊| 久九九九九九九热| 中文伊人大香蕉视频| 亚洲激情网一二三四区| 色婷婷电影网| 久色网| 开心五月激情网| 激情五月天丁香社区| 女人喷水视频在线观看| 夜夜无码| 密乳视频在线| JuliaAnn丝袜熟女系列| 9.1小视频| 乱操9999| 五十路成人在线视频二区三区| 是还免费视频1727我| av一区二区三区四区五区久草臀| 色爱综合网欧美| 岛国人妻少妇av在线观看| av情色影音| 99re在线观看| 1204av韩国| 韩国国产欧美情侣视频在线| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 欧美日韩资源| 91色花堂| 国产高清成人免费视频| 天天草天天日| 看免费一级在线播放毛片| 十八禁视频一区二区| 日本黄色大片一级视频免费麻豆| 先锋影音av先锋一区|