3

私は、認証に関して2つのことを実行する必要があるPerlDancerWebアプリケーションに取り組んでいます。

  1. アプリケーションにアクセスするためにActiveDirectoryに基づいてユーザーを認証します
  2. いくつかの.NETWebサービスにアクセスするためのユーザーとして認証します。

このアプリケーションは、Linuxボックス上のApacheによってCGIアプリケーションとしてホストされており、Apacheの構成をあまり制御できません。

以下は、現在機能しているアプリケーションのワークフローです。

  1. ユーザーにログインページを表示する
  2. ユーザーがフォームを送信したら、Authen :: Simple::ActiveDirectoryを使用してアカウントが有効であることを確認します
  3. Dancer :: Session :: Cookie(暗号化されたCookie)を使用してユーザーの資格情報を保存する
  4. ユーザーに検索フォームを表示する
  5. ユーザーがこのフォームを送信したら、Authen::NTLMおよびSOAP::Liteを使用して.NETサービス(ここの例と同様)にアクセスし、検索を実行します
  6. 結果をユーザーに表示する

ここでのユーザー資格情報の処理は私に関係がありますが、私は一般的にWebアプリケーションと認証に不慣れです。小さな内部アプリケーションの場合、これは大丈夫ですか?そうでない場合、このプロセスを改善することをどのように提案しますか?私が言ったように、上記のアプリケーションは機能しますが、改善できる/改善されるべきだと感じています。

4

2 に答える 2

1

解決策の 1 つ (の一部) は、Apache Web サーバーに認証を処理させることです。これにはKerberosを使用できます。そのため、許可されたユーザーのみがアプリケーションにアクセスできます。その場合$ENV{REMOTE_USER}、ユーザー名が含まれます (例: foo.bar@MY.DOMAIN.COM)。

現在のユーザーに関する詳細情報が必要な場合は、LDAP (ドメインに含まれる) を照会できます。共通 (LDAP) ユーザーを使用して、現在のユーザー foo.bar@MY.DOMAIN.COM に関する詳細情報を取得します。

私はこれが最初の部分だけであることを知っています。SOAP による Kerberos チケットの使用/受け渡しの経験がありません。しかし、これをなんとか処理できれば、クリーンな SSO ソリューションを手に入れることができます。

HTH

于 2013-02-24T12:17:12.803 に答える
0

これは Apache 構成で行います。以下のようなものが必要です。Active Directory にバインドするには、パスワードなしの読み取り専用ユーザーが必要です。

    AuthName "Active Directory"
    AuthType Basic
    AuthBasicProvider ldap
    AuthLDAPUrl ldap://server:389/OU=COMPANY,DC=COMPANY,DC=com?sAMAccountName,mail,name,extensionAttribute2,memberOf?base?(objectClass=user)
    AuthzLDAPAuthoritative on
    AuthLDAPBindDN "CN=ReadOnlyUser,OU=ServiceAccounts,OU=Users,OU=XXX,OU=COMPANY,DC=COMPANY,DC=com"
    AuthLDAPGroupAttributeIsDN on 
    require valid-user
于 2014-08-05T10:22:31.017 に答える