Go to main content

マニュアルページ セクション 7: 標準、環境、マクロ、文字セット、その他

印刷ビューの終了

更新: 2022年7月27日
 
 

webui-service(7)

名前

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 によって使用できます。

/solaris

WebUI フレームワークとそのすべてのアプリケーション用に予約されています。ユーザーが認証されると、ダッシュボードアプリケーションにリダイレクトし、それ以外の場合は、ログインページにリダイレクトします。

/solaris/api/login

ユーザー認証に使用される REST API

POST リクエスト

次の 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

state コンポーネントには、次のいずれかの値を指定できます。

SUCCESS

認証は正常に完了しました。

CONTINUE

認証対話の最中であり、続行するには追加情報が必要です。

messages フィールドを適切に処理する必要があります。

ERROR

RAD/REST 認証モジュールで予期しないエラーが発生しました

messages

messages コンポーネントは、ユーザーインタフェースに提示されるメッセージを含んだ JSON オブジェクトのリストです。メッセージには、出力するメッセージとスタイルという 2 つの要素があり、スタイルは次のいずれかになり、次に説明するように特定の動作を必要とします。

PROMPT_ECHO_ON

応答のエコーを有効にしてユーザーの入力を収集します。これは、PAM が username を知る必要がある場合などです。

PROMPT_ECHO_OFF

応答のエコーを無効にしてユーザーの入力を収集します。これは、パスワードを求める場合などです。

TEXT_INFO

ユーザーに情報を表示します。これを承認する必要があるかどうかは、表示されている UI に応じて異なります。

ERROR_MSG

ユーザーにエラーを表示します。これを承認する必要があるかどうかは、表示されている UI に応じて異なります。

次に値のメッセージの例を示します。

{
  "state": "CONTINUE",
  "messages": [
    {
      "style": "PROMPT_ECHO_OFF",
      "message": "Password: "
    }
  ]
}
PUT リクエスト

PUT リクエストは、POST リクエストで開始された対話を続行し、WebUI サーバーに更新をフィードバックするために使用されます。

リクエストの本体は、少なくとも収集された応答データを含んでいる必要があり、次のようになります。

{
  "responses": [
  "password"
  ]
}

応答がなかった場合、JSON で配列を NULL 値に置き換えることができます (前述の POST 例参照)。

これは、データを求めるプロンプトが存在しなかったケースであることが考えられます。たとえば、単なる TEXT_INFO メッセージであった場合、応答は必要ありません。


注 - PROMPT_ECHO_ON および PROMPT_ECHO_OFF メッセージとちょうど同数の項目が「応答」リストに存在している必要があります。

応答の送信が成功すると、前述の POST のケースに似た JSON ペイロードが表示され、まだ入力要求が必要な場合は、状態といくつかのメッセージが表示されます。

正常に完了すると、SUCCESS の状態値が表示されます。この場合、次の GET リクエストで説明するように、ペイロードの追加の値が表示されます。

認証が失敗すると、401 (Unauthorized) の HTTP エラーコードが表示されます。

GET リクエスト

ヘッダーに auth-token Cookie が含まれている GET リクエストは、Cookie が有効であれば JSON ペイロードを返します。

PAM 認証対話の最中である場合、状態の値が CONTINUE であるときに POST または PUT で得られるものと同じペイロードを受信します。

完全に認証されている有効なセッションがある場合は、状態値が SUCCESS に設定されたペイロードが表示され、いくつかの追加の値が JSON で表示されます。

username

認証されるユーザー名。

Cookie が無効な場合、HTTP Unauthorized (401) エラーが返されます。

DELETE リクエスト

ヘッダーに auth-token Cookie が含まれている DELETE リクエストは、ユーザーセッションおよび関連付けられた RAD 接続の両方を削除しようとします。成功すると、次の JSON ペイロードが返されます。

{ username: username }

失敗時には、HTTP 不正なリクエスト 400 エラーが返されます。

/solaris/api/rad

RAD/Rest URL アクセスポイント。HTTPS 経由の REST を使用して RAD 照会を処理できるようにします。

POST リクエスト

RAD-REST リクエストをその JSON 本体ペイロードとともに処理のために内部 rad-http デーモンにリダイレクトします。

ペイロード形式の詳細は、RAD REST の開発者ガイドを参照してください。

/solaris

ダッシュボードアプリケーションのランディングページ

/solaris/analytics

Analytics アプリケーションのランディングページ

/solaris/js

js フレームワークファイル (JET) を格納するために使用される未認証のディレクトリ

残りの名前空間は、ほかの WSGI アプリケーションで使用できます。

オプション

次の構成プロパティーは、webui/server:default サービスの conf プロパティーグループのメンバーです。

listen_addresses

Apache Listen ディレクティブ形式に準拠する ip:port 文字列のリスト。値が指定されていない場合、Web サーバーは、デフォルトポートを使用して使用可能なすべての IP アドレスで待機します。

cert_file

デフォルトの証明書ファイルの場所

cert_key_file

デフォルトの証明書鍵ファイルの場所

ca_cert_path

デフォルトの CA 証明書パスの場所

server_name

サーバーがそれ自体を識別するために使用する Apache 構成で ServerName として使用する値

absolute_timeout

分単位の絶対の最大ユーザーセッション期間

default_landing_page

https://hostname:6787/ の要求時にユーザーをリダイレクトする相対的な名前空間が含まれている文字列

redirect_root_url

Apache がルート URL (/) を Solaris ダッシュボードアプリケーションにリダイレクトするかどうかを判別するブール値

redirect_from_https

サービスがポート 443 で待機してから、リクエストをポート 6787 にリダイレクトするかどうかを判別するブール値

cipher_suite

Apache によって使用される暗号化

protocol

Apache によって使用されるセキュリティープロトコル

インポート形式

webui/server SMF サービスは、起動時とリフレッシュ時に、特別な形式のファイルを設定システムにインポートします。これらのファイルは、インストールされているアプリケーションによって定義されます。たとえば、analytics(7) WebUI アプリケーションは、analytics(5) でインポート形式ドキュメントを提供します。

なんらかの理由でインポートが失敗した場合、webui/server サービスは、インポートが失敗したことを示すフラグを立てるために機能低下状態に移行します。失敗の詳細は、webui/server SMF ログを参照してください。

使用例 1 ポート 443 での待機

デフォルトで、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 コマンドを使用します。