webui-service - Oracle Solaris WebUI サービス
svc:/system/webui/server:default
WebUI SMF サービスは、HTTPS を介してコーディネータを呼び出して WSGI アプリケーションを実行する Apache インスタンスです。デフォルトで、WebUI はポート 6787 で待機します。ポート 443 で待機し、ポート 6787 にリクエストをリダイレクトするには、例 1「ポート 443 での待機」を参照してください。
起動時に自己署名証明書が自動的に生成されます。証明書は、配備中に提供することもでき、例 2「SSL 証明書の設定」に示されています。
コーディネータは、Web アプリケーション用の次のサービスを提供する最小限の Web アプリケーションミドルウェアです。
ユーザー認証
ユーザーセッションおよび RAD トークンの保護
RAD-Rest リクエストリダイレクション
認証されたファイルの提供
これらのサービスは、次の名前空間を使用して REST API によって使用できます。
WebUI フレームワークとそのすべてのアプリケーション用に予約されています。ユーザーが認証されると、ダッシュボードアプリケーションにリダイレクトし、それ以外の場合は、ログインページにリダイレクトします。
ユーザー認証に使用される REST API
次の JSON ペイロードをその本体に含んだ POST リクエストは、指定された username に対する新しい PAM 認証対話を開始します。
{ "username": "username" "inactivity_timeout": timeout in minutes }
このリクエストは、RAD 認証モジュールで処理されます。
username は省略できます。その場合、PAM はその構成に応じて、username を入力するように求めることがあります。username は、通常の Oracle Solaris username です。
inactivity_timeout もオプションです。デフォルト値は 24h です。
成功すると、auth-token Cookie をヘッダーに含んだ JSON ペイロードが返されます。
失敗時には HTTP Unauthorized (401) エラーが返されます。
ユーザーセッショントークンの有効期間は次に依存します。
リクエスト本体で指定されたセッションの非アクティビティータイムアウト
coordinator/absolute_timeout SMF プロパティーを使用して変更できる絶対タイムアウト
関連付けられた非表示の RAD トークンの有効期限
この Cookie は、その後、WebUI を使用して RAD REST インタフェースにアクセスするために再使用でき、WebUI フレームワークのユーザーセッションとしても機能します。
返された JSON 本体には次のコンポーネントが含まれます。
state コンポーネントには、次のいずれかの値を指定できます。
認証は正常に完了しました。
認証対話の最中であり、続行するには追加情報が必要です。
messages フィールドを適切に処理する必要があります。
RAD/REST 認証モジュールで予期しないエラーが発生しました
messages コンポーネントは、ユーザーインタフェースに提示されるメッセージを含んだ JSON オブジェクトのリストです。メッセージには、出力するメッセージとスタイルという 2 つの要素があり、スタイルは次のいずれかになり、次に説明するように特定の動作を必要とします。
応答のエコーを有効にしてユーザーの入力を収集します。これは、PAM が username を知る必要がある場合などです。
応答のエコーを無効にしてユーザーの入力を収集します。これは、パスワードを求める場合などです。
ユーザーに情報を表示します。これを承認する必要があるかどうかは、表示されている UI に応じて異なります。
ユーザーにエラーを表示します。これを承認する必要があるかどうかは、表示されている UI に応じて異なります。
次に値のメッセージの例を示します。
{ "state": "CONTINUE", "messages": [ { "style": "PROMPT_ECHO_OFF", "message": "Password: " } ] }
PUT リクエストは、POST リクエストで開始された対話を続行し、WebUI サーバーに更新をフィードバックするために使用されます。
リクエストの本体は、少なくとも収集された応答データを含んでいる必要があり、次のようになります。
{ "responses": [ "password" ] }
応答がなかった場合、JSON で配列を NULL 値に置き換えることができます (前述の POST 例参照)。
これは、データを求めるプロンプトが存在しなかったケースであることが考えられます。たとえば、単なる TEXT_INFO メッセージであった場合、応答は必要ありません。
応答の送信が成功すると、前述の POST のケースに似た JSON ペイロードが表示され、まだ入力要求が必要な場合は、状態といくつかのメッセージが表示されます。
正常に完了すると、SUCCESS の状態値が表示されます。この場合、次の GET リクエストで説明するように、ペイロードの追加の値が表示されます。
認証が失敗すると、401 (Unauthorized) の HTTP エラーコードが表示されます。
ヘッダーに auth-token Cookie が含まれている GET リクエストは、Cookie が有効であれば JSON ペイロードを返します。
PAM 認証対話の最中である場合、状態の値が CONTINUE であるときに POST または PUT で得られるものと同じペイロードを受信します。
完全に認証されている有効なセッションがある場合は、状態値が SUCCESS に設定されたペイロードが表示され、いくつかの追加の値が JSON で表示されます。
認証されるユーザー名。
Cookie が無効な場合、HTTP Unauthorized (401) エラーが返されます。
ヘッダーに auth-token Cookie が含まれている DELETE リクエストは、ユーザーセッションおよび関連付けられた RAD 接続の両方を削除しようとします。成功すると、次の JSON ペイロードが返されます。
{ username: username }
失敗時には、HTTP 不正なリクエスト 400 エラーが返されます。
RAD/Rest URL アクセスポイント。HTTPS 経由の REST を使用して RAD 照会を処理できるようにします。
RAD-REST リクエストをその JSON 本体ペイロードとともに処理のために内部 rad-http デーモンにリダイレクトします。
ペイロード形式の詳細は、RAD REST の開発者ガイドを参照してください。
ダッシュボードアプリケーションのランディングページ
Analytics アプリケーションのランディングページ
js フレームワークファイル (JET) を格納するために使用される未認証のディレクトリ
残りの名前空間は、ほかの WSGI アプリケーションで使用できます。
次の構成プロパティーは、webui/server:default サービスの conf プロパティーグループのメンバーです。
Apache Listen ディレクティブ形式に準拠する ip:port 文字列のリスト。値が指定されていない場合、Web サーバーは、デフォルトポートを使用して使用可能なすべての IP アドレスで待機します。
デフォルトの証明書ファイルの場所
デフォルトの証明書鍵ファイルの場所
デフォルトの CA 証明書パスの場所
サーバーがそれ自体を識別するために使用する Apache 構成で ServerName として使用する値
分単位の絶対の最大ユーザーセッション期間
https://hostname:6787/ の要求時にユーザーをリダイレクトする相対的な名前空間が含まれている文字列
Apache がルート URL (/) を Solaris ダッシュボードアプリケーションにリダイレクトするかどうかを判別するブール値
サービスがポート 443 で待機してから、リクエストをポート 6787 にリダイレクトするかどうかを判別するブール値
Apache によって使用される暗号化
Apache によって使用されるセキュリティープロトコル
webui/server SMF サービスは、起動時とリフレッシュ時に、特別な形式のファイルを設定システムにインポートします。これらのファイルは、インストールされているアプリケーションによって定義されます。たとえば、analytics(7) WebUI アプリケーションは、analytics(5) でインポート形式ドキュメントを提供します。
なんらかの理由でインポートが失敗した場合、webui/server サービスは、インポートが失敗したことを示すフラグを立てるために機能低下状態に移行します。失敗の詳細は、webui/server SMF ログを参照してください。
デフォルトで、WebUI はポート 6787 で待機します。ポート 443 で待機し、そのあとでポート 6787 にリクエストをリダイレクトするには、conf/redirect_from_https プロパティーの値を true に設定します。
$ svccfg -s webui/server:default svc:/system/webui/server:default> listprop conf/redirect_from_https conf/redirect_from_https boolean false svc:/system/webui/server:default> setprop conf/redirect_from_https=true svc:/system/webui/server:default> listprop conf/redirect_from_https conf/redirect_from_https boolean true svc:/system/webui/server:default> refresh svc:/system/webui/server:default> exit $ svcprop -p conf/redirect_from_https webui/server:default true使用例 2 SSL 証明書の設定
Oracle Solaris 11.4 にでは、デフォルトの webui/server 構成で使用する自己署名証明書が用意されています。認証局 (CA) から適切に署名された証明書を得ているユーザーは、代わりにその証明書を使用できます。
自己署名証明書の構成を取り換えるには、適切なファイル名に置き換えて次の手順を使用してください。
# SVC=svc:/system/identity:cert # svccfg -s $SVC setprop certificate/cert/pem_value \ = astring: "$(cat /path/to/signed/certificate.crt )" # svccfg -s $SVC setprop certificate/cert/private_key/pem_value \ = astring: "$(cat /path/to/signed/certificate.key )" # svccfg -s $SVC setprop certificate/ca/pem_value \ = astring: "$(cat /path/to/issuer/certificate.crt )" # svcadm refresh $SVC # svcadm restart -sr $SVC
svc:/system/identity:cert を再起動すると、SMF 依存関係のため、svc:/system/webui/server も再起動することになります。
sstore(1), libsstore(3LIB), analytics(5), analytics(7), attributes(7), ssid(7), sstore(7), sstoreadm(1), svcadm(8)
サービスの有効化、無効化、再起動などの管理アクションを sstored サービスで実行するには、svcadm コマンドを使用します。