乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      單點登錄的簡單實現(xiàn)

       Joshua 2006-02-20
      在門戶項目中,經(jīng)常會遇到如何實現(xiàn)單點登錄的問題,下面就本人的經(jīng)驗做個總結。歡迎大家進行補充討論。

      單點登錄的具體實現(xiàn)有很多種選擇:包括:
      a)  采用專門的SSO商業(yè)軟件:  主要有:Netgrity的Siteminder,已經(jīng)被CA收購。Novell  公司的iChain。RSA公司的ClearTrust等。
      b)  采用門戶產(chǎn)品供應商自己的SSO產(chǎn)品,如:IBM  的Tivoli  Access  Manager,Sun  公司的identity  Server,Oracle公司的OID等。
      c)  這些商業(yè)軟件一般適用于客戶對SSO的需求很高,并且企業(yè)內部采用COTS軟件如:Domino,SAP,Sieble的系統(tǒng)比較多的情況下采用。并結合身份管理。統(tǒng)一認證等項目采用。采用這些軟件一般都要對要集成的系統(tǒng)做些改造,如在要集成的系統(tǒng)上安裝AGENT?,F(xiàn)在一般只提供常見軟件如:Domino,SAP,Sieble,常見應用服務器:weblogic,websphere等的AGENT。要先統(tǒng)一這些系統(tǒng)的認證。一般采用LDAP或數(shù)據(jù)庫。然后才能實現(xiàn)SSO。比較麻煩。
      d)  另外,如果不想掏銀子,也有OPEN  SOURCE的SSO軟件可選:主要有:http://www./    https://opensso.dev./    http://www.  等。具體怎么樣就不清楚了。

      如果項目對SSO的要求比較低,又不想對要被集成的系統(tǒng)做任何改動,可采用下面介紹的方式簡單實現(xiàn):下面我們通過一個例子來說明。假如一個門戶項目要對下面的幾個系統(tǒng)做SSO。

       

      用戶在這些系統(tǒng)中的用戶名,密碼各不相同,如:員工號為001的員工在這些系統(tǒng)中的用戶名,密碼分別如下:  

      用戶  系統(tǒng)  用戶名  密碼  
      001  Portal系統(tǒng)  A  1234  
      001  郵件系統(tǒng)  B  23456  
      001  DOMINO系統(tǒng)  C  ABCDE  
      001  報銷系統(tǒng)  D  CCCCC  
      001  工資系統(tǒng)  E  DDDDD  



      首先,建立員工在PORTAL系統(tǒng)中的用戶名和其他系統(tǒng)中的用戶名之間的對應關系

      要建立員工在PORTAL系統(tǒng)中的用戶名和其他系統(tǒng)中的用戶名之間的對應關系并保存。可保存在表中或LDAP中或文件系統(tǒng)中。當然要考慮這些系統(tǒng)之間的數(shù)據(jù)同步問題。比較好的方式是找到用戶在這些系統(tǒng)中的都存在的唯一信息(如員工號,MAIL地址,姓名等)。通過唯一信息實時到各個系統(tǒng)中去取認證所需要的信息。就不需要考慮數(shù)據(jù)同步問題。比較實用??梢越㈩愃葡旅娴谋恚好艽a可采用加密保存。  


       create  table  sso_info          

       (

       

       user    varchar2(20),        /*用戶名*/

       app_name  varchar2(20),      /*應用系統(tǒng)*/

       architect  varchar2(4),        /*應用系統(tǒng)的架構BS或CS*/

       app_company  varchar2(50),                    /*用戶所屬分公司*/

       app_department  varchar2(50),            /*用戶所在的部門*/

       app_user  varchar2(15),                                  /*在該系統(tǒng)中的用戶名*/

       app_passwd  varchar2(15),    /*在該系統(tǒng)中的密碼*/

       app_cookie  varchar2(30),                            /*COOKIE名稱*/

       form_user  varchar2(20),                                /*認證頁面中FORM的用戶名字段*/

       form_passwd  varchar2(20),                    /*認證頁面中FORM的密碼字段*/

       app_special    varchar2(20)                      /*其他*/

       );





      通過IFRAME或超連接方式集成目標系統(tǒng),并進行SSO

       通過IFRAME或超連接方式集成目標系統(tǒng),并在URL中帶上用戶名和密碼。如集成DOMINO可采用如下方式:  <iframe  style="BACKGROUND-COLOR:  #f7f7ff"  align="middle"  marginwidth="0"  marginheight="0"  src="http://host1/names.nsf?Login&Username=***&Password=pass&RedirectTo=/names.nsf"  frameborder="0"  width="100%"  scrolling="yes"  height="100%"  />


      或:
      <Href  src=“http://  host1/names.nsf?Login&Username=***&Password=pass&RedirectTo=/names.nsf”  />
      以上采用的是在HTTP中直接傳遞明碼,為提高安全性,可采用HTTPS來傳遞用戶名和密碼。另外采用這種方式被集成的系統(tǒng)必須支持FORM方式認證。J2EE應用,DOMINO等都支持FORM認證。
      這兩種方式如果SSO成功,就自動進入目標系統(tǒng)的界面,如果實現(xiàn)會顯示目標系統(tǒng)的登錄界面。其效果圖如下:

       


      這種方式,必須維護對應關系表,如上面的sso_info。更好的方式是提供界面,讓最終用戶自己維護這種對應關系,可模仿Compoze  portlets  for  lotus的做法,在用戶第一次進入要與之做SSO的系統(tǒng)時,如DOMINO系統(tǒng),顯示一個界面,讓用戶自己輸入他在該系統(tǒng)中的用戶名/密碼等信息。并保存到表中或LDAP等其他數(shù)據(jù)源中。以后用戶要進入這些系統(tǒng)時,就直接從表中或其他數(shù)據(jù)源中取用戶的用戶名/密碼等信息,幫助用戶做認證。建議采用這種方式。如下圖所示。如果用戶改變了自己在DOMINO系統(tǒng)中的用戶名,密碼。從門戶系統(tǒng)進入DOMINO系統(tǒng)時,認證會失敗,就重新顯示類似下面的界面。讓用戶重新輸入他在DOMINO系統(tǒng)中新的用戶名,密碼并保存。


       

      以上這種實現(xiàn)方式,一般需要瀏覽器支持COOKIE,所以要注意瀏覽器的配置,在開發(fā)階段,為方便調試,可設置IE,讓它顯示COOKIE的名稱。如下所示:

       



      采用這種方式,對要集成的系統(tǒng)不需要做任何的改動。如果PORTAL系統(tǒng)中的用戶在被集成的系統(tǒng)中的權限都一樣,可采用建立一個通用用戶的做法。也就是所有在PORTAL系統(tǒng)中的用戶都采用這個通用用戶進入目標系統(tǒng)。這種方式等于是采用頁面集成方式做集成。比較方便使用。另外,有時候需要采用調用API,或配置Adapter等應用集成方式來集成其他系統(tǒng),一般也是通過定義一個連接專用的用戶。在API中或在配置Adapter的時候寫死。如采用JAVA  API方式集成DOMINO:

      lotus.domino.Session  dominoSession  =  NotesFactory.createSession(dominoServer,  “***”,  “password”);





      CS結構實現(xiàn)方式


      經(jīng)常有人問CS結構的應用如何實現(xiàn)SSO,本人的建議是對這種系統(tǒng)不要自己去實現(xiàn)SSO。很麻煩,其實輸個用戶名,密碼沒什么大不了的。如果要實現(xiàn),一是采用商業(yè)軟件。另外也可以采用以下方式:在PORTAL的PORTLET上建立超連接。并通過APPLET方式啟動CS結構的應用系統(tǒng)的登錄界面。然后通過如下的方式把用戶名/密碼傳遞過去。
       -不能做任何改動的客戶端  -  WIN消息(給登錄窗口發(fā)送用戶名,密碼等登錄所需要的信息),模擬鍵盤(java有模擬鍵盤輸入的API)
       -可以做改動的客戶端  -  參數(shù)傳遞,并讓登錄的EXE文件讀取參數(shù)進行認證。
      因為要讓APPLET執(zhí)行本地的EXE文件,所以必須對IE中的JRE的安全進行設置。    




      其他:
      在采用以上方式實現(xiàn)了SSO后,要注意LOGOUT,可采用與LOGIN相同的方式。也可以通過被集成系統(tǒng)的超時設置來實現(xiàn)。

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多