1

OpenID Connect IDプロバイダに対する認証を必要とするリバースプロキシを設定しようとしています。OpenIDで認証されたApache2リバースプロキシldapを介した接続と認証

ユーザは、自分のデータにリバースプロキシアクセスを許可します。

プロキシの背後にあるアプリケーションの中には、特定のLDAPグループのメンバーである場合にのみ、ユーザーがアクセスできるものがあります。悲しいことに、アプリケーションはダンプであり、自分自身を認証することはできないため、リバースプロキシはその部分を処理する必要があります。

mod_auth_openidcで認証部分を設定するのはあまり難しくありませんでした。 私が苦労しているのは、承認部です。私はmod_authnz_ldapの実例を持っており、ユーザ名とパスワードはBasicAuth以上が必要です。

OpenID Connectのアイデアは、Resource Server(私の場合はプロキシ)がユーザーのパスワードを知らず、チェックする必要がないということです。これはOpenID Connect Identity Providerに委任されています。

私はこの方法に必要なパスワードがありません。私の考えは、クライアントからのx-my-oidc-usernameのようなヘッダーを拒否するoidc authを持つ仮想ホストを作成し、一度認証されたこのヘッダーを設定し、127.0.0.1上の別のvhostバインドに要求を渡すので、認証を直接バイパスすることはできません。その仮想ホストはヘッダを認証されたユーザ名として受け取り、LDAP認証を実行します。

私はちょうどldapモジュールのAuthentication Phaseをスキップして、OpenID Connect IDトークンのようなどこか他の場所からユーザー名を取得する方法を見たことがありません。

アイデア/提案/アプローチ/ヒントはありますか?

答えて

1

ここmod_auth_openidcmod_authnz_ldapを結合する方法を示し記事があります: https://github.com/pingidentity/mod_auth_openidc/wiki/Authorization#2-mod_authnz_ldapは:

OIDCProviderMetadataURL https://accounts.google.com/.well-known/openid-configuration 
OIDCClientID <client_id> 
OIDCClientSecret <client_secret> 
OIDCRedirectURI http://example.com/example/redirect_uri 
OIDCScope "openid email profile" 

# Set REMOTE_USER to the email address. 
# this is the value that mod_authnz_ldap leverages as the first parameter after basedn. 
# in the example below, REMOTE_USER = email = mail attribute in LDAP. 

OIDCRemoteUserClaim email 
<Location /example/> 
    AuthType openid-connect 
    AuthLDAPURL "ldap://example.com/ou=people,dc=example,dc=com?mail?sub?(objectClass=*)" 
    AuthLDAPGroupAttribute member 
    Require ldap-group cn=myTestAccesss,ou=Groups,dc=example,dc=com 
</Location> 
関連する問題