yamory Blog

ライセンス導入 まずはここから Apache License 2.0

Apache ライセンス (アパッチライセンス、Apache License)とは、オープンソースソフトウェアを開発・配布する際に用いられる代表的なオープンソースライセンスのひとつで、利用許諾のための条件などを定めているものです。

本記事では Apache ライセンスの概要から Apache License 2.0 の内容、適用方法、掲載例について解説していきます。

Apache ライセンスの概要

Apache ライセンスは、Apache ソフトウェア財団(ASF)によって作成されたソフトウェア向けライセンス規定です。

バージョン 1.1 以前は Apache Software License(ASL)と呼ばれていました。

世界中のソフトウェアで Apache ライセンスは利用されており、2020 年に GitHub で公開されているプロジェクトの 18% が Apache License 2.0 が使われているという報告もあります。

参考文献:Open Source Licenses 101: Apache License 2.0

有名どころでいうと、Apache プロジェクトの Apache Struts や Tomcat はもちろん、それ以外にも Kotlin, Scala, Swift といったプログラミング言語本体で利用されているライセンスも「Apache License 2.0」です。

Apache ライセンスは何度か改定が実施されています。

2021 年 3 月時点で最新版の「Apache License, Version 2.0」(2004 年公開)では、ソフトウェアを自由に扱ってよいこと、再頒布時に著作権表示とライセンス表示を含めること、オリジナルから修正点がある場合には明示すること、作者や著作権者はいかなる責任も負わないことを定めています。

オープンソースライセンスには、他にも MIT ライセンス や、GPL ライセンス などいくつかの種類が存在します。

その中でも Apache ライセンスの特徴としてあげられるのが、利用者に特許使用権を付与しているということです。

Apache ライセンスでは公開されたプログラムを改変した場合や、自らのプログラムに組み込んだ派生的(二次的)な著作物を制作した場合でも、ソースコードを公開せずに販売・配布することが可能であり、さらに Apache ライセンスとは異なるライセンスで提供することもできます。

GPL ライセンス のようなコピーレフト条項のあるライセンスでは上記のような行為は禁じられており、派生著作物のソースコードを公開する義務が発生します。

Apache ライセンスはこの点において比較的導入ハードルが低いライセンスとなっており、この点を好んで Apache ライセンスを採用する開発者も多くなっています。

Apache License 2.0 の内容

では Apache ライセンスの最新版である「Apache License 2.0」について、記載されている条項の内容について掘り下げていきましょう。

本記事ではライセンスを要約するとどのような内容になっているのかについて解説します。

Apache License 2.0 の詳細な内容については以下の日本語訳にて翻訳がされていますのでご参照ください。

Apache License 2.0 日本語訳
Apache License, Version 2.0

Apache License 2.0 原文(英語)
APACHE LICENSE, VERSION 2.0

上記のライセンス条項の「2. Grant of Copyright License(2. 著作権ライセンスの付与)」と「3. Grant of Patent License.(3. 特許ライセンスの付与)」を要約すると以下の内容になります。

Apache License 2.0 では以下の内容を許可します

・利用料無料
・商用利用(無償かつ無制限に使用可)
・改変
・複製
・公開
・再配布
・改変したものの配布
・サブライセンス
・アプリケーションへの埋め込み、同梱
・特許ライセンスの付与

またこれ以外にも注意点として、利用に伴い作成者はいかなる責任も負わないというものが記載されています。
これは他のライセンスでも同様に言われている事項のため念頭に入れておきましょう。

特許ライセンスの付与に関して

前項でも述べましたが、Apache ライセンスの最大の特徴としてあげられるのは、利用者に特許使用権を付与しているということでしょう。

ここでいう特許はその OSS の原作者を含むコントリビュータが持つ特許で、当該 OSS のみで実現可能な特許を指します。

第 3 項「3. Grant of Patent License.(3. 特許ライセンスの付与)」ではおおよそ次のことを述べています。

1 コントリビュータから利用者へ特許ライセンス(patent license; 特許使用権)を付与

2 利用者による特許権行使を禁止する(厳密には禁止ではなく、特許訴訟を起こした場合は、その特許ライセンスは訴訟を起こした時点で終了する)

特許使用権を与える意図は、利用者が OSS 開発者らからの特許権行使を恐れて OSS 利用を躊躇してしまうことを避けるためと言われています。

特許の利用に関しては、配布物に特許が含まれている場合も無償で利用できるとしています。
ただしその特許に関して、誰かに特許侵害の訴訟を起こした場合は、特許ライセンス停止となる可能性もありますので注意しましょう。

Apache License 2.0 の適用方法

自分で作成した成果物に Apache License 2.0 を利用したい場合は、ライセンス条項のページ最下部にある「APPENDIX: HOW TO APPLY THE APACHE LICENSE TO YOUR WORK」の記載に従って記載をすれば問題ありません。

基本的には、著作権表示とライセンス条項を書いておくだけで適用が完了します。

Apache License 2.0 の掲載例

ここからは実際に、Apache License 2.0 を利用する際の掲載例をご紹介します。

下記の定型文を配布物に添付すれば完了となります。

[yyyy] [name of copyright owner] の部分を自分の情報に書き換え、「LICENSE.txt」のようなファイル内に記載しておくと良いでしょう。

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the “License”);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and
limitations under the License.

再頒布に関して

Apache License 2.0 で公開されたプログラムを自分たちのアプリケーションで利用する場合には、第 4 項「4. Redistribution.(4. 再頒布)」に従い、おおよそ以下の 4 つを満たす必要があります。

1 ライセンスのコピーを渡すこと
2 修正点があれば明示すること
3 ソース形式で配布する場合は著作権、特許、商標、帰属についての告知を含めること
4 帰属告知が書かれた NOTICE ファイルがある場合は、NOTICE ファイルも含めること

ライセンスの記載箇所に関しては、Web サービスの場合、ライセンスに関するページを設置するか、利用規約やヘルプページに記載するのが良いでしょう。

アプリの場合は、アプリ内にライセンスに関するページを設置するか、設定画面、ヘルプページ記載することをおすすめします。
インストール前に確認できるようにアプリストアの説明にも記載しておきましょう。

加えて、NOTICE ファイルがある場合は NOTICE ファイルも確認できるようにする必要があります。
この部分は見落とされることが多い部分でもありますので特に注意が必要です。

さいごに

今回は Apache ライセンスの概要について解説しました。

Apache ライセンスは比較的ハードルが低く、世界中で利用されている非常に汎用的なライセンスです。

改変、再配布、商用利用、特許ライセンスの付与など、幅広いニーズに対応できるのも開発者にとっては嬉しいポイントではないでしょうか。

ライセンスには多くの種類があり、それぞれに特徴があります。
利用する際は自分の環境にどれがベストか、比較検討することをおすすめします。

さいごになりますが、yamory はオープンソースソフトウェアの脆弱性と、その脆弱性に関連する攻撃情報のモニタリングをすることができる脆弱性管理ツールです。

また 2021 年 3 月中にコピーレフト検知機能を機能追加した、ライセンス管理機能 β 版をリリース予定となっております。

お使いのオープンソースソフトウェアのライセンスを一覧で確認することができ、合わせてWeb アプリケーションで危険となりうる脆弱性を自動的に検出できるため、よりセキュアなシステム構築の助けになるかと思います。

無料でトライアルもできますので、ぜひ一度お試しください。

オープンソース脆弱性管理ツール yamory

  • 利用中のOSSを抽出し
    脆弱性を自動スキャン
  • 脆弱性への対応優先度を自動で分類
  • 組織規模に合わせたプランを選択可能

フリー

¥0

個人向け

1チームまでの開発チーム作成

yamory を使いはじめる

プロ

有料料金はお問い合わせください

中〜大規模組織向け

無制限の開発チーム作成

開発チームを俯瞰できるセキュリティチーム機能

危険な脆弱性の Slack 連携通知機能

Jira Cloud と連携

シングル・サインオン(SSO)連携*

* SSO 連携は無料トライアルではご利用できません。プロプラン契約後からご利用できます。

30日間の無料トライアルを開始