一種Portal認證方法及裝置與流程
2023-09-21 05:09:15
本發明涉及通信技術領域,尤其涉及一種Portal認證方法及裝置。
背景技術:
門戶(Portal)認證通常也稱為Web認證,一般將Portal認證網站稱為門戶網站。當用戶需要使用網際網路中的受限資源時,需要登錄到特定站點進輸入用戶名、密碼等認證憑據進行接入認證,在認證通過後才可以使用網際網路資源。
SDN(Software Defined Network,軟體定義網絡)的核心思想是將網絡設備的控制層面與轉發層面分離,以實現通過SDN控制器對網絡流量的靈活控制。隨著SDN中支持OpenFlow協議的交換機大規模的應用,逐漸代替了傳統網絡架構,因此如何將傳統網絡中的Portal認證與SDN相結合成為亟待解決的問題。
技術實現要素:
有鑑於此,本發明提供一種Portal認證方法及裝置來解決現有技術在SDN中無法實現portal認證的問題。
具體地,本發明是通過如下技術方案實現的:
本發明提供一種Portal認證方法,所述方法應用於SDN中的portal控制器,所述方法包括:
接收openflow交換機上送的與第一重定向流表相匹配的數據流,所述第一重定向流表是由openflow控制器根據portal控制器下發的重定向策略生成後下發給openflow交換機的,用於指導openflow交換機將入接口為用戶接入的接口且報文類型為預設類型的數據流上送到portal控制器;
發起對所述數據流的源端進行認證,在認證通過時,記錄所述源端的認證信息,並下發轉發策略給openflow控制器,以使openflow控制器根據所述轉發策略生成第二重定向流表並下發至openflow交換機,用於指導openflow交換機將源IP位址為所述源端的IP位址的數據流上送到openflow控制器,所述第二重定向流表的優先級大於所述第一重定向流表的優先級;
接收openflow控制器發送的認證查詢請求,所述認證查詢請求是openflow控制器在接收到所述openflow交換機上送的與所述第二重定向流表相匹配的數據流後發送的;
當本地存在所述源端的認證信息時,發送認證通過通知給openflow控制器,以由openflow控制器生成從所述源端至與所述第二重定向流表相匹配的數據流的目的端的轉發流表並發送到openflow交換機,指導openflow交換機根據所述轉發流表對匹配的數據流進行轉發。
進一步的,發起對所述數據流的源端進行認證包括:
判斷所述數據流是否訪問本地的HTTP頁面,如果否,將本地的認證頁面發送給源端;
獲取源端在認證頁面輸入的認證信息;
發起對所述認證信息的認證。
進一步的,當本地不存在所述源端的認證信息時,所述方法還包括:
發送認證未通過通知給openflow控制器,以由openflow控制器通知openflow交換機刪除所述第二重定向流表。
本發明還提供另一種Portal認證方法,所述方法應用於SDN中的openflow控制器,所述SDN中還包括portal控制器,所述方法包括:
接收portal控制器下發的重定向策略,根據所述重定向策略生成第一重定向流表並下發至openflow交換機,所述第一重定向流表用於指導openflow交換機將入接口為用戶接入的接口且報文類型為預設類型的數據流上送到portal控制器;
接收portal控制器下發的轉發策略,根據所述轉發策略生成第二重定向流表並下發至openflow交換機,所述轉發策略為portal控制器在發起對所述數據流的源端進行認證,並在認證通過時記錄所述源端的認證信息後發送的,所述第二重定向流表用於指導openflow交換機將源IP位址為所述源端的IP位址的數據流上送到openflow控制器,所述第二重定向流表的優先級大於所述第一重定向流表的優先級;
接收openflow交換機上送的與所述第二重定向流表相匹配的數據流,向portal控制器發送認證查詢請求;
接收portal控制器在本地存在所述源端的認證信息時發送的認證通過通知,生成從所述源端至與所述第二重定向流表相匹配的數據流的目的端的轉發流表並發送到openflow交換機,指導openflow交換機根據所述轉發流表對匹配的數據流進行轉發。
進一步的,所述方法還包括:
接收portal控制器在本地不存在所述源端的認證信息時發送的認證未通過通知;
通知openflow交換機刪除所述第二重定向流表。
基於相同的構思,本發明還提供一種Portal認證裝置,所述裝置應用於SDN中的portal控制器,所述裝置包括:
第一接收單元,用於接收openflow交換機上送的與第一重定向流表相匹配的數據流,所述第一重定向流表是由openflow控制器根據portal控制器下發的重定向策略生成後下發給openflow交換機的,用於指導openflow交換機將入接口為用戶接入的接口且報文類型為預設類型的數據流上送到portal控制器;
下發單元,用於發起對所述數據流的源端進行認證,在認證通過時,記錄所述源端的認證信息,並下發轉發策略給openflow控制器,以使openflow控制器根據所述轉發策略生成第二重定向流表並下發至openflow交換機,用於指導openflow交換機將源IP位址為所述源端的IP位址的數據流上送到openflow控制器,所述第二重定向流表的優先級大於所述第一重定向流表的優先級;
第二接收單元,用於接收openflow控制器發送的認證查詢請求,所述認證查詢請求是openflow控制器在接收到所述openflow交換機上送的與所述第二重定向流表相匹配的數據流後發送的;
通知發送單元,用於當本地存在所述源端的認證信息時,發送認證通過通知給openflow控制器,以由openflow控制器生成從所述源端至與所述第二重定向流表相匹配的數據流的目的端的轉發流表並發送到openflow交換機,指導openflow交換機根據所述轉發流表對匹配的數據流進行轉發。
進一步的,所述下發單元,具體用於:
判斷所述數據流是否訪問本地的HTTP頁面,如果否,將本地的認證頁面發送給源端;獲取源端在認證頁面輸入的認證信息;發起對所述認證信息的認證。
進一步的,所述通知發送單元,還用於當本地不存在所述源端的認證信息時,發送認證未通過通知給openflow控制器,以由openflow控制器通知openflow交換機刪除所述第二重定向流表。
本發明還提供另一種Portal認證裝置,所述裝置應用於SDN中的openflow控制器,所述SDN中還包括portal控制器,所述裝置包括:
第一接收單元,用於接收portal控制器下發的重定向策略,根據所述重定向策略生成第一重定向流表並下發至openflow交換機,所述第一重定向流表用於指導openflow交換機將入接口為用戶接口且報文類型為預設類型的數據流上送到portal控制器;
第二接收單元,用於接收portal控制器下發的轉發策略,根據所述轉發策略生成第二重定向流表並下發至openflow交換機,所述轉發策略為portal控制器在發起對所述數據流的源端進行認證,並在認證通過時記錄所述源端的認證信息後發送的,所述第二重定向流表用於指導openflow交換機將源IP位址為所述源端的IP位址的數據流上送到openflow控制器,所述第二重定向流表的優先級大於所述第一重定向流表的優先級;
認證查詢單元,用於接收openflow交換機上送的與所述第二重定向流表相匹配的數據流,向portal控制器發送認證查詢請求;
通知接收單元,用於接收portal控制器在本地存在所述源端的認證信息時發送的認證通過通知,生成從所述源端至所述數據流的目的端的轉發流表並發送到openflow交換機,指導openflow交換機根據所述轉發流表對匹配的數據流進行轉發。
進一步的,所述通知接收單元,還用於接收portal控制器在本地不存在所述源端的認證信息時發送的認證未通過通知,並通知openflow交換機刪除所述第二重定向流表。
由此可見,本發明可以通過在SDN中部署portal控制器,通過portal控制器下發重定向策略至SDN中的openflow控制器,使openflow控制器控制openflow交換機上傳匹配的數據流給portal控制器,並在接收openflow交換機上送的數據流後,發起對所述數據流的源端進行認證,在認證通過時,記錄所述源端的認證信息,並下發轉發策略給openflow控制器,使openflow控制器控制openflow交換機上傳匹配的數據流給openflow控制器;然後接收openflow控制器發送的認證查詢請求,並當本地存在所述源端的認證信息時,發送認證通過通知給openflow控制器以由openflow控制器生成從所述源端至所述數據流的目的端的轉發表項。因此,本發明可以在SDN中單獨部署用於實現portal認證的portal控制器,並協同openflow控制器完成portal認證的接入,從而實現SDN中的portal認證。
附圖說明
圖1是本發明一種示例性實施方式中的一種Portal認證方法的處理流程圖;
圖2是本發明一種示例性實施方式中的另一種Portal認證方法的處理流程圖;
圖3本發明一種示例性實施方式中的Portal認證交互流程圖;
圖4a本發明一種示例性實施方式中的Portal認證裝置所在portal控制器的硬體結構圖;
圖4b本發明一種示例性實施方式中的一種Portal認證裝置的邏輯結構圖;
圖5a本發明一種示例性實施方式中的Portal認證裝置所在openflow控制器的硬體結構圖;
圖5b本發明一種示例性實施方式中的另一種Portal認證裝置的邏輯結構圖。
具體實施方式
為了解決現有技術存在的問題,本發明提供一種Portal認證方法及裝置,可以通過在SDN中部署portal控制器,通過portal控制器下發重定向策略至SDN中的openflow控制器,使openflow控制器控制openflow交換機上傳匹配的數據流給portal控制器,並在接收openflow交換機上送的數據流後,發起對所述數據流的源端進行認證,在認證通過時,記錄所述源端的認證信息,並下發轉發策略給openflow控制器,使openflow控制器控制openflow交換機上傳匹配的數據流給openflow控制器;然後接收openflow控制器發送的認證查詢請求,並當本地存在所述源端的認證信息時,發送認證通過通知給openflow控制器以由openflow控制器生成從所述源端至所述數據流的目的端的轉發表項。因此,本發明可以在SDN中單獨部署用於實現portal認證的portal控制器,並協同openflow控制器完成portal認證的接入,從而實現SDN中的portal認證。
請參考圖1,是本發明一種示例性實施方式中的一種Portal認證方法的處理流程圖,所述方法應用於SDN中的portal控制器,所述方法包括:
步驟101、接收openflow交換機上送的與第一重定向流表相匹配的數據流,所述第一重定向流表是由openflow控制器根據portal控制器下發的重定向策略生成後下發給openflow交換機的,用於指導openflow交換機將入接口為用戶接入的接口且報文類型為預設類型的數據流上送到portal控制器。
在本實施例中,portal控制器會向所述openflow控制器下發重定向策略,其中包括匹配項和動作項,匹配項包括openflow交換機上用於用戶接入的入接口和報文類型(即,預設類型,例如,IPv4或IPv6),動作項包括改寫出接口為openflow交換機上與portal控制器相連的接口,以及改寫目的IP為portal控制器的IP位址。
openflow控制器可以根據該重定向策略生成第一重定向流表下發至openflow交換機,用於指導openflow交換機在確定數據流的入接口和報文類型與該匹配項匹配時,按照動作項將數據流的出接口改寫為openflow交換機上與portal控制器相連的接口,將數據流的目的IP位址改寫為portal控制器的IP位址,之後將數據流轉發至portal控制器。
步驟102、發起對所述數據流的源端進行認證,在認證通過時,記錄所述源端的認證信息,並下發轉發策略給openflow控制器,以使openflow控制器根據所述轉發策略生成第二重定向流表並下發至openflow交換機,用於指導openflow交換機將源IP位址為所述源端的IP位址的數據流上送到openflow控制器,所述第二重定向流表的優先級大於所述第一重定向流表的優先級。
在收到openflow交換機上送的與所述第一重定向流表相匹配的數據流後,portal控制器會發起對所述數據流的源端進行認證,即,先判斷所述數據流是否訪問本地的HTTP頁面,如果是,則按照本地已有的認證策略進行處理,例如放行或禁止;如果否,再將本地的認證頁面發送給源端;然後獲取源端在認證頁面輸入的認證信息,並發起對所述認證信息的認證,即,將認證信息發送給認證伺服器進行認證。在這裡,portal控制器與認證伺服器之間的交互流程與傳統portal認證過程中portal伺服器與認證伺服器之間的交互流程相同,在此不再詳述。
在認證通過時,portal控制器會記錄所述源端的認證信息,並下發轉發策略給openflow控制器,以使openflow控制器根據所述轉發策略生成第二重定向流表下發至openflow交換機,所述第二重定向流表的優先級大於所述第一重定向流表的優先級。具體來說,所述第二重定向流表中可以包括該源端的IP位址,也就是該數據流的源IP位址,以使openflow交換機收到數據流後,若該數據流的源IP位址匹配該第二重定向流表中的IP位址時,可以確定該數據流來自所述源端,因此可以將該數據流轉發至openflow控制器。
在認證未通過時,不做任何處理。
步驟103、接收openflow控制器發送的認證查詢請求,所述認證查詢請求是openflow控制器在接收到所述openflow交換機上送的與所述第二重定向流表相匹配的數據流後發送的。
在本實施例中,當所述openflow交換機收到與所述第二重定向流表相匹配的數據流時,可以將所述數據流上送至所述openflow控制器;當openflow控制器收到openflow交換機發送的所述數據流後,會獲取該數據流攜帶的認證信息,例如源IP位址和源MAC地址,從而向portal控制器發送認證查詢請求,用於查詢所述數據流的源端是否通過認證。
步驟104、當本地存在所述源端的認證信息時,發送認證通過通知給openflow控制器,以由openflow控制器生成從所述源端至與所述第二重定向流表相匹配的數據流的目的端的轉發流表並發送到openflow交換機,指導openflow交換機根據所述轉發流表對匹配的數據流進行轉發。
portal控制器獲取該認證查詢請求後,查詢本地已記錄的認證信息,確定所述數據流攜帶的認證信息(即,所述數據流的源端的認證信息)是否存在於本地已記錄的認證信息中。當本地存在述數據流攜帶的認證信息時,portal控制器發送認證通過通知至openflow控制器,以使openflow控制器生成從所述源端至所述數據流的目的端的轉發流表並發送到openflow交換機,來指導openflow交換機根據所述轉發流表對匹配的數據流進行轉發。在這裡,openflow交換機針對首次收到與第二重定向流表相匹配的數據流,會進行複製,一份上送給openflow控制器,一份本地保存,待收到openflow控制器下發的轉發流表時,依據轉發流表進行轉發。
至此,圖1所示的Portal認證流程結束。
此外,當本地不存在所述源端的認證信息時,通常可以認為該源端未通過認證,但是在特殊情況下,例如portal控制器上的源端認證信息被管理員強制刪除或意外丟失時,portal控制器也查不到源端的認證信息,為了保證用戶可以正常訪問外網,portal控制器可以發送認證未通過通知給openflow控制器,由openflow控制器通知openflow交換機刪除所述第二重定向流表,以使openflow交換機無法根據該第二重定向流表上傳數據流給openflow控制器,但openflow交換機仍可以根據第一重定向流表上送數據流,對源端重新進行portal認證。
請參考圖2,是本發明一種示例性實施方式中的一種Portal認證方法的處理流程圖,所述方法應用於SDN中的openflow控制器,所述SDN中還包括portal控制器,所述方法包括:
步驟201、接收portal控制器下發的重定向策略,根據所述重定向策略生成第一重定向流表並下發至openflow交換機,所述第一重定向流表用於指導openflow交換機將入接口為用戶接入的接口且報文類型為預設類型的數據流上送到portal控制器。
步驟202、接收portal控制器下發的轉發策略,根據所述轉發策略生成第二重定向流表並下發至openflow交換機,所述轉發策略為portal控制器在發起對所述數據流的源端進行認證,並在認證通過時記錄所述源端的認證信息後發送的,所述第二重定向流表用於指導openflow交換機將源IP位址為所述源端的IP位址的數據流上送到openflow控制器,所述第二重定向流表的優先級大於所述第一重定向流表的優先級。
步驟203、接收openflow交換機上送的與所述第二重定向流表相匹配的數據流,向portal控制器發送認證查詢請求。
步驟204、接收portal控制器在本地存在所述源端的認證信息時發送的認證通過通知,生成從所述源端至與所述第二重定向流表相匹配的數據流的目的端的轉發流表並發送到openflow交換機,指導openflow交換機根據所述轉發流表對匹配的數據流進行轉發。
本實施例中,當portal控制器在本地未查到所述源端的認證信息,可以向所述openflow控制器發送認證未通過通知,openflow控制器接收該通知時,可以通知openflow交換機刪除所述第二重定向流表,從而使源端重新進行portal認證。
為使本發明的目的、技術方案及優點更加清楚明白,下面結合圖3的Portal認證交互流程對本發明的具體實施方案作進一步地詳細說明。
步驟301、portal控制器下發重定向策略到openflow控制器。
在本實施例中,portal控制器與openflow控制器之間可以使用TCP(Transmission Control Protocol,傳輸控制協議)、UDP(User Datagram Protocol,用戶數據報協議)等進行通信。
步驟302、openflow控制器生成第一重定向流表,下發到openflow交換機。
openflow控制器會根據重定向策略生成第一重定向流表,具體如下:
匹配項:入接口為openflow交換機上用於用戶接入的接口;報文類型為IPv4或IPv6;
動作項:改寫出接口為openflow交換機上與portal控制器相連的接口;改寫目的IP為portal控制器的IP位址。
步驟303、openflow交換機收到用戶的第一數據流時,判斷該第一數據流是否與第一重定向流表匹配,若匹配,則將第一數據流轉發到portal控制器。
步驟304、portal控制器判斷第一數據流是否訪問本地的HTTP頁面,在判斷為否時,重定向到本地的認證頁面。
步驟305、portal控制器將用戶在認證頁面上輸入的認證信息與認證伺服器進行認證。
步驟306、在用戶通過認證時,則記錄用戶的認證信息(即,第一數據流的源端的認證信息)。
所述認證信息可以包括源端的IP位址和MAC地址。
步驟307、portal控制器向openflow控制器下發轉發策略,該轉發策略中包括源端的IP位址。
步驟308、openflow控制器依據轉發策略生成第二重定向流表,並下發到openflow交換機,指導openflow交換機將源IP位址為所述源端的IP位址的數據流上送到openflow控制器,該第二重定向流表的優先級高於第一重定向流表。
步驟309、openflow交換機收到用戶的第二數據流時,判斷該第二數據流是否與第二重定向流表匹配,若匹配,則將第二數據流轉發到openflow控制器。
步驟310、openflow控制器將該第二數據流攜帶的認證信息上送到portal控制器。
步驟311、portal控制器查詢該第二數據流攜帶的認證信息是否在本地已記錄的認證信息中,若是,則轉步驟312;若否,則轉步驟313。
步驟312、portal控制器向openflow控制器發送所述源端已通過認證的通知,使openflow控制器生成正常的轉發流表並下發到openflow交換機,以使後續用戶的數據流在openflow交換機中匹配到所述正常的轉發流表後,可以被openflow交換機正常轉發。
步驟313、portal控制器向openflow控制器發送所述源端未通過認證的通知,使openflow控制器通知openflow交換機刪除第二重定向流表。
基於相同的構思,本發明還提供一種Portal認證裝置,該裝置可以通過軟體實現,也可以通過硬體或者軟硬體結合的方式實現。以軟體實現為例,本發明的數據流控制裝置作為一個邏輯意義上的裝置,是通過其所在裝置的CPU將存儲器中對應的電腦程式指令讀取後運行而成。
請參考圖4a是本發明一種示例性實施方式中的Portal認證裝置所在portal控制器的硬體結構圖;所述裝置應用於所述裝置應用於SDN中的portal控制器,該裝置基本運行環境包括CPU,存儲器以及其他硬體。從邏輯層面上來看,該軟體安裝裝置400的邏輯結構如圖4b所示,其中該裝置400包括:
第一接收單元401,用於接收openflow交換機上送的與第一重定向流表相匹配的數據流,所述第一重定向流表是由openflow控制器根據portal控制器下發的重定向策略生成後下發給openflow交換機的,用於指導openflow交換機將入接口為用戶接入的接口且報文類型為預設類型的數據流上送到portal控制器;
下發單元402,用於發起對所述數據流的源端進行認證,在認證通過時,記錄所述源端的認證信息,並下發轉發策略給openflow控制器,以使openflow控制器根據所述轉發策略生成第二重定向流表並下發至openflow交換機,用於指導openflow交換機將源IP位址為所述源端的IP位址的數據流上送到openflow控制器,所述第二重定向流表的優先級大於所述第一重定向流表的優先級;
第二接收單元403,用於接收openflow控制器發送的認證查詢請求,所述認證查詢請求是openflow控制器在接收到所述openflow交換機上送的與所述第二重定向流表相匹配的數據流後發送的;
通知發送單元404,用於當本地存在所述源端的認證信息時,發送認證通過通知給openflow控制器,以由openflow控制器生成從所述源端至與所述第二重定向流表相匹配的數據流的目的端的轉發流表並發送到openflow交換機,指導openflow交換機根據所述轉發流表對匹配的數據流進行轉發。
可選的,所述下發單元402,具體用於:
判斷所述數據流是否訪問本地的HTTP頁面,如果否,將本地的認證頁面發送給源端;獲取源端在認證頁面輸入的認證信息;發起對所述認證信息的認證。
可選的,所述通知發送單元404,還用於當本地不存在所述源端的認證信息時,發送認證未通過通知給openflow控制器,以由openflow控制器通知openflow交換機刪除所述第二重定向流表。
請參考圖5a是本發明一種示例性實施方式中的Portal認證裝置所在伺服器設備的硬體結構圖;所述裝置應用於SDN中的openflow控制器,所述SDN中還包括portal控制器。該裝置基本運行環境包括CPU,存儲器以及其他硬體。從邏輯層面上來看,該軟體安裝裝置500的邏輯結構如圖5b所示,其中該裝置500包括:
第一接收單元501,用於接收portal控制器下發的重定向策略,根據所述重定向策略生成第一重定向流表並下發至openflow交換機,所述第一重定向流表用於指導openflow交換機將入接口為用戶接口且報文類型為預設類型的數據流上送到portal控制器;
第二接收單元502,用於接收portal控制器下發的轉發策略,根據所述轉發策略生成第二重定向流表並下發至openflow交換機,所述轉發策略為portal控制器在發起對所述數據流的源端進行認證,並在認證通過時記錄所述源端的認證信息後發送的,所述第二重定向流表用於指導openflow交換機將源IP位址為所述源端的IP位址的數據流上送到openflow控制器,所述第二重定向流表的優先級大於所述第一重定向流表的優先級;
認證查詢單元503,用於接收openflow交換機上送的與所述第二重定向流表相匹配的數據流,向portal控制器發送認證查詢請求;
通知接收單元504,用於接收portal控制器在本地存在所述源端的認證信息時發送的認證通過通知,生成從所述源端至所述數據流的目的端的轉發流表並發送到openflow交換機,指導openflow交換機根據所述轉發流表對匹配的數據流進行轉發。
可選的,所述通知接收單元504,還用於接收portal控制器在本地不存在所述源端的認證信息時發送的認證未通過通知,並通知openflow交換機刪除所述第二重定向流表。
由此可見,本發明可以通過在SDN中部署portal控制器,通過portal控制器下發重定向策略至SDN中的openflow控制器,使openflow控制器控制openflow交換機上傳匹配的數據流給portal控制器,並在接收openflow交換機上送的數據流後,發起對所述數據流的源端進行認證,在認證通過時,記錄所述源端的認證信息,並下發轉發策略給openflow控制器,使openflow控制器控制openflow交換機上傳匹配的數據流給openflow控制器;然後接收openflow控制器發送的認證查詢請求,並當本地存在所述源端的認證信息時,發送認證通過通知給openflow控制器以由openflow控制器生成從所述源端至所述數據流的目的端的轉發表項。因此,本發明可以將SDN中單獨部署用於實現portal認證的portal控制器,並協同openflow控制器完成portal認證的接入,從而實現SDN中的portal認證。
上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對於裝置實施例而言,由於其基本對應於方法實施例,所以相關之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本申請方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。