日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAAS介绍

發布時間:2023/12/10 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAAS介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JAAS介紹

1、JAAS是什么?

JAAS---Java Authentication Authorization Service(JAAS,Java驗證和授權服務)。

2、JAAS背景

從早期所謂的 Java 沙箱到 JDK 1.4 引入的健壯的、全功能的安全體系結構,安全性一直是 Java 平臺的基本組件。從那時到現在,Java 語言的設計者收到了來自團體的大量關于安全的 Java 應用程序(或者企業環境)可以做什么和不做什么的意見,他們自己也添加了若干技巧。

可以說隨著 J2EE Web 應用程序安全體系結構的引入,我們不斷從近 10 年的反復試驗有所收獲,事實也表明了這一點。J2EE 安全框架由三個 API 組成:Java 認證和授權服務(JAAS)、Java 安全套接字擴展(JSSE)和 Java 加密擴展(Java Cryptography Extension,JCE)。雖然 JCE 是一個有意思和重要的 API,但是它與我們所關注的安全 Web 應用程序開發的“三大項”――認證、授權和傳輸――并不特別相關。所以在本月的專欄中我們將集中講述 JAAS 和 JSSE。

  • Java早期的安全框架強調的是通過驗證代碼的來源和作者,保護用戶避免受到下載下來的代碼的攻擊。
  • JAAS強調的是通過驗證誰在運行代碼以及他/她的權限來保護系統面受用戶的攻擊。它讓你能夠將一些標準的安全機制,例如Solaris NIS(網絡信息服務)、Windows NT、LDAP(輕量目錄存取協議),Kerberos等通過一種通用的,可配置的方式集成到系統中。

3、JAAS目標

JAAS 提供了一種靈活的、說明性的機制,用于對用戶進行認證并驗證他們訪問安全資源的能力。JSSE 定義了通過安全套接字層(SSL)進行安全 Web 通信的一種全 Java 的機制。通過結合這兩種技術,可以使我們的應用程序:

  • 驗證用戶就是他或者她所宣稱的那個人(認證)。
  • 保證允許他或者她訪問所要求的資源(授權)。
  • 通過安全網絡連接進行完整的信息交換(傳輸)。

現在,我們來看每一個基礎的功能組件。

4、JAAS的核心類

  • 公用類

Subject,Principal,Credential

  • 驗證類和接口

LoginContext,LoginModule,CallbackHandler,Callback

  • 授權類

Policy,AuthPermission,PrivateCredentialPermission

javax.security.auth.Subject是核心類,它表示和一個實體(例如一個人)有關一系列的相關信息,包含此實體的Principal,公開Credential以及私有Credential。


Subject

要授權訪問資源,應用必須首先驗證請求的來源。JAAS框架使用單詞subject來表示請求的來源。Subject類代表了一個驗證實體,它可以是用戶、管理員、Web服務,設備或者其他的過程。該類包含了三中類型的安全信息:

  • 身份(Identities):由一個或多個Principal對象表示。
  • 公共憑證(Public credentials):例如名稱或公共秘鑰。
  • 私有憑證(Private credentials):例如口令或私有密鑰。
  • Principals

    Principal對象代表了Subject對象的身份。它是一個惟一的實體,比如個人或者組的名字、帳號、社會安全號或者類似的惟一標識。為了惟一標識一個?subject(這是認證的關鍵部分),一個或者多個?principal?必須與這個subject?相關聯。

    它們實現了java.security.Principal和java.io.Serializable接口。在Subject類中,最重要的方法是getName()。該方法返回一個身份名稱。在Subject對象中包含了多個Principal對象,因此它可以擁有多個名稱。由于登錄名稱、身份證號和Email地址都可以作為用戶的身份標識,可見擁有多個身份名稱的情況在實際應用中是非常普遍的情況。

    Credential

    在上面提到的憑證并不是一個特定的類或借口,一個?subject?可能擁有安全相關的屬性,稱為憑證(credential)。憑證可以是從簡單的密碼到復雜的加密密鑰的任何東西。它可以是任何對象。憑證中可以包含任何特定安全系統需要的驗證信息,例如標簽(ticket),密鑰或口令。Subject對象中維護著一組特定的私有和公有的憑證,這些憑證可以通過getPrivateCredentials()和getPublicCredentials()方法獲得。這些方法通常在應用程序層中的安全子系統被調用。

    5、 例子

    LoginContext lc = new LoginContext("MyExample");
    try {
    lc.login();
    } catch (LoginException) {
    //Authentication failed.
    }
    //Authentication successful, we can now continue.
    //We can use the returned Subject if we like.
    Subject sub = lc.getSubject();
    Subject.doAs(sub, new MyPrivilegedAction());

    在運行這段代碼時,后臺進行了以下的工作。

      1. 當初始化時,LoginContext對象首先在JAAS配置文件中找到MyExample項,然后更具該項的內容決定該加載哪個LoginModule對象(參見圖二)。

      2. 在登錄時,LoginContext對象調用每個LoginModule對象的login()方法。

      3. 每個login()方法進行驗證操作或獲得一個CallbackHandle對象。

      4. CallbackHandle對象通過使用一個或多個CallBack方法同用戶進行交互,獲得用戶輸入。

      5. 向一個新的Subject對象中填入驗證信息。

      我們將對代碼作進一步的解釋。但是在這之前,讓我們先看代碼中涉及到的核心JAAS類和接口。這些類可以被分為三種類型:

      普通類型 Subject,Principal,憑證

      驗證 LoginContext,LoginModule,CallBackHandler,Callback

      授權 Policy,AuthPermission,PrivateCredentialPermission

      上面列舉的類和接口大多數都在javax.security.auth包中。在J2SE 1.4中,還有一些接口的實現類在com.sun.security.auth包中。

    6、總結

    JAAS的優點:

  • Java驗證和授權API)提供了靈活和可伸縮的機制來保證客戶端或服務器端的Java程序。Java早期的安全框架強調的是通過驗證代碼的來源和作者,保護用戶避免受到下載下來的代碼的攻擊。JAAS強調的是通過驗證誰在運行代碼以及他/她的權限來保護系統免受用戶的攻擊。它讓你能夠將一些標準的安全機制,例如Solaris NIS(網絡信息服務)、Windows NT、LDAP(輕量目錄存取協議),Kerberos等通過一種通用的,可配置的方式集成到系統中。

  • 傳統的軟件在實現身份認證功能過程中,往往自行開發專用的認證模塊。由于不同的軟件開發人員在信息安全方面水平參差不齊,實現的認證模塊安全性往往得不到保證。認證和授權應當同業務邏緝分離一個通用的身份認證模塊不僅能減輕軟件開發人員的負擔,更能保證認證的強度,確保在當認證方式發生改變時,應用程序不受影響。

  • 可以基于JAAS建立擁有自有技術的單點登錄解決方案。

  • Java 平臺以其巖石般堅固的安全性聞名。每一年 Java 安全性框架都會變得更靈活和更健壯,JAAS 和 JSSE 的加入表明這個傳統將會繼續發揚光大。

    參考鏈接: 1、介紹下這幾天研究的JAAS:http://blog.csdn.net/abigfrog/article/details/4567231
    2、用 JAAS 和 JSSE 實現 Java 安全性:http://www.ibm.com/developerworks/cn/java/j-pj2ee9/ 3、JAAS:靈活的Java安全機制:http://oss.org.cn/ossdocs/java/j2ee/jaas.html 4、JAAS是什么?http://hi.baidu.com/guanlin84/item/f780e445668cd82310ee1ea4



    總結

    以上是生活随笔為你收集整理的JAAS介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。