OpenID Connect IdentityProviderに対する認証を必要とするリバースプロキシをセットアップしようとしています。
次に、ユーザーは自分のデータへのリバースプロキシアクセスを許可します。
プロキシの背後にある一部のアプリケーションは、ユーザーが特定のLDAPグループのメンバーである場合にのみアクセスできます。残念ながら、アプリケーションはダンプであり、それ自体を承認できないため、リバースプロキシがその部分を処理する必要があります。
mod_auth_openidcを使用して認証部分を設定することはそれほど難しくありませんでした。私が苦労しているのは承認部分です。BasicAuthを介してユーザー名とパスワードを必要とするmod_authnz_ldapの実例があります。
OpenID Connectの考え方は、Resource Server(私の場合はプロキシ)がユーザーのパスワードを知ることはなく、パスワードを確認する必要がないということです。これは、OpenID Connect IdentityProviderに委任されます。
したがって、このアプローチに必要なパスワードがありません。私のアイデアはx-my-oidc-username
、クライアントからのように一部のヘッダーを拒否し、認証後にこのヘッダーを設定127.0.0.1
し、認証をバイパスして直接アクセスできないように要求を別のvhostバインディングに渡す、oidcauthを使用して仮想ホストを作成することでした。その仮想ホストは、認証されたユーザー名としてヘッダーを取得し、LDAP認証を実行します。
LDAPモジュールの認証フェーズをスキップして、OpenID ConnectIDトークンなどの他の場所またはカスタムヘッダーからユーザー名を取得する方法を見たことがありません。
アイデア/提案/アプローチ/ヒントはありますか?
組み合わせる方法を示す記事がmod_auth_openidc
ありmod_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>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加