認証サーバ¶
コンテンツ:
インストール¶
これは、JavaScript で書かれたソフトウェアです。特に、Node.js (サーバサイドの JavaScript)に適しています。JavaScript はインタプリタ型のプログラミング言語なので、コンパイルやパッケージの構築は不要です。マシンのどこかにソースコードをダウンロードしておけば十分です。
前提条件¶
この REST API は、Identity Manager (Keyrock の実装がここにあります) がインストールされていない場合は意味がありません。
前述のように、cosmos-auth は Node.js アプリケーションなので、公式ダウンロードからインストールします。先進的な選択肢は、creationix/Tim Caswell によって、Node Version Manager (nvm)をインストールすることです。これにより、Node.js のいくつかのバージョンを持ち、それらの間で切り替えることができます。
もちろん、git
や curl
のような一般的なツールは必要とされるかもしれません。
インストール¶
まず作成されていなければ、cosmos-auth
という名前の Unix ユーザを作成します。アプリケーションのインストールと実行に必要です。これは、root または別の sudoer ユーザとしてのみ行うことができます :
$ sudo useradd cosmos-auth
$ sudo passwd cosmos-auth <choose_a_password>
あなたが sudoer ユーザであるときは、選択したパスの下に cosmos-gui のログトレースを保存するフォルダを作成します、通常は、/var/log/cosmos/cosmos-auth
で、所有者として cosmos-auth
を設定します :
$ sudo mkdir -p /var/log/cosmos/cosmos-auth
$ sudo chown cosmos-auth:cosmos-auth /var/log/cosmos/cosmos-auth
さて、新しいフレッシュな cosmos-auth
ユーザに変更してください :
$ su - cosmos-auth
次に、あなたのディレクトリのどこかに Cosmos リポジトリをクローンします :
$ git clone https://github.com/telefonicaid/fiware-cosmos.git
cosmos-auth code は、fiware-cosmos/cosmos-auth
にあります。そのディレクトリに移動して、インストール・コマンドを実行します :
$ cd fiware-cosmos/cosmos-auth
$ git checkout release/x.y.z
$ npm install
それは、node_modules
ディレクトリの下のすべての依存関係をダウンロードする必要があります。
単体テスト¶
未定
構成¶
cosmos-auth は JSON ファイルによって設定されます。使用可能なパラメータは次のとおりです :
- host: サービスを実行しているホストの FQDN または IP アドレス
- port: 着信APIメソッド呼び出し用の TCP リスニングポート。デフォルトでは 13000 です
- private_key_file: クライアントとの通信を暗号化するために使用される秘密鍵を含むファイル名
- certificate_file: 上記の秘密鍵のパブリック・カウンターパートをクライアントに送信するためにサーバが使用する自己署名付き X509 証明書を含むファイル名
- idm:
- host: Identity Manager が実行される FQDN または IP アドレス。これを URL 形式で書いてはいけません!
- port: Identity Manager がリクエストをリスンするポート。通常は、443
- path: ID マネージャがトークン生成を処理するパス。通常は、
/oauth2/token
- cosmos_app:
- client_id: この値は、Cosmos アプリケーションが登録されているときに Identity Manager によって指定されます。ここで設定することで、ユーザはそのことを知る必要はありません
- client_secret: この値は、Cosmos アプリケーションが登録されたときに Identity Manager によって指定されます。ここで設定することで、ユーザはそのことを知る必要はありません
- log:
- file_name: ログのトレースが 1日単位で保存されるファイルのパス。このファイルは、
cosmos-auth
ユーザが所有するログフォルダ内に存在する必要があります - date_pattern: ログファイルがローテーションされたときにログファイル名に追加されるデータパターン
- file_name: ログのトレースが 1日単位で保存されるファイルのパス。このファイルは、
実行¶
cosmos-auth によって実装された Http サーバは、現在のディレクトリが fiware-cosmos/cosmos-auth
であると仮定して実行されます :
$ npm start
すべてがうまくいけば、Web ブラウザや curl
ツールを使ってソフトウェアのバージョンをリモートから取得できるはずです :
$ curl -X GET "https://<host_running_the_api>:13000/cosmos-auth/v1/version"
{version: 0.0.0}
cosmos-authは、通常、TCP/13000 ポート (TLS 暗号化)をリッスンしますが、conf/cosmos-auth.json
を編集することで変更できます。
管理¶
cosmos-auth には、ログを管理するのに役立つ情報ソースが1つあります。
ロギング・トレースは通常、/var/log/cosmos/cosmos-auth
下に保存されます。これらのトレースは、レベル、メッセージ、タイムスタンプの各フィールドを持つ JSON 形式で記述されています。例えば :
{"level":"info","message":"cosmos-auth running at http://localhost:13000","timestamp":"2015-07-28T14:15:28.746Z"}
ロギングレベルは、次の階層に従います :
debug < info < warn < error < fatal
ログの中には、多くの info
メッセージと、いくつかの warn
か error
タイプがあります。特に興味があるのはエラーです :
- Hapi サーバの起動中に何らかのエラーが発生しました : このメッセージは、cosmos-auth の起動時に表示されることがあります。ほとんどの場合、構成されたホスト IP アドレス/FQDN は、サービスが実行されている物理マシンに属していないか、構成済みのポートが既に使用されています
- IdM に接続できませんでした : このメッセージは、ID サーバに接続するときに表示されることがあります。設定されたエンドポイントが正しくないか、ポートフィルタリングのようなネットワーク・エラーがあるか、認証されるアプリケーション(この場合は Cosmos REST API)に関する特定の資格情報(cliend id と secret)が無効です
付属書類¶
付録A : 自己署名証明書の作成¶
まず、秘密鍵を作成します。既に持っている場合、それは必要ではないかもしれません :
$ openssl genrsa -out private-key.pem 1024
次に、秘密鍵を使用して証明書署名要求(CSR)を作成します :
$ openssl req -new -key private-key.pem -out csr.pem
最後に、自己署名証明書を作成します :
$ openssl x509 -req -in csr.pem -signkey private-key.pem -out public-cert.pem