8.4.7. 基本的なアイデンティティープロバイダーの Apache HTTPD 設定の例
Apache HTTPD の CGI スクリプトを使用すると、OpenShift Container Platform の基本的なアイデンティティープロバイダーに対して JSON レスポンスを返すリモート認証サーバーを設定できます。
以下は、Apache の VirtualHost 設定ファイルの例です。
<VirtualHost *:443>
# CGI Scripts in here
DocumentRoot /var/www/cgi-bin
# SSL Directives
SSLEngine on
SSLCipherSuite PROFILE=SYSTEM
SSLProxyCipherSuite PROFILE=SYSTEM
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
# Configure HTTPD to execute scripts
ScriptAlias /basic /var/www/cgi-bin
# Handles a failed login attempt
ErrorDocument 401 /basic/fail.cgi
# Handles authentication
<Location /basic/login.cgi>
AuthType Basic
AuthName "Please Log In"
AuthBasicProvider file
AuthUserFile /etc/httpd/conf/passwords
Require valid-user
</Location>
</VirtualHost>
以下は、login.cgi CGI スクリプトファイルの例です。
#!/bin/bash
echo "Content-Type: application/json"
echo ""
echo '{"sub":"userid", "name":"'$REMOTE_USER'"}'
exit 0
以下は、fail.cgi CGI スクリプトファイルの例です。
#!/bin/bash
echo "Content-Type: application/json"
echo ""
echo '{"error": "Login failure"}'
exit 0
8.4.7.1. ファイルの要件 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Apache HTTPD Web サーバーで作成するファイルの要件は以下のとおりです。
-
login.cgiとfail.cgiの CGI スクリプトファイルは実行可能である必要があります。両方のファイルに対してchmod +xコマンドを使用します。 -
SELinux が有効になっている場合、
login.cgiとfail.cgiの CGI スクリプトファイルには、適切な SELinux セキュリティーコンテキストが必要です。restorecon -RFv /var/www/cgi-binコマンドを実行するか、ls -laZコマンドを使用してコンテキストがhttpd_sys_script_exec_tSELinux タイプであることを確認します。 -
login.cgiCGI スクリプトファイルは、Apache の設定ディレクティブのRequireおよびAuthに従ってユーザーが正常にログインした場合にのみ実行されます。 -
fail.cgiCGI スクリプトファイルは、ユーザーがログインに失敗し、HTTP 401HTTP ステータスコードを返した場合に実行されます。