Kerberos認証が(何らかの理由で)失敗した場合にApacheが別の認証方法にフォールバックする方法はありますか?認証方法の順序は次のとおりです。
RSAトークン認証は、ADアカウントを持たない外部の関係者によって使用されます。
さらに情報が必要な場合はお知らせください。ありがとう。
私の現在の設定は次のとおりです。
<Directory "/path/to/directory">
AuthType Kerberos
AuthName "Please provide credentials to log in"
KrbAuthoritative off
AuthzLDAPAuthoritative off
AuthBasicAuthoritative off
AuthBasicProvider this-sso this-ad this-radius
Require valid-user
SSLRequireSSL
</Directory>
認証エイリアスは次のとおりです。
<AuthnProviderAlias kerberos this-sso>
KrbAuthRealms THIS.LOCAL
KrbMethodNegotiate on
KrbMethodK5Passwd off
KrbDelegateBasic on
Krb5Keytab /etc/Apache2/this.keytab.key
KrbServiceName HTTP
KrbVerifyKDC off
</AuthnProviderAlias>
<AuthnProviderAlias ldap this-ad>
Include /etc/Apache2/.ldapbinddn
AuthLDAPURL "ldaps://srv1.this.local srv2.this.local:636/OU=DIR,DC=this,DC=local?sAMAccountName?sub?(objectClass=user)"
</AuthnProviderAlias>
<AuthnProviderAlias xradius this-radius>
AuthXRadiusAddServer "rsasrv1.this.local:1812" "Shared_key_here"
AuthXRadiusTimeout 7
AuthXRadiusRetries 2
AuthXRadiusRejectBlank on
</AuthnProviderAlias>
Mod_auth_kerbモジュールのWebサイトは、これについてやや不明確であり、ある時点でAuthType
をKerberosに設定する必要があると述べていますが、「AuthTypeがBasicの場合」、基本的にユーザー名とパスワードのペアを使用することも示唆しています。 AuthType Basic
がKerberosサーバーに対してチェックするために提供するもの。
Kerberos用の他のディレクティブ(具体的にはKrbDelegateBasic on
)は、このモジュールのsourceforgeページに記載されていないようで、このモジュールのどのバージョンを使用しているのか不思議に思います。
ただし、それはさておき、mod_auth_kerbモジュールが、チェーン内の次の認証モジュールに取得した値を、次のモジュールが理解できる方法で何らかの方法で渡すことができない限り、これは機能しない可能性があります。
テストとして、AuthType
をBasic
に、KrbMethodNegotiate
をoff
に、KrbMethodK5Passwd
をon
に変更します。それが動作をまったく変えるかどうかを確認します。これにより、mod_auth_kerbが他のモジュールが理解できる方法でログインデータを収集し、認証方法がネゴシエートされないようにし、チケットではなくユーザー名/パスワードを収集しようとすることが期待されます。
ネゴシエーションの部分は重要です。これは接続ごとに行われるため、クライアントブラウザーが次の認証方法を台無しにする方法をネゴシエートする場合、Kerberos認証を通過することはありません。
私はApacheでKerberos認証を構成したことがないので、これは多少の推測です。ただし、LDAPをファイルベースの基本認証にフォールバックしたので、フォールスルーメカニズムが一般的に機能することはわかっています。