z/OS Connect のセキュリティーの構成

z/OS Connect アプリケーションには、zosConnectAccess ロールでも許可された認証ユーザーがアクセスできます。 サービス定義レベルでグループ許可を構成できます。 グループ許可は、SAF および LDAP のグループ・タイプにサポートされています。

このタスクについて

z/OS Connect アプリケーションにアクセスするには、その前にユーザーが認証されなければなりません。

z/OS Connect で要求されるデフォルトの認証メカニズムは CLIENT_CERT です。 ユーザーは、z/OS Connect アプリケーションにアクセス可能になるために、zosConnectAccess ロールで許可される必要があります。 必要なトランスポート・メカニズムは HTTPS です。

requireSecure と requireAuth の属性定義を設定することで、z/OS Connect がセキュリティー制約なしで実行されるように構成することができます。 これらの属性は、構成されたすべてのサービスに適用される zosConnectManager エレメントで定義されるか、 特定サービスの zosConnectService エレメントで定義されます。 zosConnectService エレメントとグローバルな zosConnectManager エレメントの両方で属性が定義された場合は、 zosConnectService で定義された値が使用されます。 これらの属性について詳しくは『、zosConnectManager』と『zosConnectService』を参照してください。

より高度なセキュリティーを提供するために、 z/OS Connect では、SAF または LDAP で構成可能なグループ許可に基づいてアクセスを制約することができます。 このために、z/OS Connect では、次の 3 つの権限レベルを定義しています。

  • 管理者 - 管理者権限を持つユーザーは、サービスの照会、サービスに関する操作タスクの実行、サービスの起動を行う権限を持ちます。
  • 操作 - 操作権限を持つユーザーは、サービスに関するタスク (停止、開始など) を実行することができますが、 サービスを起動する権限は持ちません。
  • 起動 - 起動権限を持つユーザーは、サービスを起動することができますが、その他の権限は持ちません。

z/OS Connect には、com.ibm.wsspi.zos.connect.Interceptor() SPI を実装した許可インターセプターが用意されています。 このインターセプターは、SAF と LDAP の両方をサポートします。 このインターセプターは、内部で getGroupsforUser() セキュリティー API を使用して現行ユーザーが所属するグループを判別し、サービス定義またはグローバル定義で指定されたグループと、これらのグループを比較します。

z/OS Connect 提供の許可インターセプターが有効になっている場合、 ユーザーに関連付けられた RACF または LDAP のグループ名は、 グローバル定義またはサービス定義のレベルで前に記述されているグループに関連付けることもできます。 グローバル・レベルでは、<zosConnectManager> 構成エレメントの下に定義することができます。 このレベルで定義される属性には、globalAdminGroup、globalOperationsGroup、および globalInvokeGroup があります。 これらが構成された場合、すべての構成済みサービスに適用されます。 さらに細分化が必要であれば、 サービス・レベルで <zosConnectService> 構成エレメントの下にグループを構成することも可能です。このレベルで定義される属性は、adminGroup、operationsGroup、および invokeGroup です。 これらの値が指定された場合は、グローバルで定義された値がオーバーライドされます。

許可インターセプターがグローバル・レベルで定義されると、 すべてのサービスに対して 1 回許可検査が行われます。 複数のサービスおよびサービス・ディスカバリーについて /zosConnect/operations/getStatistics 要求を使用した場合、 以下の条件を満たすときに、z/OS Connect に登録されたすべてのサービスに関する情報をユーザーは取得します。
  • ユーザーが許可検査を渡す
  • サービス情報が戻ることを阻害する条件が他にない
サービス・レベル定義に許可インターセプターが入っている場合、 それらのサービスの情報へのアクセスは、そのサービス定義内のユーザーに限定されます。

例えば、許可インターセプターがサービス・レベルで定義された以下の構成があるとします。

ユーザー "USR1" グループ: ADMINS1、ADMINS2

ユーザー "USR2" グループ: OPERATS1

ユーザー "USR3" グループ: ADMINS2、OPERATS1

z/OS Connect 構成:
<!-- z/OS Connect global configuration. It applies to all services. -->
<zosConnectManager globalAdminGroup="ADMINS1"  globalOperationsGroup="OPERATS1" globalInvokeGroup="INVOKES1"/>

<!-- Interceptor configuration -->
<zosConnectInterceptors id="interceptorList1"  interceptorRef="zosConnectAuthorizationInterceptor"/>
<authorizationInterceptor id="zosConnectAuthorizationInterceptor"/>

<!--Service 1-->
<zosConnectService serviceName="service1" serviceRef="service1Ref" adminGroup="ADMINS2" operationsGroup="OPERATS2"   interceptorsRef="interceptorList1" .../>

<!--Service 2-->
<zosConnectService serviceName="service2" serviceRef="service2Ref" operationsGroup="OPERATS2"   interceptorsRef="interceptorList1" .../>

<!--Service 3-->
<zosConnectService  serviceName="service3" serviceRef="service3Ref" adminGroup="ADMINS1" interceptorsRef="interceptorList1" .../>
表 1. . ユーザーのデータ・アクセス
  service1 service2 service3
USR1 X X X
USR2 -- -- X
USR3 X -- X

手順

  1. z/OS Connect アプリケーションにアクセスするためのユーザー認証をセットアップします。 クライアント証明書認証をセットアップするには、 クライアント証明書認証に対応する Web アプリケーションおよびサーバーの構成に関する文書を参照してください。 レジストリーによって認証をセットアップするには、Liberty でのユーザーの認証に関する文書を参照してください。

    例 1: Liberty の基本ユーザー・レジストリーの構成に関する文書で説明されたステップを使用した基本レジストリー構成。

    Server.xml:
    <featureManager>
    	<feature>zosConnect-1.0</feature> 
    	<feature>ssl-1.0</feature>     
    	<feature>appSecurity-2.0</feature>
    </featureManager>
    
    <!-- Define a keystore. --> 
    <keyStore id="defaultKeyStore" password="Liberty"/>
    
    
    <!-- Fail over to basic authenitcation --> 
    <webAppSecurity allowFailOverToBasicAuth="true"/> 
    
    
    <!-- Basic registry definition -->
    <basicRegistry id="basic1" realm="zosConnect">    
    	<user name="Fred" password="fredpwd"/>
    </basicRegistry>

    例 2: z/OS の SAF レジストリーの活動化と構成に関する文書で説明されたステップを使用した SAF レジストリー構成。

    Server.xml:
    <featureManager>
    	<feature>zosConnect-1.0</feature>  
    	<feature>ssl-1.0</feature>    
    	<feature>appSecurity-2.0</feature> 
    	<feature>zosSecurity-1.0</feature> 
    </featureManager>
    <!-- Saf registry definition -->  
    <safRegistry id="saf" realm="zosConnect"/>

    RACF のセットアップを行います。 詳細については、Liberty の WZSSAD を使用した z/OS セキュリティー・リソースへのアクセスに関する文書に従ってください。

    # Define the APPL class based on the default security prefix called BBGZDFLT.
    RDEFINE APPL BBGZDFLT UACC(NONE)                                 
    
    # Activate the APPL class. 
    SETROPTS CLASSACT(APPL)   
    
    # For FRED to be authenticated by the server, assign FRED READ access to the APPLID in the APPL class.                                       
    PERMIT BBGZDFLT ID(FRED) ACCESS(READ) CLASS(APPL)
    
    # The unauthenticated user ID (i.e. WSGUEST by default) requires READ access to the APPLID in the APPL class
    PERMIT BBGZDFLT CLASS(APPL) ACCESS(READ) ID(unauthenticatedUserId)  
    
    # Grant the server permission to make authentication calls.
    RDEFINE SERVER BBG.SECPFX.BBGZDFLT UACC(NONE)
    PERMIT BBG.SECPFX.BBGZDFLT ID(serverId) ACCESS(READ) CLASS(SERVER)

    SAFCRED 許可サービス・ルーチンを使用する許可が、サーバーに付与されていなければなりません。 詳細については、z/OS 用 Liberty での z/OS 許可サービスの使用可能化に関する文書を参照してください。

  2. ユーザーに zosConnectAccess ロールを割り当てることで、z/OS Connect アプリケーションにアクセスするためのユーザー許可をセットアップします。 これを行うには、Liberty 上のアプリケーションの許可の構成に関する文書を参照してください。
    ステップ 1 の例 1 で説明した server.xml ファイル構成に以下を追加します。
    <authorization-roles id="zos.connect.access.roles"> 
    	<security-role name="zosConnectAccess">           
    		<user name="Fred"/>  
    	</security-role>  
    </authorization-roles>

    例 2: SAF/RACF を使用した許可構成:

    1. ステップ 1 の例 2 で説明した構成に以下を追加します。
      <safAuthorization id="saf2" />
    2. RACF のセットアップを行います。 以下は、FRED に zosConnectAccess ロールを割り当てるコマンドです。
      RDEFINE EJBROLE BBGZDFLT.zos.connect.access.roles.zosConnectAccess 
      UACC(NONE)                                                       
      PERMIT BBGZDFLT.zos.connect.access.roles.zosConnectAccess 
      CLASS(EJBROLE) ID(FRED) ACCESS(READ)
  3. (オプション) z/OS Connect の許可インターセプターを使用する場合に、許可のグループを定義します。
    例 1: SAF を使用する場合の RACF グループの定義:
    ADDGROUP OPERATS1 OMVS(GID(xxx)) OWNER(xxxx)
    
    # Add user FRED under the OPERATS1 group
    ADDUSER FRED DFLTGRP(OPERATS1) OMVS(UID(xxx) HOME(/xxxx) PROGRAM(/bin/sh)) NAME('USER FRED') NOPASSWORD
    ALTUSER FRED PASSWORD(xxxxxxx) NOEXPIRED
    
    # Connect user Fred to the OPERATS1 group
    CONNECT FRED GROUP(OPERATS1)

    これにより、z/OS Connect の許可インターセプターで使用される許可グループを定義する場合に、グループ「OPERATS1」を使用できます。 例えば、 <zosConnectManager globalOperationsGroup="OPERATS1"/> または <zosConnectService serviceRef="service1" operationsGroup="OPERATS1"/> などです。


トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_zconnect_security.html