LDAPは最新版のaspnetboilerplateでどのように動作していますか?最新版のaspnetboilerplateでLDAPがどのように働いていますか
LDAPに接続し、ADグループに基づくユーザーアクセスのコントロールを設定する方法については、ドキュメントには何も表示されません。
LDAPは最新版のaspnetboilerplateでどのように動作していますか?最新版のaspnetboilerplateでLDAPがどのように働いていますか
LDAPに接続し、ADグループに基づくユーザーアクセスのコントロールを設定する方法については、ドキュメントには何も表示されません。
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
ありがとう、これは非常に助けになる、私は正しい方向に行ってきた! –
[this](https://stackoverflow.com/questions/49106683/no-component-for-supporting-the-service-abp-zero-configuration-iabpzeroconfig-wa)をご覧ください。 – Aria
なぜ誰かがこれを投票しましたか?その正当な疑問。 –