IBM Rational Asset Manager 基礎安全

myattitude發表於2009-04-14
本文詳細描述了配置 IBM® Rational® Asset Manager 以連線 LDAP 目錄的步驟。

關於 IBM Rational Asset Manager

當今組織所面臨的新的軟體挑戰產生於複雜系統,異地分散式開發以及法規遵循需求。 更常見的是,這些挑戰定位於一種強調面向服務架構(SOA)的開發方法。 SOA 實施正在產生新的後設資料型別,它們要求跨企業的管理。 IBM Rational Asset Manager 面向於此問題。

Rational Asset Manager 是一個資產管理資料庫,其使組織能夠識別,管理和治理不同種類的非實時資產。 一個資產是許多工作產品的集合,例如應用程式,元件,框架,模版,模式,模型,服務(可能是一個 SOA 的部分),需求,原始碼,測試用例,以及其它種類的工作產品。 一個資產

  • 是一個給定的上下文環境。
  • 包括使用的規則。
  • 特點在於可變性。

Rational Asset Manager 使用 Reusable Asset Specification (RAS)來定義、建立、修改和儲存相關工作產品的資產。 它也提供了資產特定型別搜尋,以及治理和度量資產重用。

在 Rational Asset Manager 中管理使用者和組

要理解如何在 Rational Asset Manager 中管理使用者和組,您必須理解一個 Community 的概念。 在 Rational Asset Manager 中的一個 Community 是資產的一個目標觀眾,也是資產共享和協作的一個集中地方。 一個 Community 可以產生、使用和管理資產,並且可以在組織級別被結合起來,或者被定義為一個特定或通用的專案或角色(例如,業務分析師)。

Community 是組織儲存庫的主要元素,因為它是使用者、角色、許可權及其資產的集合。 每個 Community 都有一個作為 Community 管理員的使用者。

安全核心是應用程式容器,例如 IBM WebSphere Application Server 或 Tomcat,其在 Rational Asset Manager 中使用應用程式級安全來一致地控制安全性。 使用者或者從基於檔案的使用者和組安全檔案進行管理,或者從一個輕量級目錄訪問許可權協議(LDAP)目錄中產生。 Rational Asset Manager 可以與 LDAP 整合,以獲取和重用已有的使用者和組資訊,並驗證使用者,驗證訪問許可權。

一個使用者組是一組使用者,這些使用者可以通過手動新增使用者來產生,也可以通過繫結一個 LDAP 查詢來取得使用者資料。

使用者組將角色對映到一個給定 Community 的使用者組。 每個角色都有確定的許可權。 某些預設角色被增加到一個 Community 中,例如 Asset Consumer。 在一個使用者組中的使用者擁有一個相特定 Community 的相同角色和許可權。 使用者也可以被分派到一個 Community 的單獨角色,外部使用者組,以及可以擁有多個角色。

配置 Rational Asset Manager v7.0 使用 LDAP 的主要步驟

要成功地將 Rational Asset Manager 連線到您的統一 LDAP 系統中,您需要按照次序執行以下四個步驟:

  1. 在 WebSphere Application Server 中配置一個基於檔案的 User Registry。
  2. 配置一個 Rational Asset Manager Custom User Registry 使用 LDAP。
  3. 在 WebSphere Application Server 中配置獨立的 LDAP 整合。
  4. 向 Community 中新增 LDAP 使用者和組。

第 1 步. 在 WebSphere Application Server v 中配置一個基於檔案的 User Registry

Rational Asset Manager 依賴於 IBM WebSphere Application Server 來與 LDAP 登錄檔整合,並驗證使用者登入。 然而,當第一次安裝時,Rational Asset Manager 使用基於檔案的使用者安全驗證。 因此,在您完成 Rational Asset Manager 的安裝和配置之前,您必須配置基於檔案安全的應用程式伺服器。

重要:
如果您在 eWAS(WebSphere Application Server 的 Web 版本)上安裝 Rational Asset Manager,Installation Manager 會自動為您配置此步驟。 然而,如果您在一個已有的 WebSphere Application Server 上安裝 Rational Asset Manager,那麼您必須自己配置基於檔案安全的伺服器。

如果您在一個已配置了 LDAP (或其它安全)的 WebSphere Application Server 上安裝 Rational Asset Manager,您必須在完成了 Rational Asset Manager 的安裝和配置之後,重新配置基於檔案安全的伺服器。 在安裝和配置 WebSphere Application Server 使用自定製使用者登錄檔之後,您可以恢復之前的安全性配置。 檢視本文的問題解決一章,以作為指導。

以後小節提供了在 WebSphere Application Server 版本 6.1 上配置基於檔案安全的指導。

將使用者和組屬性檔案複製到 WebSphere Application Server

在開始基於檔案安全的配置過程之前,您需要將 user.propsgroups.props 文字欄位複製到您的 WebSphere Application Server 的 Rational Asset Manager 配置檔案中。 您可以在 Rational Asset Manager 安裝所在目錄中查詢到這些,例如:

C:\Program Files\IBM\SDP70\ram\conf\security

Rational Asset Manager v7.0 不提供新增使用者和組的 Web 介面或 GUI 介面。 作為替代,使用者和組被建立和新增到屬性(.props)檔案中。 如果您要新增使用者和組,要在屬性檔案中進行,然後重新啟動 WebSphere Application Server。

在 users.props 檔案的入口遵循如下格式:

name:passwd:uid:gids:display name

  • name = 使用者的 ID
  • passwd = 使用者的密碼
  • name = 使用者的唯一 ID
  • guid = 使用者所屬組的 ID
  • display name = (可選)使用者的顯示名

複製 user.props 和 groups.props 文字檔案:

  1. \profiles\AppSrv01\properties 目錄下,建立一個新的安全目錄。
  2. 複製 user.propsgroups.props 文字檔案:
    1. (C = 您的驅動器):
      C:\Program Files\IBM\SDP70\ram\conf\security

    2. (WAS Base = WebSphere Application Server 目錄):
      \profiles\AppSrv01\properties\security

為基於檔案安全性配置 WebSphere Application Server 6.1

  1. 如果 Rational Asset Manager 的 WebSphere Application Server 還沒有啟動,請啟動它。 您可以從命令列啟動伺服器,例如:
    "\profiles\AppSrv01\bin\startServer.bat" server1
  2. 開啟瀏覽器並輸入以下地址,登入 WebSphere 管理控制檯(其中, port 是訪問 WebSphere Application Server 控制檯所配置的埠號):
    http://localhost:/ibm/console
  3. 點選 Log in without a User ID
  4. 在左邊的窗格中,點選 Security > Secure administration > application > infrastructure
  5. User account repository 下,選擇 Standalone custom registry,然後點選 Configure
  6. 點選 Security
  7. 點選 Secure administration > applications > infrastructure
  8. Available realm definitions 下,選擇 Standalone custom registry,然後點選 Configure
  9. 點選 Custom Properties
  10. 點選 New
  11. 在 Name 欄位中,輸入 groupsFile
  12. 在 Value 欄位中,輸入 groups.props 檔案的路徑,例如:
    \profiles\AppSrv01\properties\security\groups.props
  13. 點選 Apply,然後點選 OK
  14. 點選 New
  15. 在 Name 欄位中,輸入 usersFile
  16. 在 Value 欄位中,輸入 users.props 檔案的位置,例如:
    \profiles\AppSrv01\properties\security\users.props
  17. 點選 Apply
  18. 在主要最上方點選 Standalone custom registry
  19. 點選 Save。 (參加圖 1。)

圖 1. 何處儲存您的變更
儲存您的變更

Custom 屬性應當看起來如圖 2。


圖 2. Custom 屬性
屬性

  1. 在 Primary administrative user name,Server user ID 以及 Password 欄位中,輸入 admin。
  2. 點選 OK
  3. 在 Configuration 頁面上:
    1. 選擇 Enable administrative security
    2. 取消選中 Use Java™ 2 security
    3. 確保 Enable application security 保留被選中。
    4. 確保 Available realm definitions 被設定為 Standalone custom registry
    5. 點選 Set as current
    6. 點選 Apply
    7. 點選 Save(參見圖 3)

圖 3. 何處儲存您的變更
儲存您的變更

  1. 退出管理控制檯。
  2. 重新啟動 Rational Asset Manager 的應用程式伺服器。

第 2 步. 配置 Rational Asset Manager v7.0 自定製使用者登錄檔使用 LDAP

Rational Asset Manager 可以與 LDAP 儲存庫整合以執行使用者驗證,取回使用者資訊以及提升組的繫結。 使用一個一般的 LDAPUserInformationFactory 預先配置進行工作,其被設計為與 LDAP v3 登錄檔一起進行工作。 然而,如果預設的不合適,您可以配置 Rational Asset Manager 以使用一個自定製使用者類,定製該類以擴充套件一般的 UserInformationFactory 類。

重要:

  • 在安裝 Rational Asset Manager 和 WebSphere Application Server 容器使用 LDAP 之前,您必須為 Rational Asset Manager 指明一個管理員,並在 LDAP 中指派一個有效使用者。 在您按照以下的配置步驟進行時,您要提供使用者 ID。
  • 如果您在配置 Rational Asset Manager 的 LDAP 整合(在 Rational Asset Manager 中)之前,啟用了 WebSphere Application Server 管理控制檯中的 LDAP 整合,您就不能登入進入 Rational Asset Manager 中。
  • LDAP 連線是在 Rational Asset Manager 儲存庫級別,而不是在 Community 級別。 當配置一個 LDAP 連線時,每個 Community 都可以查詢特定使用者的 LDAP。

在配置和啟用 WebSphere Application Server 管理控制檯中的 LDAP 之前,您必須首先為 LDAP 整合配置 Rational Asset Manager Custom User Registry。

要配置 Rational Asset Manager 與 LDAP 整合之前,遵循以下這些步驟。

  1. 以一個管理員身份(預設為: admin)登入進入 Rational Asset Manager Web 應用程式。
  2. 點選 Administration 頁籤。
  3. 在 Repository Administration 下,點選 Configuration 連結(參見圖4)。

圖 4. Repository Administration 螢幕
Repository screen

  1. 在 Custom User Registry 部分,選中 Use a Custom User Registry
  2. 使用預設類: com.ibm.ram.repository.custom.LDAPUserInformationFactory
  3. 在 Administrator ID 欄位中輸入 LDAP 登入 ID。 這個使用者具有訪問 Rational Asset Manager 的管理許可權(ID 將不再是 admin)。 該使用者必須已經在 LDAP 登錄檔中定義了。 例如: ramadmin(參見圖 5)。

圖 5. Custom User Registry 項
User Registry entries

  1. 下一步,點選 Configure
  2. 在 Custom User Class Configuration 頁面中填入 LDAP 資訊。 如果您想要一個值為空,可以輸入一個空格。 否則,保留該欄位為空,以轉為其預設值(按照欄位定義)。
  3. 點選 Update Configuration
  4. 在 Configuration 頁面的底部點選 Save

這裡是每個欄位的定義:

  • LDAP 伺服器的 URL。 LDAP 伺服器的 URL;必須以 ldap:// 或 ldaps:// 的安全連線開始。 例如: ldap://developmentserver.nam.abc.com:10345
  • 使用者的唯一名。 可以登入並訪問 LDAP 登錄檔的使用者的名稱。 這需要是一個使用者,其已經完成了對像以下定義的使用者和組資料庫搜尋的 LDAP 搜尋訪問。 例如:
    cn=us_contractor_d001,ou=applications,dc=abcglobal,dc=com
  • 使用者的密碼。 之前定義的使用者唯一名的密碼。
  • 使用者的唯一 ID 屬性。使用者的 objectClass 例項的屬性名稱,該例項表示了唯一的使用者 ID,例如登入名或電子郵件地址。 例如: uidmail
  • 使用者的登入ID 屬性。 使用者用來登入的 objectClass 屬性。使用者的 Unique ID 和使用者的 Login ID 屬性經常是相同的。 例如: uid
  • 使用者的 Phone Number 屬性。 屬性 objectClass 表示了使用者的來自 LDAP 的使用者電話。 例如: telephonenumber
  • 使用者的 e-mail 屬性。 屬性 (objectClass) 表示了使用者的電子郵件地址,通常是 mail
  • LDAP 使用者基本搜尋。 您可以輸入啟動搜尋的根路徑的值,以避免搜尋不包含使用者物件的 LDAP 登錄檔部分。 例如: dc=abcglobal,dc=com
  • 使用者搜尋過濾器。 搜尋一個使用者時所使用的模版。 %v 表示從一個輸入文字欄位中輸入的搜尋條件。 搜尋將會按照如同對搜尋條件增加了一個萬用字元一樣執行。 預設的搜尋模版是建立用來查詢所有人 objectClasses ,或者是郵件屬性或者是名稱屬性與搜尋條件是一樣的。 例如: (uid=%v)
  • LDAP 組基本搜尋。 用於搜尋組的基本搜尋。 這與前面描述的使用者的基本搜尋是相似的。 例如: dc=abcglobal,dc=com
  • 組搜尋過濾器。 用於搜尋組的過濾器。 預設搜尋使用者所輸入搜尋條件的任何 groupOfUniqueNames (靜態組),groupOfNames(靜態 LDAP 組),groupOfUrls(動態 LDAP 組),以及 group (Active Directory 定義組)。 例如: (&(cn=%v)(objectclass=groupOfUniqueNames))
  • 影像 URL 模版。 就是通過使用使用者的影像所處位置(儲存於 LDAP 登錄檔之外的其它地方)的 URL 得到使用者的影像。 例如,您可以使用預設的:
    https:///photo/${uid}.jpg

圖 6 顯示了完整資訊的一個截圖。


圖 6. 完整的配置項
帶有完整配置項的截圖

步驟 3. 在 WebSphere Application Server 中配置單獨的 LDAP 整合

現在,您已經完成了與 LDAP 整合的 Rational Asset Manager 配置,該開始配置 WebSphere Application Server 中的 LDAP 整合了。

要使用 LDAP v3 作為使用者註冊,您必須有一個有效的使用者名稱(ID),使用者密碼,伺服器主機和埠,base DN,以及如果需要的話,bind DN 和 bind password。

設定安全管理

按照以下步驟設定單獨 LDAP 註冊的 WebSphere Application Server 安全:

  1. 登入 Rational Asset Manager 例項的 WebSphere Application Server 管理控制檯。
  2. 在管理控制檯中點選 Security > Security administration > application > infrastructure
  3. 在 User Account 儲存庫中,在 Available realm definitions 下,選中 Standalone LDAP registry
  4. 點選 Configure(參見圖 7)。

圖 7. User Account Repository 配置
Repository 配置

  1. Primary administrative user name 欄位中,輸入一個有效的使用者名稱。 您可以輸入使用者的完整 Distinguished Name (DN) 或者短名,按照 Advanced LDAP 設定區中的使用者過濾器所定義的。 此 ID 是安全伺服器 ID,其只用於 WebSphere Application Server 安全性,不與執行伺服器的系統程式相關。 例如: ramadmin
  2. Type of LDAP server 列表中,選擇要使用的 LDAP 伺服器。 LDAP 伺服器的型別決定了 WebSphere Application Server 使用的預設過濾器。 這些預設過濾器更改了要定製的 Type 欄位,其指明瞭要使用的定製過濾器。 此動作發生於您在 Advanced LDAP 設定區中點選 OKApply 之後。
  3. 從列表中,選擇 Custom type,並修改 user and group filters 以使用其它 LDAP 伺服器,如果需要的話。 在本例中,選擇 IBM Secureway Directory Server
  4. Host 欄位中,輸入 LDAP 伺服器的完整驗證主機名。 您可以輸入 Internet Protocol (IP) 地址或 Domain Name Server (DNS) 名。 例如: developmentserver.nam.abc.com
  5. Port 欄位中,輸入 LDAP 伺服器埠號。 主機名和埠號表示了 WebSphere Application Server 單元中用於此 LDAP 伺服器的區域。 這樣,如果在不同單元中的伺服器要通過使用輕量級第三方驗證(LTPA)標誌進行互相溝通,這些區域必須在所有單元中準確匹配。 例如: 10345
  6. Base Distinguished Name 欄位中,輸入 base DN。 Base DN 指明瞭在 LDAP 目錄伺服器中搜尋的起始點。 您必須確保 Ignore Case 選項總是啟用的。 Ignore Case 是必需的,並且不啟用它可能會引起由於大小寫敏感的驗證問題。 該欄位對於所有 LDAP 目錄伺服器是 必需的,除了 IBM Lotus® Domino® 目錄伺服器。 Base Distinguished Name 欄位對於 Domino 伺服器是 可選的。 例如:
    dc=abcglobal,dc=com
  7. Bind Distinguished Name 欄位中,輸入 bind DN 名稱。 如果不能在 LDAP 伺服器上使用 anonymous bind 獲得使用者和組資訊,bind DN 就是必需的。 如果 LDAP 伺服器被設定來使用 anonymous bind,保留此欄位為空。 如果名稱未被指定,應用程式伺服器會匿名繫結。 例如:
    cn=us_contractor_d001,ou=applications,dc=abcglobal,dc=com
  8. Bind password 欄位中,輸入相應 bind DN 的命名。
  9. 可選: 修改 Search timeout 值。 該超時時長是傳送一個搜尋請求的客戶端等待響應直到超時前的最大時間。

圖 8 顯示了目前的條目。


圖 8. 完成項
完成項

  1. 確保 Reuse connection 選項被選中。 該選項指定了伺服器必須重用 LDAP 連線。 只會在極少情況下清除此選項,如使用一個 router 傳送請求到多個 LDAP 伺服器,以及當 router 不提供相似性時。 對於所有其它情況,保留該選項被選中。 (參見圖 9。)
  2. 驗證 Ignore case for authorization 選項是否被啟用。 當您啟用該選項時,意味著 Java™ 2 平臺,企業版(J2EE)驗證是大小寫敏感的。 通常,一個驗證檢查包括檢查一個使用者的完整 DN,檢查是否在 LDAP 伺服器中是唯一的,以及檢查是否是區分大小寫的。 然而,當您使用 IBM Directory 或 Sun® ONE™ 目錄 LDAP 伺服器時,您必需啟用此選項,因為從 LDAP 伺服器中獲得的組資訊可能會不一致。 這種不一致只會影響驗證檢查。 否則,該欄位是可選的,並且在大小寫敏感驗證檢查必須進行時可以被啟用。 當您正在產品和 Lotus Donimo 之間使用 SSO(單點登入)時,您也可以啟用 "Ignore case for authorization" 選項。 預設為 Enabled
  3. 可選: 如果您想要使用 LDAP 伺服器的 Secure Sockets Layer 聯通,選擇 Secure Sockets Layer (SSL) enabled 選項。 如果您選擇 SSL 啟用選項,您可以選擇集中管理或 "Use-specific SSL alias" 選項。


圖 9. 預設和可選設定
預設和可選設定

  1. 點選 Save 連結(圖 10),然後點選 Save directly to the master configuration

圖 10.直接儲存至主配置
儲存至主配置

設定 Advanced LDAP 使用者註冊配置

現在該開始完成配置高階 LDAP 使用者註冊設定的步驟:

  1. 點選 Security > Secure administration > applications > infrastructure(如果還沒有的話)。
  2. User account repository 下,選擇 Standalone LDAP registry,並點選 Configure
  3. Additional properties下,點選 Advanced Lightweight Directory Access Protocol (LDAP) user registry settings

您會注意到,已經彈出了所有使用者和組相關過濾器的預設值,基於 LDAP 伺服器的型別,其在 "Standalone LDAP registry setting" 窗格中選擇。 當安全性被啟用,並且這些屬性任何之一發生更改,轉到在圖 11 中所示的 Secure administration, applications, and infrastructure 窗格。


圖 11. 安全管理,應用程式以及基礎窗格
安全管理窗格

  1. 點選 ApplyOK 以驗證變更。
  2. 點選 Save 連結(參見圖 12),然後點選 Save 按鈕。

圖 12. 儲存您的變更
儲存變更

  1. 點選最上方的的 Logout 連結,離開 WebSphere Application Server 管理控制檯。
  2. 重新啟動 WebSphere Application Server。

檢視按照屬性預設值和描述的表。


屬性
屬性預設值 描述
使用過濾器:
(&(uid=%v)(objectclass=ePerson))
指定用來搜尋使用者註冊的 LDAP 使用者過濾器。
組過濾器:
(&(cn=%v)(|(objectclass=groupOfNames)(objectclass=groupOfUniqueNames)))
指定用來搜尋組註冊的 LDAP 組過濾器。
User ID 對映:
*:uid
指定 LDAP 過濾器,將一個使用者的短名對映到一個 LDAP 項。 此欄位使用多個 objectclass:property 對,由分號(;)區隔。
Group ID 對映:
*:cn
指定 LDAP 過濾器,將一個組的短名對映到一個 LDAP 項。 此欄位使用多個 objectclass:property 對,由分號(;)區隔。
Group 成員 ID 對映:
ibm-allGroups:member;ibm-allGroups:uniqueMember
指定識別使用者與組關聯關係的 LDAP 過濾器。
執行巢狀組搜尋:
unchecked
如果 LDAP 伺服器不支援遞迴的伺服器端的組成員搜尋,選擇此選項。
認定對映模式:
EXACT_DN
指定是否通過 EXACT_DN 或 CERTIFICATE_FILTER 將 X.509 認證對映到一個 LDAP 目錄。 指定 CERTIFICATE_FILTER 使用指定的用於對映的認證過濾器。
認證過濾器:
(&(uid=${UniqueKey}))
過濾器用來將客戶認證中的屬性對映到 LDAP 中的註冊項。 此過濾器的定義或結構是:
LDAP attribute=${Client certificate attribute}
例如: uid=${SubjectCN}

重要:
LDAP 整合在 WebSphere Application Server 管理控制檯中被啟用之後,您就不能使用 "admin" 作為使用者 ID 和密碼進行登入了。 在對 Custom User Registry 設定進行任何變更之後,您必須重新啟動伺服器。

測試配置

下一步,確保您的 WebSphere Application Server 和 Rational Asset Manager 配置正常工作。

  1. 在一個 Web 瀏覽器中登入 WebSphere 應用程式伺服器管理控制檯。
  2. 這時,通過使用您之前在 WebSphere 應用程式伺服器配置一章中輸入的主管理使用者名稱(伺服器使用者 ID)進行登入。
  3. 點選 Log in
  4. 如果 WebSphere 應用程式伺服器被正確配置,您將看見歡迎螢幕。
  5. 點選 Logout 連結進行登出。

現在嘗試 Rational Asset Manager:

  1. 登入 Rational Asset Manager。
  2. 使用您之前在 Rational Asset Manager 配置步驟中配置的 Administrator ID。
  3. 如果配置正在工作,您應當能夠登入進入。

問題解決

如果不能連線到 LDAP 伺服器上,WebSphere Application Server 不能啟動。 因此,您將不能訪問到管理控制檯。 您將需要按照以下步驟手動編輯 security.xml 檔案:

  1. 定位到您的 WebSphere Application Server 存檔:
    \profiles\AppSrv01\bin\/${wasBaseDir}/profiles/default/config/cells/${nodeName}Node01Cell/
    例如:
    C:\ProgramFiles\IBM\SDP70\runtimes\base_v61\profiles\AppSrv01\config\cells\developmentNode01Cell
  2. 編輯 security.xml 檔案,如下面所顯示列出的程式碼。
    1. 如果您之前已經啟用了安全,並有一個定製使用者註冊,將文字(粗體)更改為 activeUserRegistry="CustomUserRegistry_1"
    2. 否則,如果您之前沒有啟用安全,將文字(粗體)更改為 enabled="false"

程式碼清單. 編輯 security.xml 檔案
 
			
enabled="true" cacheTimeout="600"
issuePermissionWarning="true"
activeProtocol="BOTH"
enforceJava2Security="false"
enforceFineGrainedJCASecurity="false"
activeAuthMechanism="SWAMAuthentication_1"
activeUserRegistry="LDAPUserRegistry_1"
defaultSSLSettings="SSLConfig_1">

  1. Save 檔案。
  2. 重新啟動 WebSphere Application Server。
  3. 在一個 Web 瀏覽器中登入管理控制檯。 這時,不要使用 LDAP 使用者 ID 進行登入。
  4. 點選 Log in
  5. 修復您的配置的問題,並且重新啟動 WebSphere Application Server。

第 4 步. 增加 LDAP 使用者和使用者組到 Rational Asset Manager 社群

您差不多完成了。 到目前為止,您已經完成了正確配置 Rational Asset Manager 使用 LDAP 進行使用者驗證和使用者資訊獲取的必要步驟了。 Community 管理員 現在可以完成其餘的任務:

  1. 增加使用者
  2. 將使用者組繫結到 LDAP 中的組
  3. 配置和分派許可權

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780914/viewspace-588981/,如需轉載,請註明出處,否則將追究法律責任。

相關文章