7.4.7. 기본 ID 공급자에 대한 Apache HTTPD 구성 예
OpenShift Container Platform 4의 기본 ID 공급자(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
7.4.7.1. 파일 요구 사항
다음은 Apache HTTPD 웹 서버에서 생성하는 파일에 대한 요구 사항입니다.
-
login.cgi
및fail.cgi
를 실행할 수 있어야 합니다(chmod +x
). -
SELinux가 활성화되어 있는 경우
login.cgi
및fail.cgi
에 적절한 SELinux 컨텍스트restorecon -RFv /var/www/cgi-bin
가 있어야 합니다. 그러지 않으면ls -laZ
를 사용하여 컨텍스트가httpd_sys_script_exec_t
인지 확인합니다. -
login.cgi
는 사용자가Require and Auth
지시문에 따라 성공적으로 로그인한 경우에만 실행됩니다. -
사용자가 로그인하지 못하면
fail.cgi
가 실행되어HTTP 401
응답이 표시됩니다.