При настройке проверки на вхождение пользователя в группу в JAS Radius Server (далее - JRS) проверка не срабатывает. При этом, в логах JRS присутствуют записи вида:
ERROR Aladdin.Radius.SecondFactorHandler - AuthenticateAsync failed for user 'domain2.domain.local\user'
System.DirectoryServices.Protocols.LdapException: The supplied credential is invalid.
at System.DirectoryServices.Protocols.LdapConnection.BindHelper(NetworkCredential newCredential, Boolean needSetCredential)
at System.DirectoryServices.Protocols.LdapConnection.SendRequestHelper(DirectoryRequest request, Int32& messageID)
at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request, TimeSpan requestTimeout)
at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request)
at Aladdin.Radius.LdapInfo.GetRootDn()
at Aladdin.Radius.LdapInfo.<.ctor>b__17_0()
at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
at System.Lazy`1.CreateValue()
at System.Lazy`1.get_Value()
at Aladdin.Radius.LdapInfo.get_RootDn()
at Aladdin.Radius.LdapManager.GetGroupDn(LdapInfo ldapInfo, String groupName)
at Aladdin.Radius.LdapManager.<>c__DisplayClass10_0.<IsUserMemberOfGroup>b__1(String _)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Aladdin.Radius.LdapManager.IsUserMemberOfGroup(String group, String userName)
at Aladdin.Radius.Server.Handlers.AccountSystemHandler.<>c__DisplayClass4_0.<HandlePacket>b__2(String group)
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
at Aladdin.Radius.Server.Handlers.AccountSystemHandler.HandlePacket(IRadiusPacket packet)
at Aladdin.Radius.BasePacketHandler.CallNext(IRadiusPacket packet, PacketCode defaultResponse, Boolean cleanState)
at Aladdin.Radius.SecondFactorHandler.Authenticate(IRadiusPacket packet, String authMethod)
Решение:
1. Необходимо убедиться, что группа входит в контейнер Builtin (в AD).
2. Если в конфигурации JRS в секции "LdapAuthorizeGroupMember" в качестве домена указывается FQDN запись домена, необходимо убедиться что указан домен максимум второго уровня. Если же ваш домен 3-го и более уровня, то необходимо указать NETBIOS-имя домена:
"LdapAuthorizeGroupMember": [
{
"Groups": "domain.local\\Groupname",
}
],
или
"LdapAuthorizeGroupMember": [
{
"Groups": "DOMAIN\\Groupname",
}
],