カスタム暗号化

データベース パスワードの暗号化

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

Confluence サイトのセキュリティを強化するために、confluence.cfg.xml ファイルに保存されているデータベース パスワードを暗号化できます。

Confluence に用意されている基本的な暗号化方法または高度な暗号化方法を使用しない場合は、独自の暗号を作成できます。これは、特に次のような場合に役立ちます。

  • パスワードを保存するのに特定のボールトを使用する必要がある。
  • 別の暗号化アルゴリズムを使用したい。

この手順では、Java と Maven に精通していることを前提としています。 

このページの内容

ステップ 1. Maven プロジェクトを作成して API 依存関係を取得する

Maven プロジェクトを作成して API 依存関係を取得するには、次の手順に従います。

  1. password-cipher-api と password-cipher-base の各依存関係を取得します。
    1. <install-directory>/confluence/WEB-INF/lib に移動して、次の jar ファイルをコピーします。
    2. password-cipher-api-<version>.jar
      このファイルには API が含まれています。
    3. password-cipher-base-<version>.jar
      (オプション) このファイルにはいくつかのサンプル実装が含まれています。
  2. Maven プロジェクトを作成します。
  3. resources に移動して、libs という新しいフォルダーを作成します。
  4. jar ファイルを libs フォルダーにコピーします。
  5. 次に、次の pom を使用します。

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
     
      <groupId><your_group_ID></groupId>
      <artifactId><your_artifact_ID></artifactId>
      <version><your_version></version>
     
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
      </properties>
     
      <repositories>
        <repository>
          <id>local-maven-repo</id>
          <url>file:///${project.basedir}/libs</url>
        </repository>
      </repositories>
    
      <build>
        <resources>
          <resource>
            <directory>src/main/resources/libs</directory>
            <excludes>
              <exclude>*</exclude>
            </excludes>
            <filtering>false</filtering>
          </resource>
        </resources>
      </build>
     
      <dependencies>
        <dependency>
          <groupId>com.atlassian.db.config</groupId>
          <artifactId>password-cipher-api</artifactId>
          <version><api_version></version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>com.atlassian.db.config</groupId>
          <artifactId>password-cipher-base</artifactId>
          <version><base_version></version>
          <scope>provided</scope>
        </dependency>
      </dependencies>
    </project>

ステップ 2. Cipher インターフェイスを実装する

Cipher インターフェイスには、要件に応じて実装する必要がある 2 つのメソッド encryptdecrypt が含まれています。decrypt は Confluence の起動中に呼び出されるため、長期実行タスクが起動時間に影響を与える可能性があります。暗号化は暗号化ツールでのみ使用されるため、Confluence から呼び出されることはありません。

例として Base64CipherAlgorithmCipher を使用できます。

ステップ 3. 実装をテストする

基本的な暗号化」と「高度な暗号化」で説明されている暗号化ツールでは、Confluence と同じコードによってパスワードを復号化します。これによって実装をテストできます。

CLI と jar が同じフォルダーにあるとします。

java -cp "./*" com.atlassian.db.config.password.tools.CipherTool -c your.package.here.ClassName

ステップ 4. ライブラリを利用可能にする

Confluence がライブラリにアクセスできる必要があります。リフレクションによってクラスはインスタンス化されます。

ライブラリを <install-directory>/confluence/WEB-INF/lib ディレクトリに置きます。


Last modified on Mar 22, 2022

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.