Klocwork プロジェクトへのアクセスの有効化

このトピックの内容:

この記事では、次のことを説明します。

  • ユーザー管理
  • 役割管理
  • 権限管理

前提条件

  • アクセス制御メソッドを構成する必要があります。アクセス制御のセットアップを参照してください。
  • "プロジェクトルート管理者" の役割を持つユーザーでない場合、プロジェクトルート管理者がパーミッション ("役割の管理" と"ユーザーの管理"など) を付与します。さまざまな作業に必要なパーミッションは以下で説明します。
Validate にログインするには、Validate へのアクセスをご覧ください。

アクセス制御について

セキュリティ機能として、Klocwork により、Klocwork 管理者は誰が Klocwork に、どのアクセスのレベルで、どのプロジェクトにアクセスできるかを制御できます。

projects_root へのアクセス制御メソッドは、基本、NIS および LDAP のいずれかから、組織が選択します。これらの選択については、アクセス制御のセットアップで説明されています。

基本、NIS、または LDAP アクセス制御: Validate の統合プロジェクトへのアクセスを制御できます。役割を定義します。役割はパーミッションのコレクションです。ユーザーまたはグループは、アクセスのレベルを制御する役割を割り当てられるまで、Klocwork プロジェクトについては何もできません。

NIS、または LDAP アクセス制御: ユーザーとグループが既に存在する場合、NIS または LDAP の管理者のみが変更できます。ただし、追加のグループを作成し、管理することはできます。NIS または LDAP のアクセス制御の役割を持つユーザーが独自のグループを設定する場合は、グループの作成と管理を参照してください。

作成するグループと NIS または LDAP グループとの違いについて

  • Validate サーバー上の Validate でカスタムグループを作成および削除できますが、NIS または LDAP 管理者は NIS または LDAP サーバー上で NIS と LDAP のグループを作成/削除します。
  • Validate では、NIS または LDAP ユーザーをカスタムグループに追加または削除することはできますが、NIS または LDAP グループに追加または削除することはできません。
  • カスタムグループは Klocwork ツールでのみ表示できます。

つまり、Validate では、グループを作成し、NIS または LDAP ユーザーをそのグループに追加し、作成されたそのグループに役割を割り当てることができます。カスタムグループは Validate サーバーの再起動後も維持され、LDAP 情報が更新されるとカスタムグループも更新されます (たとえば、LDAP から削除されたユーザーはカスタムグループからも削除されます)。

理解しておくべきこと

NIS または LDAP の場合、[役割の設定] から開始できます。基本アクセス制御の役割を持っている場合は、[ユーザーの作成] から開始します。

基本アクセス制御で Validate に初回ログインする場合

基本アクセス制御を設定した後、Validate にログインする場合は、アクセス制御を設定したユーザーのユーザー ID を入力する必要があります。このとき、パスワードは不要です。

ユーザーの作成と管理 (基本アクセス制御)

前提条件: "ユーザーの管理" パーミッション。

基本アクセス制御の役割を持っている場合、役割を定義してユーザーやグループに割り当てる前に、ユーザーやグループを作成する必要があります。

ユーザーを作成するには、以下の操作を行います。

  1. Validate で、[ユーザー] をクリックします。ユーザーページが表示されます。
  2. [新しいアカウントまたはグループの作成] をクリックします。アカウントの追加ページが表示されます。
  3. そのユーザーのユーザー ID を入力します。たとえば、"John Smith" または "jsmith" です。
  4. 必要なら、パスワードを入力して、そのパスワードを確定します。
  5. [OK] をクリックします。

    ユーザーリストにユーザー ID が表示されます。デフォルトでは、ユーザーに同じ役割が付与され、「ゲスト」アカウントと同じグループに含まれます。

ユーザーを削除するには、以下の操作を行います。

  1. Validate で、[ユーザー] をクリックします。ユーザーページが表示されます。
  2. [アカウント] からユーザーを特定し、右側のごみ箱アイコン Image:Review trash can icon.png をクリックします。

    ユーザーはシステムから永久に削除されます。

ユーザーのパスワードを変更するには、以下の操作を行います。

  1. Validate で、[ユーザー] をクリックします。ユーザーページが表示されます。
  2. 左のペインの [アカウント] で、該当するユーザーをクリックします。右側にユーザーの詳細が表示されます。
  3. [情報] タブで、[パスワードの変更] をクリックします。パスワードフィールドが表示されます。
  4. パスワードを入力して、そのパスワードを確定します。
  5. [OK] をクリックします。

グループの作成と管理

前提条件: "ユーザーの管理" パーミッション。

基本、NIS または LDAP のアクセス制御の役割を持っている場合、必要に応じて独自のグループを作成できます。グループにしておくと、数名のユーザーをまとめて一度にアクセス制御したり、委任したりできるため、管理が容易になります。ユーザーは複数のグループに所属することができます。1 つのグループに割り当てられたユーザーは同じ役割や異なる役割を持つことができます。ユーザーをグループに、またはグループをユーザーに割り当てることができます。多数のユーザーを整理する場合は、ユーザーをグループに割り当てる方が有効です。1 人のユーザーを追加または削除する場合は、ユーザーから開始する方が有効です。

ある役割をユーザーのグループに適用し、その役割を 1 人のユーザーだけから削除する方が効率的な場合は、そういうオプションもあります。役割の割り当てを参照してください。

あるユーザーが組織から去る、または Klocwork projects_root にアクセスしなくなる場合、ユーザーリストからそのユーザーを削除し、アクセスできないようにすることができます。Validate で、NIS または LDAP からのユーザーまたはグループを削除することはできません。Validate で作成したユーザーまたはグループは削除できます。

ユーザーのリストが長い場合、検索フィールドを使用するとアカウントの特定が容易になります。数文字だけ入力して検索することも、ワイルドカードのアスタリスク (*) を使用することもできます。

グループを作成するには、以下の操作を行います。

  1. Validate で、[ユーザー] をクリックします。ユーザーページが表示されます。
  2. [新しいアカウントまたはグループの作成] をクリックします。アカウントの追加ページが表示されます。
  3. デフォルトで、ユーザーアカウントが作成されます。代わりに、グループを選択します。
  4. 新しいグループの名前を入力して [OK] をクリックします。

    アカウントリストに新しいグループが表示され、右側のペインにその詳細が表示されます。

ユーザーをグループに追加するには、以下の操作を行います。

  1. ユーザーをグループに追加するには、テキストフィールドへの入力から始めます。オートコンプリート機能により、一致する候補が一覧表示されます。
  2. [追加] をクリックします。[ユーザー] の下のグループメンバーのリストにユーザーが表示されます。

グループからユーザーを削除するには、以下の操作を行います。

  1. Validate で、[ユーザー] をクリックします。ユーザーページが表示されます。
  2. [アカウント] からグループを特定し、それを選択します。右側のペインにそのグループの詳細が表示されます。
  3. [情報] タブの [ユーザー] の下で、グループから削除するユーザーの横にあるごみ箱アイコン Image:Review trash can icon.png をクリックします。

    グループからユーザーが削除されます。(ただし、ユーザーは削除されません。

グループを削除するには、以下の操作を行います。

  1. Validate で、[ユーザー] をクリックします。ユーザーページが表示されます。
  2. [アカウント] からグループを特定し、右側のごみ箱アイコン Image:Review trash can icon.png をクリックします。

    そのグループはシステムから永久に削除されます。

役割の設定

前提条件: 「役割の管理」パーミッション。

役割はパーミッションのコレクションです。複数の役割にパーミッションを付与することができます。projects_root 全体に (すべてのプロジェクトに) 適用できるパーミッションもあります。特定のプロジェクトまたはすべてのプロジェクトのいずれかに適用できるパーミッションもあります。たとえば、あるユーザーは特定のプロジェクトのみを解析するパーミッションを持っており、別のユーザーは projects_root にあるすべてのプロジェクトを解析するパーミッションを持っているかもしれません。

また、パーミッションがユーザーのアクセス権を制御します。たとえば、ユーザーがコード レビューに招待されたにもかかわらず表示できないというアラートを受け取る場合、これは、当該プロジェクトやファイルへの適切なパーミッションがないことを意味しています。この場合、ユーザーはプロジェクト ルート管理者から当該プロジェクトやファイルへアクセスするための適切なパーミッションを付与される必要があります。

デフォルトの役割

次の表に、デフォルトで与えられる役割とそのデフォルトのパーミッションを示します。

カスタムの役割を作成した場合、プロジェクト ルート管理者およびプロジェクト管理者の役割に関する、下の暗黙的なパーミッションは使用できません。

役割 デフォルトのパーミッション
プロジェクト ルート管理者 すべて (編集できない) この役割に暗示されたパーミッション:
  • レポートの管理 (レポートを公開にする)
  • すべてのユーザーのユーザーパスワードの変更 (基本認証のみ)
  • 自分のアプリケーショントークンの管理

  • すべてのユーザーのアプリケーショントークンの管理

プロジェクト管理者
  • Web API アクセス
  • クロスプロジェクトの同期を実行する
  • ストリームの作成
  • プロジェクト設定の変更
  • プロジェクトの削除
  • ストリームの削除
  • ビルドの作成
  • ビルドの削除
  • CI ビルドの作成
  • CI ビルドの削除
  • ビルドの自動削除
  • 役割の割当て
  • ソースファイルへのアクセス
  • モジュールの管理
  • ビューの管理
  • ローカル構成の使用
  • 指摘ステータスの変更
  • 指摘所有者の変更

ストリーム管理者
  • Web API アクセス
  • クロスプロジェクトの同期を実行する
  • ストリームの作成
  • プロジェクト設定の変更
  • ストリームの削除
  • ビルドの作成
  • ビルドの削除
  • CI ビルドの作成
  • CI ビルドの削除
  • ビルドの自動削除
  • 役割の割当て
  • ソースファイルへのアクセス
  • ビューの管理
  • ローカル構成の使用
  • 指摘ステータスの変更
  • 指摘所有者の変更

ビルドエンジニア
  • プロジェクト設定の変更
  • ビルドの作成
  • ビルドの削除
デベロッパー
  • ソースファイルへのアクセス
  • ローカル構成の使用
  • 指摘ステータスの変更
  • 指摘所有者の変更

マネージャー
  • ソースファイルへのアクセス
  • 指摘ステータスの変更
  • 指摘所有者の変更

プロジェクトを作成すると、デフォルトでプロジェクト管理者の役割が割り当てられます。

使用できるパーミッション

projects_root 全体 (すべてのプロジェクト) に適用されるパーミッション

パーミッションの名前 このパーミッションを持つユーザー (またはグループ) ができること
プロジェクトの作成 プロジェクトの作成
役割の管理 役割の作成または削除、役割へのパーミッションの追加
ユーザー管理 ユーザーとグループの作成と削除、グループへのユーザーの追加、グループからのユーザーの削除
すべてのユーザーのトークンを管理 すべてのユーザーのユーザートークンを作成、削除、または変更
自分のトークンを管理 自分のユーザートークンのみを作成、削除、または変更
ユーザーセッションを管理

ユーザーを Validate セッションからログアウトする

レポートの管理 チーム全体に公開するレポートの制御
ユーザーパスワードの変更 すべてのユーザーのユーザーパスワードの変更 (基本認証のみ)
Web API への変更 管理者に Klocwork データベースに対するスクリプト可能なインターフェイスを提供する Web API にアクセスする
クロスプロジェクトの同期を実行する 指定プロジェクト間で変更を加えたユーザーの ID と共に、指摘ステータスの更新とコメントを同期します。

特定のプロジェクトまたは projects_root 全体 (すべてのプロジェクト) のいずれかに適用できるパーミッション

パーミッションの名前 このパーミッションを持つユーザー (またはグループ) ができること
ソースファイルへのアクセス プロジェクト ソース ファイルへのアクセス。注意: ソースコードへのアクセスを制御するには、ユーザーにソースファイルへのアクセスパーミッションを与え、モジュールを設定してモジュールパーミッションを構成する必要があります。
役割の割当て プロジェクトのユーザーまたはグループに役割を割り当てる
指摘ステータスの変更 プロジェクトの指摘ステータスの変更この選択は、設定し直すことができます。このパーミッションには、追加のパラメーター (ステータス名の [から/に] のペアのリスト) が含まれます。ペアを選択すると、指摘ステータスを 1 つのステータスから別のものに変更するパーミッションをユーザーに付与します。
指摘所有者の変更 プロジェクトの指摘所有者の変更
プロジェクト設定の変更 統合ビルド解析用の構成ファイルの管理 とチェッカーの設定
ビルドの作成 プロジェクトの解析
CI ビルドの作成 プロジェクトの解析 (継続的インテグレーションの実行)
ストリームの作成 ストリームの作成
ストリームの削除 ストリームの削除
ビルドの削除 ビルドの削除 (解析の実行)
CI ビルドの削除 CI ビルドの削除 (継続的インテグレーションの実行)
プロジェクトの削除 プロジェクトの削除
プロジェクト モジュールの管理 プロジェクト用モジュールの作成、編集、削除
ビューの管理

プロジェクト用ビューの作成、編集、削除

注意: これにより、ビューを公開する機能が追加され、共有したビューを編集できるようになります。ビューを削除できるのは、その作成者だけです。

ローカル構成の使用 デスクトップでのローカル構成ファイルの使用ローカル(デスクトップ)構成への変更はサーバーで共有されていません。
自動削除オプションの設定 ビルドページで「古いビルドの自動削除」フラグを管理し、自動削除のしきい値を設定します。update_build WebAPI コマンドの場合、「このビルドを自動削除しない」フラグ、つまり keepit フラグを管理することもできます。

パーミッションがストリームとどのように連動するか

ストリームと連動するときに、パーミッションは次のように扱われます。

  • ストリームのパーミッションは、「ストリームごと」に設定されます。

  • 新しいストリームを作成するときに、親またはベースプロジェクトのストリームからパーミッションは継承されません。

  • 新しいストリームを作成するユーザーには、それらのストリームに対して、ストリーム管理者のパーミッションが自動的に割り当てられます。

  • 特定のストリームに対して、ユーザーが特定の役割を必要としているが、それをグローバルな役割として保持していない場合、この役割を手動で割り当てる必要があります。

組織が必要とする役割の計画

誰が何をできるかについて考えます。組織ではどのような役割を必要としていますか。それぞれの役割にどのパーミッションが必要ですか。別のチームには別の種類の役割が必要ですか。あなたが設定済みの役割をチームリーダーが変更できるようにしますか。検出された指摘のステータスをデベロッパーが変更できるようにしますか。

まったく同じ組織というものはありません。ある組織では数人のユーザーが実行する作業のすべてを、別の組織では 1 人のユーザーが行う場合があります。ある組織ではコード品質に対してデベロッパーが完全な自由度と責任を持ち、別の組織では階層がある場合があります。必要な役割は、組織の大きさと Klocwork を継続使用した期間の長さによって変わります。

役割の作成と管理

カスタムの役割を作成した場合、プロジェクト ルート管理者およびプロジェクト管理者の役割に関する暗黙的なパーミッションは使用できません。

役割を作成するには、以下の操作を行います。

  1. Validate で、[役割] をクリックします。役割ページが表示されます。
  2. [新しい役割の作成] をクリックします。
  3. 名前フィールドで、作成する役割の名前 (たとえば、上級デベロッパー) を入力します。組織内で意味のわかる名前を使用してください。
  4. [OK] をクリックします。作成した役割が役割リストに表示され、右側にその詳細が表示されます。
  5. それぞれの役割に持たせるパーミッションを選択します。各パーミッションの詳細については、上の「使用可能なパーミッション」を参照してください。

    指摘ステータスを他の指摘ステータスに変更する役割を与えるには、[指摘ステータスの変更] を選択し、デフォルトの [任意] > [任意]は選択されたままにしておきます。

    この役割を持つユーザーが指摘ステータスを変更できる権限をもう少し正確に設定するには、ドロップダウン メニューをクリックして、[から/に] のペアを選択し、[追加] を必要に応じて何度でもクリックします。

    たとえば、上級デベロッパーに、ある指摘の修正時期を決定する役割は与えたいが、指摘を無視したり問題ではないと言うことはできないようにしたい場合があります。左の指摘ステータスのドロップダウン メニューで、[修正 (Fix) ] を選択します。右の指摘ステータスのドロップダウン メニューで、[将来のリリースで修正 (Fix in Later Release)] を選択します。

    [から/に] のペアを削除するには、それを選択して [削除] をクリックします。

役割を編集するには、以下の操作を行います。

役割リストから変更する役割を選択し、パーミッションを選択または選択解除します。

役割を削除するには、以下の操作を行います。

役割リストから削除する役割を選択し、役割の横にあるごみ箱アイコン Image:Review trash can icon.png をクリックします。その役割が削除されます。この役割を割り当てられていたあらゆるユーザーは、このパーミッションを持つことはそれ以上できません。

「Projects_root 管理者」と「プロジェクト管理者」の役割は削除できません。

役割の割り当て

前提条件:

  • "役割の割り当て" パーミッションが必要です。
  • 割り当てを行う前に、プロジェクト、ユーザー、グループおよび役割のすべてを用意しておく必要があります。

グループに追加されたユーザーは、そのグループに割り当てられた役割をすべて、自動的に継承します。

ユーザーまたはグループに役割を割り当てるにはいくつか方法があり、自身が持つパーミッションと、少数のユーザーに役割を割り当てるのか、大きな変更が必要かによって変わります。

  • 特定のプロジェクトのパーミッション

    プロジェクトの詳細ページから、特定のプロジェクトへの役割を割り当てることができます。Validate で、[プロジェクト] をクリックし、プロジェクトリストで特定のプロジェクトをクリックします。右側のプロジェクトの詳細で、[パーミッション] をクリックします。

  • 特定のユーザーまたはグループのパーミッション

    Validate で、[ユーザー] をクリックします。リスト内のユーザーをクリックします。右側の [役割] タブをクリックします。このページから、特定のプロジェクトまたは projects_root 全体に役割を割り当てることができます。

  • [役割] ページからの場合

    Validate で、[役割] をクリックします。役割ページから、役割をクリックします。右側の [役割の割り当て] タブをクリックします。このページから、特定のプロジェクトまたは projects_root 全体に役割を割り当てることができます。

ユーザーまたはグループからすべての役割を削除すると、そのユーザーまたはグループは、そのプロジェクトまたは projects_root に二度とアクセスできなくなりますが、データベースには残ります。

伝達しなければならないこと

アクセス制御のユーザー ID とパスワード: アクセス権限を与えたユーザーに、使用するユーザー ID とパスワードを知らせます。大きな組織の場合は、IT 部門のシステム管理者がパーミッションを設定し、ユーザー ID を管理します。

各自に与えられた役割: ユーザーにそれぞれの役割を説明します。プロジェクトやサーバーへのパスを知らせます。

データベースパスワード(設定されている場合):projects_root データがパスワードで保護されている 場合は、ビルドエンジニアと、サードパーティのレポートツールを使用するユーザーにそのパスワードを知らせます。

関連する概念