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 です。 これらの値が指定された場合は、グローバルで定義された値がオーバーライドされます。
- ユーザーが許可検査を渡す
- サービス情報が戻ることを阻害する条件が他にない
例えば、許可インターセプターがサービス・レベルで定義された以下の構成があるとします。
ユーザー "USR1" グループ: ADMINS1、ADMINS2
ユーザー "USR2" グループ: OPERATS1
ユーザー "USR3" グループ: ADMINS2、OPERATS1
<!-- 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" .../>
service1 | service2 | service3 | |
---|---|---|---|
USR1 | X | X | X |
USR2 | -- | -- | X |
USR3 | X | -- | X |