「WebAPIにアクセスするためのパスワード」は、一般的にどのような形でどこに保存すべきですか？


# 環境

  * Python 3.6 
    * requestsモジュール

# 現状

自分のローカルマシンからWebAPI Xにアクセスして、情報を取得したいです。  
WebAPI Xには仕様は以下の通りです。

  * 認証が必要。
  * 認証するには、Login用のAPIを実行する。
  * Login用APIには、LoginIDとPasswordを渡す。

WebApiへのアクセスには、Pythonのrequestsモジュールを使っています。

WebAPIにアクセスするツール（Pythonスクリプト）は、今のところ自分しか使っていませんが、いずれは他の社員にも使ってもらえるようにしたいです。

# 問題だと感じていること

パスワードは、以下のような設定ファイル`config.ini`に記述しています。

[code]

    [login]
    id=xxx
    password=yyy
    
[/code]

`config.ini`は、Gitリポジトリにコミットしないようにしています（`.gitignore`に記述）。

以下の点が、私は問題に感じています。

  * 設定ファイルにはパスワード以外の情報も記載していて、頻繁にエディタで開いている。 
    * パスワードを見られる可能性が高い
  * `.gitignore`に書いてあるとはいえ、間違ってコミットしてしまうリスクがある

# 質問

一般的に「WebApiにアクセスするためのパスワード」は、どのような形で、どこに保存すべきでしょうか？

  * 環境変数
  * 別の鍵で、パスワードを暗号/復号できるようにする

自分が問題だと思っていることの解決方法はいろいろあると思いますが、より一般的で簡単な方法を採用したいです。




各OSにはパスワードを保存する仕組みを用意している場合があります。

Windowsの場合、資格情報マネージャーがあり、IEなどのパスワード保存に使われています。Macの場合も同様にキーチェーンアクセスがあります。

Xubuntuを含むUNIX系OSには汎用的なものはありませんが、その昔 `~/.netrc`
にパスワードを保存することがありました。[netrc(5)](http://surf.ml.seikei.ac.jp/~nakano/JMwww/html/netkit/man5/netrc.5.html)に説明があります。そしてPythonにはこのファイルを解析する[netrcクラス](https://docs.python.jp/3/library/netrc.html)が用意されているそうです。

一つの選択肢としてどうぞ。




各OSにはパスワードを保存する仕組みを用意している場合があります。

Windowsの場合、資格情報マネージャーがあり、IEなどのパスワード保存に使われています。Macの場合も同様にキーチェーンアクセスがあります。

Xubuntuを含むUNIX系OSには汎用的なものはありませんが、その昔 `~/.netrc`
にパスワードを保存することがありました。[netrc(5)](http://surf.ml.seikei.ac.jp/~nakano/JMwww/html/netkit/man5/netrc.5.html)に説明があります。そしてPythonにはこのファイルを解析する[netrcクラス](https://docs.python.jp/3/library/netrc.html)が用意されているそうです。

一つの選択肢としてどうぞ。

