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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

仔细研究Java Identity API

發布時間:2023/12/3 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 仔细研究Java Identity API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在深入探討之前,讓我們看一下有關Java Identity API JSR 351的一些快速事實。 這仍在進行中。 。 。

  • JSR是什么時候發起的?

該JSR在2011年10月通過了批準投票,隨后在2011年11月成立了專家組。

  • 誰負責此規范?

Java Identity API由Ron Monzillo領導。

  • 專家組?

專家組由來自Oracle,IBM,RedHat,SAP和GoldmanSachs的代表以及個人組成。

  • 規格文件?

這仍處于起草階段,可以通過以下網址獲得: https : //jcp.org/aboutJava/communityprocess/edr/jsr351/index.html

  • 參考實施

Nobis是Java Identity API的RI,可以在以下位置訪問: https : //java.net/projects/nobis/pages/Home

介紹

如果必須單行解釋Java Identity API背后的動機,那么它將被定義為Identity Management的Java標準。

總體而言 ,該標準的主要目標是:

  • Java中定義一個Identity的表示形式
  • 通過定義身份使用者和提供者之間的標準API和交互模型,促進這些“身份”的安全使用(創建,交換,治理) 。
  • 提供統一,高級的編程模型,供應用程序與具有異構域模型的身份/屬性存儲庫進行交互。

目前的挑戰

當前,Java平臺不提供用于管理身份的標準接口。 隨著互聯網服務在日常應用中的使用日益增加,SSO的采用和聯合,需要保護網絡身份。 現有的Java對象(例如X509Certificate和KerberosTicket)為封裝身份屬性提供了相似的外觀,但僅限于有限的范圍。 代替具有完全不同且非標準的模型,需要制定一套標準,應用程序或身份框架開發人員可以利用這些標準為網絡身份的傳播和使用提供堅如磐石的支持。

一個簡單的類比

我喜歡將其視為類似于JDBCJNDI (如果不相同)的API。 這兩個API都可以幫助開發人員通過標準接口以松散耦合的方式與基礎數據源或命名服務進行通信。 它使我們能夠采用可插拔的體系結構,其中可以利用不同的供應商實現方式來連接不同的數據庫(Oracle,MySQL,Sybase DB2 ...我們真的不在乎,除了在我們的類路徑中使用供應商JARS),LDAP服務器( AD,OID,Sun Java,Apache等)。

Java Identity API如何提供幫助?

該API將:

  • 允許應用程序以可移植和標準的方式與異構基礎身份存儲庫進行交互。
  • 允許供應商使用屬性服務框架開發實現,以與一個或多個存儲庫(如Facebook , Twitter ,通過受支持的協議/ API(如OAUTH , Open ID , FaceBook Connect等) 鏈接的屬性)進行無縫交互。
  • 使應用程序還可以充當屬性的提供者–這也是屬性服務框架的一部分。
  • 允許最終開發人員在這些實現之上構建應用程序。
  • 防止依賴非標準專有實現在應用程序內實現身份服務。

突出特點

下面列出了此API的一些關鍵功能/重點:

  • 與Java SE 6和Java EE 6的兼容性
  • 與Java安全模型集成

Java安全性模型中的現有對象(例如Principal,Subject,Policy等)將集成在API中:

  • 支持編程以及注釋驅動的編程模型
  • 利用上下文和依賴注入(CDI)

CDI將通過限定符和生產者提供諸如資源注入,生命周期回調以及身份屬性和引用的依賴注入等服務。

關鍵術語

全新的規范通常可以引入一些術語或表達,這些術語或表達一開始聽起來可能比較模糊或抽象。 這是與Java Identity API緊密相關的關鍵字概念的列表。 對這些術語有基本的了解很重要。

術語 描述
實體 除了“屬性 ”的集合外,例如某人可以具有諸如名字,姓氏,SSN,電子郵件等屬性。
屬性 它具有名稱 (用戶名,電子郵件), 值 (johndoe,jdoe @ test.com)和關聯的元數據 (發布者,有效期)
實體參考 實體的安全句柄
屬性參考 屬性本身的安全 , 獨立于值的句柄注意 :實體引用和屬性引用都便于交換, 而無需實際暴露關聯的值
屬性存儲庫 表示要與身份源集成以實現的一組合同 。 包含與最終身份存儲庫交互的業務邏輯
倉庫代理 它綁定到特定的屬性存儲庫,并且可以查詢以提供附加到該屬性存儲庫的句柄
儲存庫描述符 描述關系 b / wa Repository Agent和綁定到該代理的Attribute Repository
屬性提供者 與存儲庫 代理進行交互并代表其執行用戶請求的操作
屬性服務 這是一個服務組件,直接向客戶端應用程序公開。 它提供對高級界面的訪問,以與身份交互和管理身份

核心API

Java Identity API非常輕巧緊湊 。 構成核心編程接口一部分的軟件包已在下面突出顯示。

描述
javax.security.identity 該軟件包包含標識屬性和引用類型
javax.security.identity.annotations 包含有助于提供可移植身份編程模型的注釋
javax.security.identity.auth 包含在Java Subject或AccessControlContext中使用的標識屬性和引用類型。
javax.security.identity.client 為身份屬性服務提供高級編程接口。
javax.security.identity.client.expression 包含用于構成屬性查詢的獨立于提供程序的表達式。
javax.security.identity.client.qualifiers 定義在身份屬性的CDI注入中用作限定符的注釋。
javax.security.identity.permission 包括用于保護屬性服務的接口的權限和操作值。
javax.security.identity.provider 包含將由屬性提供程序和存儲庫代理實現的接口。


以下突出顯示了Java Identity API的一些重要注釋,接口和類:

注解

零件 等效的API
身分識別 javax.security.identity.annotations.IDEntity
屬性 javax.security.identity.annotations.IdentityAttribute
實體參考 javax.security.identity.annotations.EntityReference

接口和類

零件 等效的API
屬性 javax.security.identity.IDAttribute
實體參考 javax.security.identity.IDEntityReference
屬性參考 javax.security.identity.IDAttributeReference
屬性存儲庫 javax.security.identity.provider。 AttributeRepository
屬性提供者 javax.security.identity.provider.AttributeProvider
倉庫代理 javax.security.identity.provider.RepositoryAgent
儲存庫描述符 javax.security.identity.client.RepositoryDe??scriptor

API使用概述

應用程序需要訪問基礎存儲庫才能與其進行交互并執行操作。 下面的示例概述了步驟的順序,突出了應用程序可以利用API來獲取基礎標識和屬性的句柄的方式:

  • javax.security.identity.client.LookupService接口的具體實現。 這封裝了javax.security.identity.client.ProviderLookupServicejavax.security.identity.provider.AttributeLookupService的服務
  • 通過將LookupService與javax.security.identity.provider.RepositoryAgent的實現綁定,可以獲取javax.security.identity.client.ProviderLookupContext的實例。
  • ProviderLookupContext用于獲取對javax.security.identity.provider.AttributeProvider的引用,該引用綁定到ProviderLookupContext標識的存儲庫中包含的實體范圍。
  • AttributeProvider實現是基礎身份存儲庫網關 ,并通過javax.security.identity.provider.RepositoryLookupServicejavax.security.identity.provider.RepositoryUpdateService公開類似于CRUD的功能。
  • 代碼段

    參考實施

    與大多數Java標準一樣,JSR 351具有稱為Nobis的參考實現 它提供以下實現:

    • javax.security.identity.client.LookupService,即ProviderLookupService和AttributeLookupService –啟用來自存儲庫的搜索/查找身份屬性
    • javax.security.identity.provider.AttributeProvider
    • javax.security.identity.provider.AttributeRepository
    • javax.security.identity.client.IDPredicate –用作過濾/搜索條件

    作為實施的一部分,Nobis RI還提供:

    • 發布與@ javax.security.identity.annotations.IDEntityProvider和@ javax.security.identity.annotations.IDEntity對應的構造攔截器 ,它們不過是攔截器綁定。
    • 類似于上述攔截器的API之類的工廠
    • Facebook作為屬性提供程序以及基于JPA和內存中提供程序的示例實現。

    一些值得期待的事情

    • API將如何發展并達到最終的形狀
    • 社區將如何采用它
    • 產品和實際應用程序將如何實施和利用它

    干杯。 。 。 。 ! ! !

    翻譯自: https://www.javacodegeeks.com/2014/06/a-closer-look-at-the-java-identity-api.html

    總結

    以上是生活随笔為你收集整理的仔细研究Java Identity API的全部內容,希望文章能夠幫你解決所遇到的問題。

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