カスタム暗号化

データベースのパスワードを保護する

このページの内容

お困りですか?

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

コミュニティに質問

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

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

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

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

On this page:

ステップ 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. 実装をテストする

The encryption tool described in Base 64 encoding and AES encryption uses the same code as Confluence to decrypt the password. You can use it to test your implementation.

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

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

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

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

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


最終更新日: 2023 年 2 月 21 日

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

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