4.4.7. 基本的なアイデンティティープロバイダーの Apache HTTPD 設定の例
OpenShift Container Platform 4 の基本的なアイデンティティープロバイダー (IDP) 設定では、IDP サーバーが成功および失敗について JSON で応答する必要があります。これを可能にするために、Apache HTTPD で CGI スクリプトを使用できます。本セクションでは、いくつかの例を紹介します。
例: /etc/httpd/conf.d/login.conf
<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>
例: /var/www/cgi-bin/login.cgi
#!/bin/bash echo "Content-Type: application/json" echo "" echo '{"sub":"userid", "name":"'$REMOTE_USER'"}' exit 0
例: /var/www/cgi-bin/fail.cgi
#!/bin/bash echo "Content-Type: application/json" echo "" echo '{"error": "Login failure"}' exit 0
4.4.7.1. ファイルの要件
Apache HTTPD Web サーバーで作成するファイルの要件は以下のとおりです。
-
login.cgi
およびfail.cgi
は実行可能 (chmod +x
) である必要があります。 -
login.cgi
およびfail.cgi
には、SELinux が有効にされている場合、適切な SELinux コンテキストがなければなりません:restorecon -RFv /var/www/cgi-bin
、またはコンテキストがls -laZ
を使用してhttpd_sys_script_exec_t
であることを確認します。 -
login.cgi
は、ユーザーがRequire and Auth
ディレクティブを使用して正常にログインできる場合にのみ実行されます。 -
fail.cgi
は、ユーザーがログインに失敗する場合に実行されます (HTTP 401
応答が返されます)。