パーミッション: 原則  目次

Oracle Service Registryでは、パーミッションを使用して管理者がユーザーを管理できます。パーミッションの特徴は、次のとおりです。

ここでは、パーミッションについて、例やパーミッションの構成に関する説明を使用して詳しく説明します。

パーミッションは、インタフェースにおいて操作を実行する権限として定義されます。言い換えると、パーミッションはインタフェースでメソッドを処理できる能力を表します。 パーミッションは、Oracle Service Registryのもう1つの権限メカニズムであるアクセス制御リストとは大きな違いがあります。

アクセス制御を使用すると、ユーザーは基本的なUDDIデータ構造(businessEntity、businessService、bindingTemplateおよびtModel)へのアクセスを制御できます。 Oracle Service Registryのアクセス制御は、アクセス制御リスト(ACL)によって提供されています。ACLは、ユーザーまたはグループに付与されたパーミッションに基づいています。 つまり、ACLのコンテキストでは、ユーザーはレジストリ管理者または他のユーザーによって、そのユーザーに許可されたOracle Service Registry内の情報にのみアクセスできます。アクセス制御リストの詳細は、「ユーザーズ・ガイド」の「アクセス制御」を参照してください。

アクセス制御リストはエンティティの表示を制限するため、Oracle Service Registry内のデータへのアクセスを制限します。一方、パーミッションはインタフェースへのアクセスを制限します。ACLは、UDDI構造の表示を制限することによってユーザーを制限します。パーミッションは、インタフェースの表示を操作することによってユーザーを制限します。

パーミッションの定義  目次

パーミッションには、次の2つの基本的なタイプがあります。

ApiUserPermission

ApiUserPermissionは、インタフェースのインタフェース名とメソッドで構成されています。このパーミッションにより、あるAPIの指定されたメソッドに対して、ユーザーからの一般的なアクセスが可能になります。ApiUserPermissionを使用すると、ユーザーは一般ユーザーとしてインタフェースのメソッドを呼び出すことができます。通常、ユーザーが呼出しを実行するには、このパーミッションが必要です。

ApiManagerPermission

ApiManagerPermissionも、インタフェースとメソッドの名前で構成されています。このパーミッションを使用すると、ユーザーは、API上の指定されたメソッドを呼び出すことができます。これは、ApiUserPermissionと同様です。唯一の違いは、ユーザーの意味です。ユーザーにApiManagerPermissionが付与されている場合、そのユーザーは特権ユーザーとみなされます。多くのAPIコールにおいて、その結果は、ユーザーの持つ権限に応じて異なります。

ConfigurationManagerPermission

ConfigurationManagerPermissionは、構成ファイルとメソッドの名前で構成されています。メソッドの名前は、getまたはsetのいずれかです。ConfigurationManagerPermissionをgetメソッドと組み合せて使用すると、ユーザーは構成ファイルのデータを読み取る(取得する)ことができます。また、ConfigurationManagerPermissionをsetメソッドと組み合せて使用すると、ユーザーは構成に書込みを行うことができます。

Oracle Service Registryのパーミッション・ルール  目次

すべてのパーミッションには、次のルールがあります。

  • パーミッションとは、APIのメソッドを処理する能力のことです。

  • パーミッションは、パーミッションのタイプ(ApiUserPermission、ApiManagerPermission、ConfigurationManagerPermission)、名前(インタフェースまたは構成の名前)および操作(メソッドの名前)で構成されています。

    アスタリスクのワイルド・カード(*)を使用すると、インタフェース、構成または操作について、すべての名前を置き換えることができます。

  • パーミッションに階層はありません。ユーザーのパーミッションを設定する能力も、1つのパーミッション(PermissionApiの一部のメソッド用)です。

  • Oracle Service Registry管理者には、すべてのAPIのメソッドすべてに対するすべてのパーミッションが付与されています。

  • パーミッションは、常に明示的です。つまり、パーミッションは、何が可能であるかまたは許可されているかを示します。パーミッションに基づいて、ユーザーは操作(APIのメソッド)を実行できます。明示的に許可されていない操作はすべて拒否されます。

  • パーミッションは、個別のユーザーまたはメンバーのグループに対して設定できます。各ユーザーは、グループsystem#everyoneのメンバーであるため、このグループに関するデフォルトのパーミッションがすべてのユーザーに付与されています。

詳細は、「データ・アクセス制御: 原則」を参照してください。

パーミッションの設定  目次

この項では、パーミッションの構成について説明します。パーミッションの設定は、管理者の観点で説明されています。

ユーザーのパーミッションを設定する基本的な方法には、次の3つがあります。

  • PermissionApiのメソッドを実行します。ユーザーは、適切なパーミッションが付与されている場合にのみ、これらのメソッドを呼び出すことができます。

  • SOAPまたはレジストリ・コントロールを経由してメソッドを呼び出します。

  • 構成ファイルのパーミッションを直接変更します。

PermissionApiには、パーミッションを管理するためのメソッドがいくつか含まれています。このようなメソッドには、次のものがあります。

get_permission

ユーザーのパーミッションをすべて取得する場合に使用します。ApiManagerPermissionを保持しているユーザーは、他のユーザーのパーミッションを取得できます。ApiUserPermissionのみを保持しているユーザーは、自身のパーミッションのみを取得できます。

PermissionApiのメソッドに対してApiUserPermissionApiManagerPermissionのいずれも保持していないユーザーは、このメソッドを呼び出すことはできません。

set_permission

ユーザーが他のユーザーのパーミッションを設定できるようにします。このコールには、ApiManagerPermissionが必要です。

get_permissionDetail

get_permissionと似ているこのメソッドは、一度に複数のユーザーに対して呼び出すことができます。

get_permissionは、入力パラメータとしてプリンシパルを使用します。一方、get_permissionDetailは、プリンシパルの配列を入力パラメータとして使用します。3人のユーザーのパーミッションを確認するには、get_permissionを3回呼び出すか、またはget_permissionDetailを1回呼び出します。

who_hasPermission

あるパーミッションを所有しているユーザーを検出できます。

重要重要

構成ファイルのパーミッションを直接変更することはお薦めできません。ただし、管理者が新しいユーザーのデフォルトのパーミッションを変更する(グループsystem#everyoneのパーミッションを変更する)必要がある場合は、これが唯一の方法になります。これらのパーミッションを変更する前に、構成の予備コピーを作成してください。特殊なユーザーまたはグループのパーミッションは、ファイルpermission_list.xmlに格納されます。

パーミッションとユーザー・ロール  目次

多くのシステムでは、パーミッションに加えて、ユーザー・ロールを使用します。ユーザー・ロールは、通常はパーミッションのセットです。システムにあらかじめ定義されているか、またはユーザーが定義します。 Oracle Service Registryでは、ユーザー・ロールのメカニズムはグループに基づいて実装されます。管理者は、個別のユーザーだけでなくグループのパーミッションも設定できます。ユーザーとロールの関係を制限する以外に、グループを作成し、作成したグループのパーミッションを設定して、そのグループにユーザーを追加することもできます。 Oracle Service Registryにおけるこのグループ・メカニズムは、ユーザー・ロールのメカニズムとほぼ同じであり、ユーザー・ロールのかわりに使用されます。詳細は、「グループ管理」を参照してください。

ApiManagerPermissionのリファレンス  目次

ApiManagerPermissionがあると、ユーザーは特権モードで操作を実行できます。次の表に、APIおよび操作について、特権モードで実行できる操作を示します。

表1 Account API(org.systinet.uddi.account.AccountApi)

操作(アクション)説明
find_userAccount使用されません。
get_userAccount外部アカウントを取得できます。
save_userAccount任意のアカウントを保存または更新できます。デフォルト以外の制限を設定できます。メールの確認を省略できます(必要な場合)。
delete_userAccount任意のアカウントを削除できます。
enable_userAccount使用されません。

表2 Admin Utils API(org.systinet.uddi.admin.AdministrationUtilsApi)

操作(アクション)説明
deleteTModeldeleteTModel操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
replaceKeyreplaceKey操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
cleanSubscriptionHistorycleanSubscriptionHistory操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
resetDiscoveryURLsresetDiscoveryURLs操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
transform_keyedReferencestransform_keyedReferences操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
rebuild_cacherebuild_cache操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
replaceURLreplaceURL操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。

表3 Category API(org.systinet.uddi.client.category.v3.CategoryApi)

操作(アクション)説明
set_categoryset_category操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
add_categoryadd_category操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
move_categorymove_category操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
delete_categorydelete_category操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
find_category使用されません。
get_category使用されません。
get_rootCategory使用されません。
get_rootPath使用されません。

表4 Custody API(org.systinet.uddi.client.custody.v3.UDDI_CustodyTransfer_PortType)

操作(アクション)説明
get_transferToken外部エンティティに対するget_transferToken操作を呼び出すことができます。
discard_transferToken外部トークンに対するdiscard_transferToken操作を呼び出すことができます。

表5 Group API(org.systinet.uddi.group.GroupApi)

操作(アクション)説明
find_group外部プライベート・グループを検索できます。
get_group外部プライベート・グループを取得できます。
save_group外部グループを保存または更新できます。
delete_group外部グループを削除できます。
where_amI使用されません。
find_user使用されません。
add_user使用されません。
remove_user使用されません。

表6 Inquiry V1 API(org.systinet.uddi.client.v1.InquireSoap)

操作(アクション)説明
find_bindingACL権限に関係なく、すべてのbindingTemplateを検索できます。
find_businessACL権限に関係なく、すべてのbusinessEntityを検索できます。
find_servicesACL権限に関係なく、すべてのサービスを検索できます。
find_tModelACL権限に関係なく、すべてのtModelを検索できます。
get_bindingDetailACL権限に関係なく、任意のbindingTemplateを取得できます。
get_businessDetailACL権限に関係なく、任意のbusinessEntityを取得できます。
get_businessDetailExt使用されません。
get_serviceDetailACL権限に関係なく、任意のbusinessServiceを取得できます。
get_tModelDetailACL権限に関係なく、任意のtModelを取得できます。

表7 Inquiry V2 API(org.systinet.uddi.client.v2.Inquire)

操作(アクション)説明
find_bindingACL権限に関係なく、すべてのbindingTemplateを検索できます。
find_businessACL権限に関係なく、すべてのbusinessEntityを検索できます。
find_relatedBusinessesACL権限に関係なく、すべての関連するbusinessEntityを検索できます。
find_servicesACL権限に関係なく、すべてのサービスを検索できます。
find_tModelACL権限に関係なく、すべてのtModelを検索できます。
get_bindingDetailACL権限に関係なく、任意のbindingTemplateを取得できます。
get_businessDetailACL権限に関係なく、任意のbusinessEntityを取得できます。
get_businessDetailExt使用されません。
get_serviceDetailACL権限に関係なく、任意のbusinessServiceを取得できます。
get_tModelDetailACL権限に関係なく、任意のtModelを取得できます。

表8 Inquiry V3 API(org.systinet.uddi.client.v3.UDDI_Inquiry_PortType)

操作(アクション)説明
find_bindingACL権限に関係なく、すべてのbindingTemplateを検索できます。
find_businessACL権限に関係なく、すべてのbusinessEntityを検索できます。
find_relatedBusinessesACL権限に関係なく、すべての関連するbusinessEntityを検索できます。
find_servicesACL権限に関係なく、すべてのサービスを検索できます。
find_tModelACL権限に関係なく、すべてのtModelを検索できます。
get_bindingDetailACL権限に関係なく、任意のbindingTemplateを取得できます。
get_businessDetailACL権限に関係なく、任意のbusinessEntityを取得できます。
get_operationalInfo使用されません。
get_serviceDetailACL権限に関係なく、任意のbusinessServiceを取得できます。
get_tModelDetailACL権限に関係なく、任意のtModelを取得できます。

表9 Permission API(org.systinet.uddi.permission.PermissionApi)

操作(アクション)説明
get_permission外部アカウントおよびグループのget_permission操作を呼び出すことができます。
set_permissionset_permission操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
who_hasPermissionwho_hasPermission操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
find_principalfind_principal操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。

表10 Publishing V1 API(org.systinet.uddi.client.v1.PublishSoap)

操作(アクション)説明
delete_bindingACL権限に関係なく、任意のbindingTemplateを削除できます。
delete_businessACL権限に関係なく、任意のbusinessEntityを削除できます。
delete_serviceACL権限に関係なく、任意のbusinessServiceを削除できます。
delete_tModelACL権限に関係なく、任意のtModelを削除できます。
save_binding * ACL権限に関係なく、任意のbusinessServiceで任意のbindingTemplateを更新、または新しいbindingTemplateを作成できます。* バインド制限チェックを省略します。
save_business * ACL権限に関係なく、任意のbusinessEntityを更新できます。* ビジネス制限チェックを省略します。
save_service * ACL権限に関係なく、任意のbusinessEntityで任意のbusinessServiceを更新、または新しいbusinessServiceを作成できます。* サービス制限チェックを省略します。
save_tModel * ACL権限に関係なく、任意のtModelを更新できます。* tModel制限チェックを省略します。
get_authToken 使用されません。
discard_authToken 使用されません。
get_registeredInfo 使用されません。
validate_categorization 使用されません。

表11 Publishing V2 API(org.systinet.uddi.client.v2.Publish)

操作(アクション)説明
delete_bindingACL権限に関係なく、任意のbindingTemplateを削除できます。
delete_businessACL権限に関係なく、任意のbusinessEntityを削除できます。
delete_serviceACL権限に関係なく、任意のbusinessServiceを削除できます。
delete_tModelACL権限に関係なく、任意のtModelを削除できます。
save_binding * ACL権限に関係なく、任意のbusinessServiceで任意のbindingTemplateを更新、または新しいbindingTemplateを作成できます。* バインド制限チェックを省略します。
save_business * ACL権限に関係なく、任意のbusinessEntityを更新できます。* ビジネス制限チェックを省略します。
save_service * ACL権限に関係なく、任意のbusinessEntityで任意のbusinessServiceを更新、または新しいbusinessServiceを作成できます。* サービス制限チェックを省略します。
save_tModel * ACL権限に関係なく、任意のtModelを更新できます。* tModel制限チェックを省略します。
add_publisherAssertions add_publisherAssertions操作におけるアサーション制限チェックを省略します。
set_publisherAssertions set_publisherAssertions操作におけるアサーション制限チェックを省略します。
delete_publisherAssertions 使用されません。
get_publisherAssertions 使用されません。
get_assertionStatusReport 使用されません。
get_authToken 使用されません。
discard_authToken 使用されません。
get_registeredInfo 使用されません。

表12 Publishing V3 API(org.systinet.uddi.client.v3.UDDI_Publication_PortType)

操作(アクション)説明
delete_bindingACL権限に関係なく、任意のbindingTemplateを削除できます。
delete_businessACL権限に関係なく、任意のbusinessEntityを削除できます。
delete_serviceACL権限に関係なく、任意のbusinessServiceを削除できます。
delete_tModelACL権限に関係なく、任意のtModelを削除できます。
save_binding * ACL権限に関係なく、任意のbusinessServiceで任意のbindingTemplateを更新、または新しいbindingTemplateを作成できます。* バインド制限チェックを省略します。
save_business * ACL権限に関係なく、任意のbusinessEntityを更新できます。* ビジネス制限チェックを省略します。
save_service * ACL権限に関係なく、任意のbusinessEntityで任意のbusinessServiceを更新、または新しいbusinessServiceを作成できます。* サービス制限チェックを省略します。
save_tModel * ACL権限に関係なく、任意のtModelを更新できます。* tModel制限チェックを省略します。
add_publisherAssertions add_publisherAssertions操作におけるアサーション制限チェックを省略します。
set_publisherAssertions set_publisherAssertions操作におけるアサーション制限チェックを省略します。
delete_publisherAssertions 使用されません。
get_publisherAssertions 使用されません。
get_assertionStatusReport 使用されません。
get_registeredInfo 使用されません。

表13 Replication V3 API(org.systinet.uddi.replication.v3.ReplicationApi)

操作(アクション)説明
replicatereplicate操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。

表14 Statistics API(org.systinet.uddi.statistics.StatisticsApi)

操作(アクション)説明
get_accessStatisticsget_accessStatistics操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
reset_accessStatisticsreset_accessStatistics操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
get_structureStatisticsget_structureStatistics操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。

表15 Subscription V3 API(org.systinet.uddi.client.subscription.v3.UDDI_Subscription_PortType)

操作(アクション)説明
delete_subscriptionコール元がサブスクリプション所有者でない場合でも、任意のサブスクリプションを削除できます。
save_subscription * コール元がサブスクリプション所有者でない場合でも、任意のサブスクリプションを更新できます。* サブスクリプション制限チェックを省略します。
get_subscriptionResultsコール元がサブスクリプション所有者でない場合でも、任意のサブスクリプションの結果を取得できます。
get_subscriptionsコール元がサブスクリプション所有者でない場合でも、任意のサブスクリプションを取得できます。

表16 Taxonomy API(com.systinet.uddi.taxonomy.v3.TaxonomyApi)

操作(アクション)説明
get_taxonomy分類内のカテゴリをすべて取得できます。
find_taxonomy使用されません。
save_taxonomysave_taxonomy操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
delete_taxonomydelete_taxonomy操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
download_taxonomydownload_taxonomy操作を呼び出すことができます(ApiUserPermissionでこの操作を呼び出すことはできません)。
upload_taxonomyupload_taxonomy操作を呼び出すことができます (ApiUserPermissionでこの操作を呼び出すことはできません)。