專利名稱:一種基于ws協(xié)議的信息卡認證方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡信息安全中的信息認證技術(shù),特別是涉及一種基于Web服務(WS)協(xié)議的信息卡認證方法及系統(tǒng)。
背景技術(shù):
因特網(wǎng)(Internet)對于用戶和業(yè)務而言,其價值仍在持續(xù)增長。越來越多的人在日常生活中需要使用網(wǎng)絡,從購物、辦理銀行業(yè)務、支付賬單到多媒體和娛樂消費。然而,隨著網(wǎng)上操作的增值,Internet自身已經(jīng)變得更為復雜、更容易受到攻擊并且更加危險。人們對在線身份的盜取、欺詐和隱私的關(guān)注程度不斷提高,因此,便引入了許多數(shù)字標識系統(tǒng),但是,目前沒有系統(tǒng)能夠滿足不同數(shù)字標識方案的需要,所以目前人們 還是分別使用著許多不同的標識系統(tǒng),且在不斷開發(fā)更多的系統(tǒng)。結(jié)果,當前Internet上數(shù)字標識的狀態(tài)是不協(xié)調(diào)的大雜燴,成為了每個Web站點上具有不同用戶體驗的用戶的負擔;并且,由于提供的數(shù)字標識系統(tǒng)非常脆弱,也限制了電子商務更完整的實現(xiàn)。為了解決上述問題,業(yè)界引入了標識元系統(tǒng),所謂標識元系統(tǒng)是基于數(shù)字身份的互操作架構(gòu),在標識元系統(tǒng)下建立的信息卡模型,允許用戶擁有并管理基于不同技術(shù)、不同實現(xiàn)方法和不同提供商的一系列的數(shù)字身份,使用該模型,用戶可以繼續(xù)使用現(xiàn)有的身份管理基礎(chǔ)設(shè)施,并選擇最適合他們的身份技術(shù)。但是,標識元系統(tǒng)發(fā)展還不夠成熟,在實際應用中局限性還很大,比如由于現(xiàn)有的信息卡模型建立系統(tǒng)中,針對一個用戶只有身份選擇器(IdentitySelector) —臺設(shè)備來保存信息卡,所以信息卡下載到該設(shè)備上之后,用戶只能從這臺固定的設(shè)備上登錄,對實際使用造成非常大的不便;另外,由于普通用戶可以對信息卡進行創(chuàng)建,沒有權(quán)限的限制,任何用戶都能輕易接觸到信息卡,這使信息卡的安全性和保密性受到很大影響。此外,標識元系統(tǒng)下建立的信息卡模型目前對WS的簡單對象訪問協(xié)議(SOAP)消息加密,主要是使用安全套接層(SSL)的HTTPS方法,而此方法存在很多問題,包括=HTTPS提供的是點對點安全保護;HTTPS是在傳輸層提供安全保障的,而不是在消息層面,導致不可能達到消息安全所需要的靈活性的要求;HTTPS分配好共享密鑰后,傳遞消息的時候并沒有使用數(shù)字簽名技術(shù),而這一項功能恰恰是在電子商務中不可或缺的。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的在于提供一種基于WS協(xié)議的信息卡認證方法及系統(tǒng),能解決信息建立及傳輸過程中出現(xiàn)的機密性、完整性、身份鑒別的問題。為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的本發(fā)明提供了一種基于WS協(xié)議的信息卡認證方法,該方法包括用戶登錄依賴方(Relying Party), Relying Party向身份選擇器客戶端(Identity Selector Client)請求令牌并確定策略;用戶使用 Identity Selector Client通過身份選擇器服務器(Identity Selector Server)驗證身份后登錄IdentitySelectorClient ;Identity Selector Client 將信息卡提交給標識提供方(IdentityProvider)進行認證并接收令牌,將令牌返回給Relying Party。上述方案中,該方法還包括Identity Selector Client收到請求令牌的信息后,要求用戶輸入用戶名和密碼登錄Identity Selector Client,并將用戶名和密碼上傳到Identity Selector Server進行驗證,如果驗證不通過,則拒絕用戶繼續(xù)操作,如果驗證通過,則繼續(xù)操作。上述方案中,所述Identity Selector Client將信息卡提交給IdentityProvider為Identity Selector Client將信息卡中的相關(guān)信息編寫成SOAP信息,并對該SOAP信息進行XML簽名和XML加密,之后發(fā)送到Identity Provider。
上述方案中,所述將令牌返回給Relying Party后,該方法還包括RelyingParty對接收到的令牌進行XML簽名匹配,XML簽名匹配之后進行XML解密,解密成功后允許用戶進行訪問。上述方案中,所述用戶登錄Relying Party之前,該方法還包括用戶以管理員身份登錄Identity Provider,從Identity Provider所管理的所有用戶名中,選定要為其建立信息卡的用戶名;為所選的用戶名創(chuàng)建信息卡;用戶以管理員身份為所選用戶分發(fā)信息卡。本發(fā)明還提供了一種基于WS協(xié)議的信息卡認證系統(tǒng),該系統(tǒng)包括IdentityProvider> Identity Selector Client、 Identity Selector Server 及 RelyingParty ;其中,Identity Provider,用于對Identity Selector Client提交的信息卡進行認證,并向 Identity Selector Client 返回令牌;Identity Selector Client,用于接收 Relying Party 請求令牌的信息,與RelyingParty確定策略,向Identity Selector Server請求驗證登錄用戶身份并接收驗證結(jié)果,向Identity Provider提交信息卡進行認證并接收令牌,將令牌返回給RelyingParty ;Identity Selector Server,用于接收Identity Selector Client請求驗證登錄用戶身份的信息,并向Identity Selector Client返回驗證結(jié)果;Relying Party,用于向 Identity Selector Client 請求令牌,并與 IdentitySelectorClient 確定策略,接收 Identity Selector Client 返回的令牌。上述方案中,所述Identity Selector Client,還用于向用戶要求輸入用戶名和密碼,再將用戶名和密碼編寫成為驗證登錄用戶身份的請求發(fā)送到IdentitySelectorServer ;所述Identity Selector Server,還用于接收驗證登錄用戶身份的請求。上述方案中,所述Identity Selector Client,還用于將用戶選定的信息卡中的相關(guān)信息編寫成SOAP信息,并對SOAP信息進行XML簽名和XML加密后,發(fā)送給IdentityProvider ;所述IdentityProvider,還用于接收Identity Selector Client提交的經(jīng)過XML簽名和XML加密編寫成SOAP信息的信息卡進行解析并做認證。上述方案中,所述Relying Party,還用于對接收到的令牌進行XML簽名匹配,簽名匹配之后進行XML解密,解密成功后才能允許用戶進行訪問。上述方案中,所述Identity Provider,還用于與所接入的系統(tǒng)同步數(shù)據(jù)庫同步數(shù)據(jù)庫,并設(shè)置所得到的用戶名的初始密碼。上述方案中,所述Identity Provider,還用于創(chuàng)建信息卡,從IdentitySelectorServer中查詢所選用戶名的狀態(tài)是否在線并接收用戶狀態(tài)信息,當用戶狀態(tài)為在線時,從 Identity Selector Server 中查詢所選用戶名所在的 Identity SelectorClient的IP地址并接收IP地址,根據(jù)IP地址將信息卡傳送到Identity SelectorClient,當用戶名狀態(tài)為不在線時,將信息卡發(fā)到Identity Selector Server ;相應的,所述Identity Selector Server,還用于接收 Identity Provider 的所選用戶名所在的Identity Selector Client的是否在線的查詢,并向其返回用戶狀態(tài)信息,之后接收Identity Provider的所選用戶名所在的Identity Selector Client的I P地址的查詢并返回IP地址,當Identity Provider所選用戶不在線的時候,接收并保存Identity Provider發(fā)送的信息卡;所述IdentitySelector Client,還用于接收Identity Provider發(fā)送的信息卡,將信息卡上傳并保存在Identity Selector Server。上述方案中,所述Identity Provider包括頒發(fā)令牌模塊、同步用戶模塊、管理證書模塊、創(chuàng)建信息卡模塊和分發(fā)信息卡模塊;其中,頒發(fā)令牌模塊,接收Identity Selector Client提交的經(jīng)過XML簽名和XML加密編寫成SOAP信息的信息卡,對信息卡進行解析并認證,給Identity SelectorClient返回令牌;同步用戶模塊,用于向所要接入的系統(tǒng)獲取數(shù)據(jù)庫,用戶從同步數(shù)據(jù)庫中選擇所選的要建立信息卡的用戶名,將所選用戶名的用戶信息發(fā)送給創(chuàng)建信息卡模塊;管理證書模塊,用于存儲X509證書,且接收創(chuàng)建信息卡模塊的建立證書指令,建立X509證書,向創(chuàng)建信息卡模塊提供X509證書;創(chuàng)建信息卡模塊,用于接收同步用戶模塊發(fā)來的用戶信息,為該用戶名創(chuàng)建信息卡,如果要創(chuàng)建的是X509證書類型的信息卡,則先查看管理證書模塊中,所選用戶名是否有X509證書,如果存在,則直接從管理證書模塊讀取X509證書,為所選用戶名建立信息卡,如果不存在,則向管理證書模塊發(fā)出建立證書的指令,讀取X509證書之后使用該X509證書為所選用戶名建立信息卡;如果要創(chuàng)建用戶名/密碼類型的信息卡,則為所選用戶名在創(chuàng)建信息卡模塊直接創(chuàng)建用戶名/密碼類型的信息卡,最后將信息卡發(fā)送給分發(fā)信息卡模塊;分發(fā)信息卡模塊,用于接收并保存創(chuàng)建信息卡模塊發(fā)送的信息卡,接收用戶為所選用戶名分發(fā)信息卡的指令,從Identity Selector Server獲取做所選用戶名的狀態(tài)信息,之后從 Identity Selector Server 查詢所選用戶名所在的 IdentitySelector Client的IP地址,根據(jù)IP地址將信息卡傳送到Identity Selector Client,當所選用戶名狀態(tài)為不在線時,將信息卡發(fā)到Identity Selector Server。上述方案中,所述Identity Selector Client包括注冊模塊,登錄模塊,上傳信息卡模塊、下載信息卡模塊、認證信息卡模塊和驗證信息卡模塊;其中,注冊模塊,用于接收登錄模塊的通知,向Identity Selector Server發(fā)送注冊信息;登錄模塊,用于接收Relying Party的請求令牌信息,要求用戶輸入用戶名和密碼登錄,將用戶名和密碼上傳到Identity Selector Server進行用戶身份驗證,還用于記錄用戶名的狀態(tài)是否在線,并將狀態(tài)通知給注冊模塊;上傳信息卡模塊,用于根據(jù)用戶的指令從下載信息卡模塊中選取信息卡并上傳到Identity Selector Server ;下載信息卡模塊,用于接收并存儲Identity Provider發(fā)送的信息卡,從IdentitySelector Server下載用戶選中的信息卡,還用于接收Identity SelectorServer的用戶身份驗證結(jié)果,用戶選擇信息卡后將信息卡發(fā)送給驗證信息卡模塊,還用于將上傳信息卡模塊選取的信息卡發(fā)送給上傳信息卡模塊;驗證信息卡模塊,用于接收下載信息卡模塊發(fā)送的信息卡,接收用戶輸入的信息 卡密碼進行驗證,并將驗證通過的信息卡提交給認證信息卡模塊,還用于接收用戶修改信息卡密碼的指令,將用戶的舊密碼發(fā)送到Identity Provider做驗證,接收驗證通過的通知后,將用戶的新密碼發(fā)送給Identity Provider,若接收驗證失敗的通知,則用戶無法修改密碼;認證信息卡模塊,用于將驗證信息卡模塊提交的信息卡中的相關(guān)信息編寫成SOAP信息,并進行XML簽名和XML加密并發(fā)送給Identity Provider,接收Identity Provider返回的令牌,最后將令牌發(fā)送給Relying Party。上述方案中,所述Identity Selector Server進一步包括注冊用戶模塊、驗證用戶模塊、接收信息卡模塊、發(fā)放信息卡模塊;其中,注冊用戶模塊,用于接收Identity Selector Client的注冊信息,記錄用戶的狀態(tài),產(chǎn)生用戶信息,給驗證用戶模塊提供狀態(tài)信息和用戶信息;驗證用戶模塊,用于接收Identity Provider的用戶的狀態(tài)查詢,從注冊用戶模塊獲取用戶名的狀態(tài)信息后向Identity Provider返回所選用戶名的狀態(tài)信息,還用于接收Identity Provider的用戶名所使用的Identity Selector Client的IP地址的請求信息,從注冊模塊獲取用戶信息并從用戶信息中提取出IP地址,向Identity Provider返回用戶名所使用的Identity Selector Client的IP地址,還用于接收Identity SelectorClient的用戶名和密碼對其進行驗證并向Identity SelectorClient返回驗證結(jié)果;接收信息卡模塊,用于接收并保存Identity Provider發(fā)送的信息卡,還用于接收并保存Identity Selector Client上傳的信息卡,接收發(fā)放信息卡模塊的信息卡查詢指令,將用戶所選信息卡發(fā)送給發(fā)放信息卡模塊;發(fā)放信息卡模塊,用于根據(jù)Identity Selector Client的下載請求,將信息卡發(fā)給 Identity Selector Client。上述方案中,所述Relying Party包括激活I(lǐng)dentity Selector Client模塊和驗證令牌模塊;其中,激活I(lǐng)dentity Selector Client模塊,用于接收用戶的訪問請求,向IdentitySelector Client 發(fā)送請求令牌的信息,并與 Identity Selector Client 確定策略,接收驗證令牌模塊的允許用戶訪問信息,接收用戶的訪問;驗證令牌模塊,用于接收Identity Selector Client發(fā)來的令牌,進行驗證,驗證通過之后,通知激活I(lǐng)dentity Selector Client模塊允許用戶訪問。由上述實現(xiàn)方案可以看出,本發(fā)明所提供的基于WS協(xié)議的信息卡認證方法及系統(tǒng),具有以下的優(yōu)點和特點I)本發(fā)明中Identity Provider和Relying Party之間使用XML簽名實現(xiàn)了雙向認證,Identity Selector Client 與 Identity Provider 之間的 SOAP 消息米用 XML 簽名和XML加密的加密方式,從而解決了信息傳輸過程中出現(xiàn)的機密性、完整性、身份鑒別的問題。2)本發(fā)明的信息卡創(chuàng)建和分發(fā)完全由管理員創(chuàng)建和分發(fā),普通用戶沒有權(quán)限對信息卡進行操作,從而保證了信息卡的安全性及保密性。3)本發(fā)明提供的 Identity Selector Client 和 Identity SelectorServer,使用戶可以根據(jù)實際需要將某些信息卡上傳到Identity Selector Server, 當IdentitySelector Client端沒有所需要的信息卡時,用戶可以選擇從IdentitySelectorServer上下載,從而解決了信息卡只能在特定設(shè)備上登錄的問題。
圖I為本發(fā)明基于WS協(xié)議的信息卡認證系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明基于WS協(xié)議的信息卡認證方法的流程示意圖。
具體實施例方式本發(fā)明的基本思想是用戶登錄Relying Party, Relying Party向IdentitySelector Client 請求令牌并確定策略;用戶使用 Identity Selector Client 通過身份選擇器服務器(Identity Selector Server)驗證身份后登錄Identity SelectorClient ;驗證通過,Identity Selector Client 將信息卡提交給 Identity Provider 進行認證并接收令牌,最后由Identity Selector Client將令牌返回給Relying Party。其中,所述確定策略是指Relying Party與Identity Selector Client確定信息交互時相互發(fā)送的信息格式,以及確定Identity Selector Client跟與其交互的設(shè)備之間所發(fā)送的信息內(nèi)包含的內(nèi)容以及信息的格式。下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。本發(fā)明提供了一種基于WS協(xié)議的信息卡認證系統(tǒng)如圖I所示,包括IdentityProvider 11、Identity Selector Client 12、Identity Selector Server 13 和 RelyingParty 14 ;其中,Identity Provider 11,用于對 Identity Selector Client 12 提交的信息卡進行認證,并向Identity Selector Client 12返回令牌;其中,所述令牌指由Identity Provider 11對信息卡進行驗證后,返回的認證安全信息,信息卡分為兩種類型用戶名/密碼式信息卡和X509證書式信息卡;所述對信息卡進行認證指,IdentityProvider 11 對 Identity Selector Client12提交的經(jīng)過XML簽名和XML加密編寫成SOAP信息的信息卡進行解析并做認證;Identity Selector Client 12,用于接收Relying Party 14請求令牌的信息,與Relying Party 14確定策略,向Identity Selector Server 13請求驗證登錄用戶身份并接收驗證結(jié)果,向Identity Provider 11提交信息卡進行認證并接收令牌,將令牌返回給Relying Party 14 ;其中,所述向Identity Selector Server 13請求驗證登錄用戶身份為IdentitySelector Client 12向用戶要求輸入用戶名和密碼,再將用戶名和密碼編寫成為驗證登錄用戶身份的請求,并發(fā)送到Identity Selector Server 13進行用戶的登錄身份驗證;如果Identity Selector Server 13返回的驗證結(jié)果為驗證通過,貝U用戶可以使用輸入的用戶名繼續(xù)進行信息卡的認證操作,如果Identity Selector Server 13返回的驗證結(jié)果為驗證失敗,則拒絕用戶使用輸入的用戶名繼續(xù)操作。所述向Identity Provider 11 發(fā)送信息卡為用戶在 Identity Selector Client12查看其輸入的用戶名下所擁有的信息卡,選定信息卡,再將信息卡中的相關(guān)信息編寫成SOAP信息,并對該SOAP信息進行XML簽名和XML加密后,發(fā)送到Identity Provider 11 ;這里,所述信息卡中的相關(guān)信息由與Relying Party 14確定策略所決定。 所述Identity Selector Client 12,自身的瀏覽器支持信息卡認證方式,所述瀏覽器為目前可使用的大部分瀏覽器,比如IE7. O以上版本、遨游瀏覽器等,暫時不支持的瀏覽器為FireFox瀏覽器;所述Identity Selector Client 12 與 Identity Provider 11 和 Relying Party14之間的所有交互信息,都采用XML簽名和XML加密;Identity Selector Server 13,用于接收Identity Selector Client 12請求驗證登錄用戶身份的信息,并向Identity Selector Client 12返回驗證結(jié)果。這里,所述Identity Selector Server 13,進一步用于對登錄用戶身份進行用戶名和密碼是否正確的驗證,如果用戶名和密碼為正確的則通知IdentitySelector Client12驗證通過,否則通知Identity Selector Client 12驗證失敗。Relying Party 14,用于向 Identity Selector Client 12 請求令牌,并與IdentitySelector Client 12確定策略,接收Identity Selector Client 12返回的令牌。所述接收Identity Selector Client 12返回的令牌,還包括對令牌進行驗證,具體為Relying Party 14對接收到的令牌進行XML簽名匹配,簽名匹配之后進行XML解密,解密成功后才能允許用戶進行訪問;所述XML解密為使用Relying Party 14內(nèi)部產(chǎn)生的公用密鑰進行XML解密。Relying Party 14,進一步用于接收用戶的訪問請求;這里,所述Relying Party 14是實際所訪問的系統(tǒng)的接口設(shè)備,使用本發(fā)明所提供的系統(tǒng)通過Relying Party 14可接入實際訪問的系統(tǒng)。Identity Provider 11,還用于與所接入的系統(tǒng)同步數(shù)據(jù)庫同步數(shù)據(jù)庫,并設(shè)置所得到的用戶名的初始密碼,例如將初始密碼設(shè)為111111 ;Identity Provider 11,還用于創(chuàng)建信息卡,從 Identity Selector Server 13 中查詢所選用戶名的狀態(tài)是否在線并接收用戶狀態(tài)信息,當用戶狀態(tài)為在線時,從IdentitySelector Server 13中查詢所選用戶名所在的Identity Selector Client 12的IP地址并接收IP地址,根據(jù)IP地址將信息卡傳送到Identity Selector Client 12,當用戶名狀態(tài)為不在線時,將信息卡發(fā)到Identity Selector Server 13 ;
相應的,所述Identity Selector Server 13,還用于接收 Identity Provider11的所選用戶名所在的Identity Selector Client 12的是否在線的查詢,并向其返回用戶狀態(tài)信息,之后接收Identity Provider 11的所選用戶名所在的IdentitySelectorClient 12的IP地址的查詢并返回IP地址,當Identity Provider 11所選用戶不在線的時候,接收并保存Identity Provider 11發(fā)送的信息卡;所述Identity Selector Client 12,還用于接收 Identity Provider 11 發(fā)送的信息卡,也可以選擇信息卡上傳并保存在Identity Selector Server。所述創(chuàng)建信息卡包括如果要創(chuàng)建用戶名/密碼類型的信息卡,則為所選用戶名在Identity Provider 11直接創(chuàng)建用戶名/密碼類型的信息卡;如果要創(chuàng)建的是X509證書類型的信息卡,則先查看Identity Provider 11中,所選用戶是否有X509證書,如果存在,則直接使用X509證書建立所選用戶信息卡,如果不存在,則在Identity Providerll為所選用戶名創(chuàng)建X509證書,之后使用該X509證書建立信息卡。 Identity Selector Client 12,還用于接收用戶的修改信息卡密碼的指令,將用戶的舊密碼發(fā)送到Identity Provider 11做驗證,接收驗證通過信息后,將用戶輸入的信息卡新密碼發(fā)送給Identity Provider 11,若接收的驗證結(jié)果為失敗,則用戶無法修改密碼;相應的,Identity Provider 11,還用于接收 Identity Selector Clientl2 發(fā)送的舊密碼做驗證后向Identity Selector Client 12返回驗證結(jié)果,保存Identity SelectorClient 12發(fā)送的新密碼。所述Identity Provider 11進一步包括頒發(fā)令牌模塊、同步用戶模塊、管理證書模塊、創(chuàng)建信息卡模塊和分發(fā)信息卡模塊;其中,頒發(fā)令牌模塊,接收Identity Selector Client 12提交的經(jīng)過XML簽名和XML加密編寫成SOAP信息的信息卡,對信息卡進行解析并認證,給IdentitySelector Client 12返回令牌;同步用戶模塊,用于向所要接入的系統(tǒng)獲取數(shù)據(jù)庫,用戶從同步數(shù)據(jù)庫中選擇所選的要建立信息卡的用戶名,將所選用戶名的用戶信息發(fā)送給創(chuàng)建信息卡模塊;管理證書模塊,用于存儲X509證書,且接收創(chuàng)建信息卡模塊的建立證書指令,建立X509證書,向創(chuàng)建信息卡模塊提供X509證書;創(chuàng)建信息卡模塊,用于接收同步用戶模塊發(fā)來的用戶信息,為該用戶名創(chuàng)建信息卡,如果要創(chuàng)建的是X509證書類型的信息卡,則先查看管理證書模塊中,所選用戶名是否有X509證書,如果存在,則直接從管理證書模塊讀取X509證書,為所選用戶名建立信息卡,如果不存在,則向管理證書模塊發(fā)出建立證書的指令,讀取X509證書之后使用該X509證書為所選用戶名建立信息卡;如果要創(chuàng)建用戶名/密碼類型的信息卡,則為所選用戶名在創(chuàng)建信息卡模塊直接創(chuàng)建用戶名/密碼類型的信息卡,最后將信息卡發(fā)送給分發(fā)信息卡模塊;分發(fā)信息卡模塊,用于接收并保存創(chuàng)建信息卡模塊發(fā)送的信息卡,接收用戶為所選用戶名分發(fā)信息卡的指令,從Identity Selector Server 13獲取所選用戶名的狀態(tài)信息,之后從Identity Selector Server 13查詢所選用戶名所在的IdentitySelectorClient 12的IP地址,根據(jù)IP地址將信息卡傳送到Identity Selector Clientl2,當所選用戶名狀態(tài)為不在線時,將信息卡發(fā)到Identity Selector Server 13。
所述Identity Selector Client 12進一步包括注冊模塊,登錄模塊,上傳信息卡模塊、下載信息卡模塊、認證信息卡模塊和驗證信息卡模塊;其中,注冊模塊,用于接收登錄模塊的通知,向Identity Selector Server 13發(fā)送注冊信息;這里,所述注冊信息指用戶所選定的用戶名稱下的密碼、部門等信息以及IP地址。登錄模塊,用于接收Relying Party 14的請求令牌信息,要求用戶輸入用戶名和密碼登錄,將用戶名和密碼上傳到Identity Selector Server 13進行用戶身份驗證,還用于記錄用戶名的狀態(tài)是否在線,并將狀態(tài)通知給注冊模塊;上傳信息卡模塊,用于根據(jù)用戶的指令從下載信息卡模塊中選取信息卡并上傳到Identity Selector Server 13 ; 下載信息卡模塊,用于接收并存儲Identity Provider 11發(fā)送的信息卡,從Identity Selector Server 13下載用戶選中的信息卡,還用于接收IdentitySelectorServer 13的用戶身份驗證結(jié)果,用戶選擇信息卡后將信息卡發(fā)送給驗證信息卡模塊,還用于將上傳信息卡模塊選取的信息卡發(fā)送給上傳信息卡模塊;驗證信息卡模塊,用于接收下載信息卡模塊發(fā)送的信息卡,接收用戶輸入的信息卡密碼進行驗證,并將驗證通過的信息卡提交給認證信息卡模塊,還用于接收用戶修改信息卡密碼的指令,將用戶的舊密碼發(fā)送到Identity Provider 11做驗證,接收驗證通過信息后,將用戶的新密碼發(fā)送給Identity Provider 11,若接收驗證失敗的信息,則用戶無法修改密碼;其中,所述用戶輸入的信息卡舊密碼是為了驗證用戶修改信息卡密碼的合法性。認證信息卡模塊,用于將驗證信息卡模塊提交的信息卡中的相關(guān)信息編寫成SOAP信息,并進行XML簽名和XML加密并發(fā)送給Identity Provider 11,接收IdentityProvider 11返回的令牌,最后將令牌發(fā)送給Relying Party 14。所述Identity Selector Server 13進一步包括注冊用戶模塊、驗證用戶模塊、接收信息卡模塊、發(fā)放信息卡模塊;其中,注冊用戶模塊,用于接收Identity Selector Client 12的注冊信息,記錄用戶的狀態(tài),產(chǎn)生用戶信息,給驗證用戶模塊提供狀態(tài)信息和用戶信息;其中,所述用戶信息指用戶所選定的用戶名稱下的密碼、部門等信息以及該用戶名所在的Identity Selector Client 12的IP地址;狀態(tài)信息指用戶是否在線。驗證用戶模塊,用于接收Identity Providerll的用戶的狀態(tài)查詢,從注冊用戶模塊獲取用戶名的狀態(tài)信息后向Identity Provider 11返回所選用戶名的狀態(tài)信息,還用于接收 Identity Provider 11 的用戶名所使用的 Identity Selector Clientl2 的 IP地址的請求信息,從注冊模塊獲取用戶信息并從用戶信息中提取出IP地址,向IdentityProvider 11返回用戶名所使用的Identity Selector Client 12的IP地址,還用于接收Identity Selector Client 12的用戶名和密碼對其進行驗證并向Identity SelectorClient 12返回驗證結(jié)果;接收信息卡模塊,用于接收并保存Identity Provider 11發(fā)送的信息卡,還用于接收并保存Identity Selector Client 12上傳的信息卡,接收發(fā)放信息卡模塊的信息卡查詢指令,將用戶所選信息卡發(fā)送給發(fā)放信息卡模塊;這里,所述接收并保存Identity Providerll發(fā)送的信息卡是指如果所要發(fā)放信息卡的Identity Selector Clientl2不在線,那么將信息卡發(fā)放給IdentitySelectorServer 13的接收信息卡模塊。發(fā)放信息卡模塊,用于根據(jù)Identity Selector Clientl2的下載請求,將信息卡發(fā)給 Identity Selector Client 12。所述Relying Party 14 進一步包括激活 Identity Selector Client 模塊和驗證令牌模塊;其中,激活I(lǐng)dentity Selector Client模塊,用于接收用戶的訪問請求,向 IdentitySelector Client 12 發(fā)送請求令牌的信息,并與 Identity Selector Client 12確定策略;驗證令牌模塊,用于接收Identity Selector Client 12發(fā)送的令牌,對令牌進行XML簽名匹配,簽名匹配之后進行XML解密,解密成功后才能允許用戶進行訪問;所述XML解密為使用Relying Party 14內(nèi)部產(chǎn)生的密鑰進行XML解密驗證通過之后,通知激活I(lǐng)dentity Selector Client模塊允許用戶訪問。如圖2所示,本發(fā)明基于WS協(xié)議的信息卡認證方法,包括以下步驟步驟201 :用戶登錄Relying Party訪問某類資源時,Relying Party向IdentitySelector Client發(fā)送請求令牌的信息,雙方確定策略。這里,所述令牌指由Identity Provider對用戶的信息卡進行驗證后,返回的認證安全信息,信息卡分為兩種類型用戶名/密碼式信息卡和X509證書式信息卡。步驟202 :Identity Selector Client收到請求令牌的信息后,向用戶要求輸入用戶名和密碼,Identity Selector Client將收到的用戶輸入的用戶名和密碼上傳到Identity Selector Server進行驗證,如果驗證不通過,則拒絕用戶使用輸入的用戶名繼續(xù)操作,如果驗證通過,則進入步驟203。步驟203 :用戶使用輸入的用戶名成功登錄Identity Selector Client,查看用戶名下所擁有的信息卡,選定信息卡。這里,一個用戶名下所擁有的信息卡可以有多個,且可以是不同類型的信息卡,所述不同類型的信息卡是指用戶名/密碼類型的信息卡和X509證書類型信息卡。所述選定信息卡還包括用戶在Identity Selector Client查看其輸入的用戶名下信息卡的信息,確定使用其中一個信息卡時,輸入信息卡密碼,比如所選信息卡的類型是X509,那么輸入信息卡密碼后,即可確定使用該信息卡,否則會要求用戶輸入信息卡密碼,實現(xiàn)用戶名/密碼的認證。其中,所述信息卡密碼可在Identity Selector Client上修改,修改過程具體包括當用戶向Identity Selector Client發(fā)出修改信息卡密碼的指令后,IdentitySelector Client 要求用戶輸入信息卡舊密碼;Identity Selector Client將用戶輸入的舊密碼后發(fā)送給Identity Provider進行驗證,如果驗證成功,則向IdentitySelector Client 返回驗證通過的通知,Identity Selector Client 要求用戶輸入新密碼,Identity Selector Client將用戶輸入的新密碼發(fā)送到Identity Provider保存;否則驗證失敗,則向Identity Selector Client返回驗證失敗的通知,用戶無法修改密碼。步驟204 :Identity Selector Client將信息卡中的相關(guān)信息編寫成SOAP信息,并對該SOAP信息進行XML簽名和XML加密后,發(fā)送到Identity Provider。這里,所述信息卡中的相關(guān)信息由步驟201中確定的策略所決定。步驟205 :Identity Provider對進行XML簽名和XML加密并編寫成SOAP信息的信息卡進行解析后做認證,認證通過后,向Identity Selector Client返回令牌。步驟206:Identity Selector Client接收令牌,并將令牌發(fā)送給Relying Party。本步驟具體包括IdentitySelector Client 從 Identity Provider 接收令牌和向Relying Party發(fā)送令牌,所有傳輸信息都經(jīng)過XML簽名和XML加密。步驟207 Relying Party接收令牌后,驗證令牌,驗證通過后允許用戶訪問資源。 這里,所述驗證令牌進一步包括Relying Party對接收到的令牌進行XML簽名匹配,簽名匹配之后進行XML解密,解密成功后才能允許用戶進行訪問;所述XML解密為使用Relying Party內(nèi)部產(chǎn)生的密鑰進行XML解密。上述處理過程中,在步驟201之前,該方法還包括以下步驟步驟a :用戶以管理員身份從Identity Provider所管理的所有用戶名中,選定要為其建立信息卡的用戶名。這里,所述管理員身份指用戶使用管理員的賬號和密碼登錄;所述所有用戶名是指同步數(shù)據(jù)庫后得到的所有用戶名;所述同步數(shù)據(jù)庫為從所連接的系統(tǒng)的數(shù)據(jù)庫中獲取所有用戶名,并設(shè)置所得到的用戶名的初始密碼,例如將初始密碼設(shè)為111111。所述管理的所有用戶名是Identity Provider在使用某一個管理員賬號登錄時,該管理員身份下所有的用戶名。步驟b :用戶以管理員身份為所選的用戶名Identity Provider創(chuàng)建信息卡。這里,所述創(chuàng)建信息卡包括如果要創(chuàng)建用戶名/密碼類型的信息卡,則為所選用戶名在Identity Provider直接創(chuàng)建用戶名/密碼類型的信息卡;如果要創(chuàng)建的是X509證書類型的信息卡,則先查看Identity Provider中,所選用戶是否有X509證書,如果存在,則直接使用X509證書建立所選用戶信息卡,如果不存在,則在Identity Provider為所選用戶名創(chuàng)建X509證書,之后使用該X509證書建立信息卡。步驟c :用戶以管理員身份為所選用戶名分發(fā)信息卡。這里,所述分發(fā)信息卡為向所選用戶名顯示在線時使用的IdentitySelectorClient分發(fā)信息卡,所選用戶名顯示為不在線時,將信息卡分發(fā)到IdentitySelector Server,保存到所選用戶名下。所述步驟c進一步包括用戶以管理員身份向Identity Provider發(fā)出向所選用戶名分發(fā)信息卡的指令,Identity Provider從Identity Selector Server中查詢所選用戶名的狀態(tài)是否在線,當在線時,Identity Provider從Identity Selector Server獲取所選用戶名所在的 Identity Selector Client 的 IP 地址,根據(jù) IP 地址,IdentityProvider將信息卡傳送到 Identity Selector Client, Identity Selector Client 也可以選擇信息卡上傳并保存在Identity Selector Server ;當所選用戶名狀態(tài)為不在線時,IdentityProvider將信息卡發(fā)到Identity Selector Server進行保存,用戶使用該用戶名登錄Identity Selector Client 后,可以從 Identity Selector Server 選擇信息卡并下載。 以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權(quán)利要求
1.一種基于WS協(xié)議的信息卡認證方法,其特征在于,該方法包括 用戶登錄依賴方(Relying Party), Relying Party向身份選擇器客戶端(IdentitySelector Client)請求令牌并確定策略; 用戶使用Identity Selector Client通過身份選擇器服務器(IdentitySelectorServer)驗證身份后登錄 Identity Selector Client ; Identity Selector Client將信息卡提交給標識提供方(Identity Provider)進行認證并接收令牌,將令牌返回給Relying Party。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,該方法還包括IdentitySelectorClient收到請求令牌的信息后,要求用戶輸入用戶名和密碼登錄IdentitySelectorClient,并將用戶名和密碼上傳到Identity Selector Server進行驗證,如果驗證不通過,則拒絕用戶繼續(xù)操作,如果驗證通過,則繼續(xù)操作。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述IdentitySelector Client將信息卡提交給Identity Provider為Identity Selector Client將信息卡中的相關(guān)信息編寫成簡單對象訪問協(xié)議(SOAP)信息,并對該SOAP信息進行XML簽名和XML加密,之后發(fā)送到Identity Provider。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述將令牌返回給RelyingParty后,該方法還包括=Relying Party對接收到的令牌進行XML簽名匹配,XML簽名匹配之后進行XML解密,解密成功后允許用戶進行訪問。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述用戶登錄RelyingParty之前,該方法還包括用戶以管理員身份登錄Identity Provider,從IdentityProvider所管理的所有用戶名中,選定要為其建立信息卡的用戶名;為所選的用戶名創(chuàng)建信息卡;用戶以管理員身份為所選用戶分發(fā)信息卡。
6.一種基于WS協(xié)議的信息卡認證系統(tǒng),其特征在于,該系統(tǒng)包括=IdentityProvider、Identity Selector Client、Identity Selector Server 及 Relying Party ;其中, Identity Provider,用于對Identity Selector Client提交的信息卡進行認證,并向Identity Selector Client 返回令牌; Identity Selector Client,用于接收Relying Party請求令牌的信息,與RelyingParty確定策略,向Identity Selector Server請求驗證登錄用戶身份并接收驗證結(jié)果,向Identity Provider提交信息卡進行認證并接收令牌,將令牌返回給RelyingParty ; Identity Selector Server,用于接收Identity Selector Client請求驗證登錄用戶身份的信息,并向Identity Selector Client返回驗證結(jié)果; Relying Party,用于向 Identity Selector Client 請求令牌,并與 IdentitySelectorClient 確定策略,接收 Identity Selector Client 返回的令牌。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述IdentitySelector Client,還用于向用戶要求輸入用戶名和密碼,再將用戶名和密碼編寫成為驗證登錄用戶身份的請求發(fā)送到 Identity Selector Server ; 所述Identity Selector Server,還用于接收驗證登錄用戶身份的請求。
8.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述IdentitySelector Client,還用于將用戶選定的信息卡中的相關(guān)信息編寫成SOAP信息,并對SOAP信息進行XML簽名和XML加密后,發(fā)送給Identity Provider ; 所述 Identity Provider,還用于接收 Identity Selector Client 提交的經(jīng)過 XML 簽名和XML加密編寫成SOAP信息的信息卡進行解析并做認證。
9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述RelyingParty,還用于對接收到的令牌進行XML簽名匹配,簽名匹配之后進行XML解密,解密成功后才能允許用戶進行訪問。
10.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述IdentityProvider,還用于與所接入的系統(tǒng)同步數(shù)據(jù)庫同步數(shù)據(jù)庫,并設(shè)置所得到的用戶名的初始密碼。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,所述IdentityProvider,還用于創(chuàng)建信息卡,從Identity Selector Server中查詢所選用戶名的狀態(tài)是否在線并接收用戶狀態(tài)信息,當用戶狀態(tài)為在線時,從Identity Selector Server中查詢所選用戶名所在的Identity Selector Client的IP地址并接收IP地址,根據(jù)IP地址將信息卡傳送到Identity Selector Client,當用戶名狀態(tài)為不在線時,將信息卡發(fā)到Identity SelectorServer ; 相應的,所述Identity Selector Server,還用于接收Identity Provider的所選用戶名所在的Identity Selector Client的是否在線的查詢,并向其返回用戶狀態(tài)信息,之后接收Identity Provider的所選用戶名所在的Identity Selector Client的IP地址的查詢并返回IP地址,當Identity Provider所選用戶不在線的時候,接收并保存IdentityProvider發(fā)送的信息卡; 所述Identity Selector Client,還用于接收Identity Provider發(fā)送的信息卡,將信息卡上傳并保存在Identity Selector Server。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述IdentityProvider包括頒發(fā)令牌模塊、同步用戶模塊、管理證書模塊、創(chuàng)建信息卡模塊和分發(fā)信息卡模塊;其中, 頒發(fā)令牌模塊,接收Identity Selector Client提交的經(jīng)過XML簽名和XML加密編寫成SOAP信息的信息卡,對信息卡進行解析并認證,給Identity SelectorClient返回令牌; 同步用戶模塊,用于向所要接入的系統(tǒng)獲取數(shù)據(jù)庫,用戶從同步數(shù)據(jù)庫中選擇所選的要建立信息卡的用戶名,將所選用戶名的用戶信息發(fā)送給創(chuàng)建信息卡模塊; 管理證書模塊,用于存儲X509證書,且接收創(chuàng)建信息卡模塊的建立證書指令,建立X509證書,向創(chuàng)建信息卡模塊提供X509證書; 創(chuàng)建信息卡模塊,用于接收同步用戶模塊發(fā)來的用戶信息,為該用戶名創(chuàng)建信息卡,如果要創(chuàng)建的是X509證書類型的信息卡,則先查看管理證書模塊中,所選用戶名是否有X509證書,如果存在,則直接從管理證書模塊讀取X509證書,為所選用戶名建立信息卡,如果不存在,則向管理證書模塊發(fā)出建立證書的指令,讀取X509證書之后使用該X509證書為所選用戶名建立信息卡;如果要創(chuàng)建用戶名/密碼類型的信息卡,則為所選用戶名在創(chuàng)建信息卡模塊直接創(chuàng)建用戶名/密碼類型的信息卡,最后將信息卡發(fā)送給分發(fā)信息卡模塊; 分發(fā)信息卡模塊,用于接收并保存創(chuàng)建信息卡模塊發(fā)送的信息卡,接收用戶為所選用戶名分發(fā)信息卡的指令,從Identity Selector Server獲取做所選用戶名的狀態(tài)信息,之后從 Identity Selector Server 查詢所選用戶名所在的 IdentitySelector Client 的 IP地址,根據(jù)IP地址將信息卡傳送到Identity Selector Client,當所選用戶名狀態(tài)為不在線時,將信息卡發(fā)到Identity Selector Server。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述IdentitySelector Client包括注冊模塊,登錄模塊,上傳信息卡模塊、下載信息卡模塊、認證信息卡模塊和驗證信息卡模塊;其中, 注冊模塊,用于接收登錄模塊的通知,向Identity Selector Server發(fā)送注冊信息;登錄模塊,用于接收Relying Party的請求令牌信息,要求用戶輸入用戶名和密碼登錄,將用戶名和密碼上傳到Identity Selector Server進行用戶身份驗證,還用于記錄用戶名的狀態(tài)是否在線,并將狀態(tài)通知給注冊模塊; 上傳信息卡模塊,用于根據(jù)用戶的指令從下載信息卡模塊中選取信息卡并上傳到Identity Selector Server ; 下載信息卡模塊,用于接收并存儲Identity Provider發(fā)送的信息卡,從IdentitySelector Server下載用戶選中的信息卡,還用于接收Identity SelectorServer的用戶身份驗證結(jié)果,用戶選擇信息卡后將信息卡發(fā)送給驗證信息卡模塊,還用于將上傳信息卡模塊選取的信息卡發(fā)送給上傳信息卡模塊; 驗證信息卡模塊,用于接收下載信息卡模塊發(fā)送的信息卡,接收用戶輸入的信息卡密碼進行驗證,并將驗證通過的信息卡提交給認證信息卡模塊,還用于接收用戶修改信息卡密碼的指令,將用戶的舊密碼發(fā)送到Identity Provider做驗證,接收驗證通過的通知后,將用戶的新密碼發(fā)送給Identity Provider,若接收驗證失敗的通知,則用戶無法修改密碼; 認證信息卡模塊,用于將驗證信息卡模塊提交的信息卡中的相關(guān)信息編寫成SOAP信息,并進行XML簽名和XML加密并發(fā)送給Identity Provider,接收Identity Provider返回的令牌,最后將令牌發(fā)送給Relying Party。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述IdentitySelector Server進一步包括注冊用戶模塊、驗證用戶模塊、接收信息卡模塊、發(fā)放信息卡模塊;其中, 注冊用戶模塊,用于接收Identity Selector Client的注冊信息,記錄用戶的狀態(tài),產(chǎn)生用戶信息,給驗證用戶模塊提供狀態(tài)信息和用戶信息; 驗證用戶模塊,用于接收Identity Provider的用戶的狀態(tài)查詢,從注冊用戶模塊獲取用戶名的狀態(tài)信息后向Identity Provider返回所選用戶名的狀態(tài)信息,還用于接收Identity Provider的用戶名所使用的Identity Selector Client的IP地址的請求信息,從注冊模塊獲取用戶信息并從用戶信息中提取出IP地址,向Identity Provider返回用戶名所使用的 Identity Selector Client 的 IP地址,還用于接收 Identity Selector Client的用戶名和密碼對其進行驗證并向Identity SelectorClient返回驗證結(jié)果; 接收信息卡模塊,用于接收并保存Identity Provider發(fā)送的信息卡,還用于接收并保存Identity Selector Client上傳的信息卡,接收發(fā)放信息卡模塊的信息卡查詢指令,將用戶所選信息卡發(fā)送給發(fā)放信息卡模塊; 發(fā)放信息卡模塊,用于根據(jù)Identity Selector Client的下載請求,將信息卡發(fā)給Identity S elector Client。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述RelyingParty包括激活I(lǐng)dentity Selector Client模塊和驗證令牌模塊;其中, 激活I(lǐng)dentity Selector Client模塊,用于接收用戶的訪問請求,向IdentitySelector Client 發(fā)送請求令牌的信息,并與 Identity Selector Client 確定策略,接收驗證令牌模塊的允許用戶訪問信息,接收用戶的訪問; 驗證令牌模塊,用于接收Identity Selector Client發(fā)來的令牌,進行驗證,驗證通過之后,通知激活I(lǐng)dentity Selector Client模塊允許用戶訪問。
全文摘要
本發(fā)明公開了一種基于WS協(xié)議的信息卡認證方法,該方法包括用戶登錄依賴方(Relying Party),Relying Party向身份選擇器客戶端(Identity SelectorClient)請求令牌并確定策略;用戶使用Identity Selector Client通過身份選擇器服務器(Identity Selector Server)驗證身份后登錄Identity Selector Client;IdentitySelector Client將信息卡提交給標識提供方(Identity Provider)進行認證并接收令牌,將令牌返回給Relying Party。本發(fā)明還同時公開了一種基于WS協(xié)議的信息卡認證系統(tǒng),解決了信息傳輸過程中出現(xiàn)的機密性、完整性、身份鑒別的問題。
文檔編號H04L29/06GK102811210SQ201110149978
公開日2012年12月5日 申請日期2011年6月3日 優(yōu)先權(quán)日2011年6月3日
發(fā)明者章洋, 吳步丹, 程渤, 陳俊亮, 周海靜 申請人:北京郵電大學