Apache の「require valid-user」は複数の認証タイプで有効です

Apache の「require valid-user」は複数の認証タイプで有効です

当社の Apache は mod_shib_24 (SAML-SP) と mod_auth_openidc (OIDC-RP) の両方を使用しており、どちらも Shibboleth IdP (SAML-IDP と OIDC-OP の両方として機能) に接続されています。

さらに、保護された場所が 2 つあり、1 つは SAML で保護され、もう 1 つは OIDC で保護されています。

  ShibCompatValidUser On

  <Location "/">
    Require shib-session
    AuthType Shibboleth
    ShibRequestSetting requireSession 1
    ShibUseHeaders On
  </Location>


  <Location "/oidctest">
    Require valid-user
    AuthType openid-connect
  </Location>

ここで混乱する部分が来ます:

/oidctest/ 以外にアクセスする場合は、SAML を使用してログインする必要があります (予想どおり、mod_shib_24 が関与します)。ただし、認証が成功すると、OIDC で認証しなくても /oidctest/ にアクセスできるようになります。

これは逆の場合にも機能します。最初に /oidctest/ (新しいプライベート ウィンドウ) にアクセスする場合、OIDC を使用して認証する必要があります (予想どおり、mod_auth_openidc が関与します)。認証が成功すると、他のすべての場所 (/oidctest/ 以外) にもアクセスできるようになります。

では、Apache は valid-user ディレクティブをどのように処理するのでしょうか? Apache では「valid-user」はどのように定義されるのでしょうか?

認証タイプ、モジュール、プロトコルに関係なく、ユーザーは一度ログインするとすべてに対して有効になりますか?

それとも、これは予期しない動作でしょうか?

答え1

Shibboleth wikiから私が理解しているのは、ShibCompatValidUser オン設定は、有効なユーザーを必要とする声明。

V2.5.2 より前で、ShibCompatValidUser が Off (デフォルト) の場合、これは上記の shib-session ルールと同等です。ShibCompatValidUser オプションが有効になっている場合、このルールは Apache 自体によって実装されたルールと互換性を持って実装され、リクエストに null 以外の REMOTE_USER 値が設定されている必要があります。これにより、Shibboleth を他のモジュールやルールとともに展開する機能が復元されます。SP の将来のバージョンでは「特別な」定義が削除される可能性があり、そのようなルールは shib-session に依存するように変更する必要があります。

見るhttps://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPhtaccess

モジュールを区別するために、次のようなテストを使用することもできます。env が必要モジュールによって設定された環境変数を検索します。ShibbolethはデフォルトでShibセッションID例えば。

見るhttps://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPAttributeAccess

関連情報