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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

仔细研究Java Identity API

發(fā)布時(shí)間:2023/12/3 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 仔细研究Java Identity API 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在深入探討之前,讓我們看一下有關(guān)Java Identity API JSR 351的一些快速事實(shí)。 這仍在進(jìn)行中。 。 。

  • JSR是什么時(shí)候發(fā)起的?

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

  • 誰負(fù)責(zé)此規(guī)范?

Java Identity API由Ron Monzillo領(lǐng)導(dǎo)。

  • 專家組?

專家組由來自O(shè)racle,IBM,RedHat,SAP和GoldmanSachs的代表以及個(gè)人組成。

  • 規(guī)格文件?

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

  • 參考實(shí)施

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

介紹

如果必須單行解釋Java Identity API背后的動(dòng)機(jī),那么它將被定義為Identity Management的Java標(biāo)準(zhǔn)。

總體而言 ,該標(biāo)準(zhǔn)的主要目標(biāo)是:

  • Java中定義一個(gè)Identity的表示形式。
  • 通過定義身份使用者和提供者之間的標(biāo)準(zhǔn)API和交互模型,促進(jìn)這些“身份”的安全使用(創(chuàng)建,交換,治理) 。
  • 提供統(tǒng)一,高級(jí)的編程模型,供應(yīng)用程序與具有異構(gòu)域模型的身份/屬性存儲(chǔ)庫進(jìn)行交互。

目前的挑戰(zhàn)

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

一個(gè)簡(jiǎn)單的類比

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

Java Identity API如何提供幫助?

該API將:

  • 允許應(yīng)用程序以可移植和標(biāo)準(zhǔn)的方式與異構(gòu)基礎(chǔ)身份存儲(chǔ)庫進(jìn)行交互。
  • 允許供應(yīng)商使用屬性服務(wù)框架開發(fā)實(shí)現(xiàn),以與一個(gè)或多個(gè)存儲(chǔ)庫(如Facebook , Twitter ,通過受支持的協(xié)議/ API(如OAUTH , Open ID , FaceBook Connect等) 鏈接的屬性)進(jìn)行無縫交互。
  • 使應(yīng)用程序還可以充當(dāng)屬性的提供者–這也是屬性服務(wù)框架的一部分。
  • 允許最終開發(fā)人員在這些實(shí)現(xiàn)之上構(gòu)建應(yīng)用程序。
  • 防止依賴非標(biāo)準(zhǔn)專有實(shí)現(xiàn)在應(yīng)用程序內(nèi)實(shí)現(xiàn)身份服務(wù)。

突出特點(diǎn)

下面列出了此API的一些關(guān)鍵功能/重點(diǎn):

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

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

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

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

關(guān)鍵術(shù)語

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

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

核心API

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

描述
javax.security.identity 該軟件包包含標(biāo)識(shí)屬性和引用類型
javax.security.identity.annotations 包含有助于提供可移植身份編程模型的注釋
javax.security.identity.auth 包含在Java Subject或AccessControlContext中使用的標(biāo)識(shí)屬性和引用類型。
javax.security.identity.client 為身份屬性服務(wù)提供高級(jí)編程接口。
javax.security.identity.client.expression 包含用于構(gòu)成屬性查詢的獨(dú)立于提供程序的表達(dá)式。
javax.security.identity.client.qualifiers 定義在身份屬性的CDI注入中用作限定符的注釋。
javax.security.identity.permission 包括用于保護(hù)屬性服務(wù)的接口的權(quán)限和操作值。
javax.security.identity.provider 包含將由屬性提供程序和存儲(chǔ)庫代理實(shí)現(xiàn)的接口。


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

注解

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

接口和類

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

API使用概述

應(yīng)用程序需要訪問基礎(chǔ)存儲(chǔ)庫才能與其進(jìn)行交互并執(zhí)行操作。 下面的示例概述了步驟的順序,突出了應(yīng)用程序可以利用API來獲取基礎(chǔ)標(biāo)識(shí)和屬性的句柄的方式:

  • javax.security.identity.client.LookupService接口的具體實(shí)現(xiàn)。 這封裝了javax.security.identity.client.ProviderLookupServicejavax.security.identity.provider.AttributeLookupService的服務(wù)
  • 通過將LookupService與javax.security.identity.provider.RepositoryAgent的實(shí)現(xiàn)綁定,可以獲取javax.security.identity.client.ProviderLookupContext的實(shí)例。
  • ProviderLookupContext用于獲取對(duì)javax.security.identity.provider.AttributeProvider的引用,該引用綁定到ProviderLookupContext標(biāo)識(shí)的存儲(chǔ)庫中包含的實(shí)體范圍。
  • AttributeProvider實(shí)現(xiàn)是基礎(chǔ)身份存儲(chǔ)庫網(wǎng)關(guān) ,并通過javax.security.identity.provider.RepositoryLookupServicejavax.security.identity.provider.RepositoryUpdateService公開類似于CRUD的功能。
  • 代碼段

    參考實(shí)施

    與大多數(shù)Java標(biāo)準(zhǔn)一樣,JSR 351具有稱為Nobis的參考實(shí)現(xiàn) 它提供以下實(shí)現(xiàn):

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

    作為實(shí)施的一部分,Nobis RI還提供:

    • 發(fā)布與@ javax.security.identity.annotations.IDEntityProvider和@ javax.security.identity.annotations.IDEntity對(duì)應(yīng)的構(gòu)造攔截器 ,它們不過是攔截器綁定。
    • 類似于上述攔截器的API之類的工廠
    • Facebook作為屬性提供程序以及基于JPA和內(nèi)存中提供程序的示例實(shí)現(xiàn)。

    一些值得期待的事情

    • API將如何發(fā)展并達(dá)到最終的形狀
    • 社區(qū)將如何采用它
    • 產(chǎn)品和實(shí)際應(yīng)用程序?qū)⑷绾螌?shí)施和利用它

    干杯。 。 。 。 ! ! !

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

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。