1

Я не уверен, если это что-то обрабатывается в РСИН или апача в целом, но то, что я вижу это и в надежде на какой-то совет:истекает или перенаправлять HTTP 401 для mod_auth_openidc

Клиент вошедшего в нескольких учетных записях Google и на устройстве выбора учетной записи они нажимают неправильную учетную запись, они получают 401 Несанкционированный

Затем они пытаются вернуться на сервер OIDC, и они продолжают получать несанкционированный доступ. Это верно, даже если они очищают файлы cookie и т. Д.

Единственный надежный способ, с помощью которого я могу заставить их войти в систему, - это открыть частное окно в сафари или другую личность в Chrome.

Есть ли способ переадресации 401 на узел Google Account Chooser, а затем разрешить повторную попытку apache? В основном, когда они получают 401 от apache - через openidc - нет хорошего способа повторного повтора. Есть ли способ упростить повторный вход в систему для людей?

Заранее спасибо. Мои конфиги ниже:

<VirtualHost _default_:443> 
    ServerName nameofserver.com 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html 
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains" 
    Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
    SetEnvIf Origin "^(.*\.nameofserver\.co,)$" ORIGIN_SUB_DOMAIN=$1 
    Header set Access-Control-Allow-Origin "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN 
    Header always set Access-Control-Allow-Credentials "true" 
    ErrorDocument 503 "A custom error message" 
    RequestHeader set X-Forwarded-Proto "https" early 
    LimitRequestFieldSize 65000 

    SSLEngine on 
    SSLCertificateFile /etc/apache2/pathtoprivcert 
    SSLCertificateKeyFile /etc/apache2/ssl/pathtoprivkey 
    SSLProtocol    TLSv1.1 TLSv1.2 
    SSLCipherSuite   ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK 
    SSLHonorCipherOrder  on 
    SSLCompression   off 

    OIDCProviderMetadataURL https://accounts.google.com/.well-known/openid-configuration 
    OIDCClientID [email protected] 
    OIDCClientSecret Averysecrtkey 

    OIDCScope "openid email profile" 
    OIDCRedirectURI https://www.nameofserver.com/oauth2callback 
    OIDCCryptoPassphrase Alsoverysecurekey 

    OIDCSessionInactivityTimeout 86400 

    OIDCCookiePath/

    OIDCRemoteUserClaim email 
    OIDCAuthNHeader X-Forwarded-User 

    LogLevel info 


    <Proxy balancer://http-nameofserver> 
    BalancerMember http://www1.nameofserver.com route=0 
    BalancerMember http://www2.nameofserver.com route=1 
    BalancerMember http://www3.nameofserver.com route=2 

    ProxySet lbmethod=byrequests 
    ProxySet stickysession=ROUTEID 
    ProxySet failonstatus=503 
    ProxySet maxattempts=2 
    </Proxy> 

    <Proxy balancer://ws-nameofserver> 
    BalancerMember ws://www1.nameofserver.com route=0 
    BalancerMember ws://www2.nameofserver.com route=1 
    BalancerMember ws://www3.nameofserver.com route=2 

    ProxySet lbmethod=byrequests 
    ProxySet stickysession=ROUTEID 
    ProxySet failonstatus=503 
    ProxySet maxattempts=2 
    </Proxy> 


    RewriteEngine On 
    RewriteCond %{REQUEST_URI} ^/socket.io   [NC] 
    RewriteCond %{QUERY_STRING} transport=websocket [NC] 
    RewriteRule /(.*) balancer://ws-nameofserver/$1 [P,L] 

    ProxyPreserveHost on 
    ProxyPass/balancer://http-nameofserver/ 
    ProxyPassReverse/balancer://http-nameofserver/ 
    ProxyPass /socket.io/ balancer://ws-nameofserver/socket.io/ 
    ProxyPassReverse /socket.io/ balancer://ws-nameofserver/socket.io/ 

    ProxyRequests  Off 
    AllowEncodedSlashes NoDecode 

     <Location /> 
     AuthType openid-connect 
     Require host somealloweddomain.com 
     Require claim hd:corpsite.com 
     Require claim hd:someotherdomain.com 
     Require claim hd:yetanothercompany.com 
     </Location> 

     <LocationMatch "^(?!/t/|/an-url|/another-url|/lasturl)/[^/]+"> 
     OIDCUnAuthAction 401 
     </LocationMatch> 

</VirtualHost> 

ответ