2017-09-11 13 views

答えて

0

LDAP/Active Directoryの

LdapAuthenticationSourceは、ユーザーがLDAP(アクティブディレクトリ)のユーザー名とパスワードでログイン作るために外部認証を実装したものです。

LDAP認証を使用する場合は、最初にAbp.Zero.Ldap Nugetパッケージをプロジェクト(一般にコア(ドメイン)プロジェクト)に追加します。下に示すように、我々は、アプリケーションのLdapAuthenticationSourceを拡張する必要があります。

パブリッククラスMyLdapAuthenticationSource:LdapAuthenticationSource { 公共MyLdapAuthenticationSource(ILdapSettings設定、IAbpZeroLdapModuleConfig ldapModuleConfig) :塩基(設定、ldapModuleConfig) { } }

最後に、AbpZeroLdapModuleにモジュール依存関係を設定し、上で作成したauthソースを使用してLDAPを有効にする必要があります。

[DependsOn(typeof(AbpZeroLdapModule))] 
public class MyApplicationCoreModule : AbpModule 
{ 
    public override void PreInitialize() 
    { 
     Configuration.Modules.ZeroLdap().Enable(typeof (MyLdapAuthenticationSource));  
    } 

    ... 
} 

これらの手順を実行すると、アプリケーションでLDAPモジュールが有効になります。しかし、LDAP認証はデフォルトでは有効になっていません。設定を使用して有効にすることができます。 設定

LdapSettingNamesクラスは、名前を設定するための定数を定義します。これらの定数名は、設定の変更(または設定の取得)中に使用できます。 LDAP設定はテナントごとに行われます(マルチテナントアプリケーションの場合)。したがって、異なるテナントには異なる設定があります(githubの設定定義を参照してください)。

MyLdapAuthenticationSourceコンストラクタでわかるように、LdapAuthenticationSourceはILdapSettingsをコンストラクタ引数として想定しています。このインターフェイスは、Active Directoryに接続するためのドメイン、ユーザー名、およびパスワードなどのLDAP設定を取得するために使用されます。デフォルト実装(LdapSettingsクラス)​​は、これらの設定を設定マネージャから取得します。

設定マネージャで作業する場合は問題ありません。設定マネージャAPIを使用してLDAP設定を変更できます。必要に応じて、データベースに初期/シードデータを追加して、デフォルトでLDAP認証を有効にすることができます。

注:ドメイン、ユーザー名、およびパスワードを定義しないと、アプリケーションが適切な特権を持つドメインで実行されている場合、LDAP認証は現在のドメインに対して機能します。

public class MyLdapSettings : ILdapSettings 
{ 
    public async Task<bool> GetIsEnabled(int? tenantId) 
    { 
     return true; 
    } 

    public async Task<ContextType> GetContextType(int? tenantId) 
    { 
     return ContextType.Domain; 
    } 

    public async Task<string> GetContainer(int? tenantId) 
    { 
     return null; 
    } 

    public async Task<string> GetDomain(int? tenantId) 
    { 
     return null; 
    } 

    public async Task<string> GetUserName(int? tenantId) 
    { 
     return null; 
    } 

    public async Task<string> GetPassword(int? tenantId) 
    { 
     return null; 
    } 
} 

をそして、あなたのモジュールのPREINITIALIZEにIOCにそれを登録します:あなたは別の設定ソースを定義する場合は、以下に示すように、カスタムILdapSettingsクラスを実装することができ カスタム設定

[DependsOn(typeof(AbpZeroLdapModule))] 
public class MyApplicationCoreModule : AbpModule 
{ 
    public override void PreInitialize() 
    { 
     IocManager.Register<ILdapSettings, MyLdapSettings>(); //change default setting source 
     Configuration.Modules.ZeroLdap().Enable(typeof (MyLdapAuthenticationSource)); 
    } 

    ... 
} 

他のソースからLDAP設定を取得できます。

https://aspnetboilerplate.com/Pages/Documents/Zero/User-Management#ldapactive-directory

+0

ありがとう、これは非常に助けになる、私は正しい方向に行ってきた! –

+0

[this](https://stackoverflow.com/questions/49106683/no-component-for-supporting-the-service-abp-zero-configuration-iabpzeroconfig-wa)をご覧ください。 – Aria

関連する問題