2012-05-18 2 views
4

Мне нужно проверить, существует ли какой-либо конкретный пользователь или нет в Active Directory по ADFS.Аутентификация пользователя службой ADFS (служба федерации Active Directory)

Итак, я хочу получить ADFS до check user Authenticationпо UserName/Password.

Не могли бы вы предоставить образец кода или учебник для этого же.

Заранее благодарен!

+0

Вы на самом деле задаете здесь два вопроса: может ли ADFS проверить, существует ли пользователь в Active Directory и может ли я аутентифицироваться в ADFS, используя имя пользователя и пароль. – flayn

ответ

1

Входящие в AD FS 2.0 страницы поддерживают аутентификацию имени пользователя и пароля из коробки. Никакой код или настройки не нужны.

0

В соответствии с @Marnix это не соответствует поведению.

Однако, просто указать:

Проверка подлинности пользователя не то же самое, как проверка, существует ли конкретный пользователь в Active Directory.

например. пользователь может быть заблокирован. Он все еще существует в AD, но не сможет аутентифицироваться.

5

Чтобы использовать проверку подлинности Имя пользователя/пароль, то можете использовать

доверие/13/UsernameMixed

конечная точка ADFS 2.0.

Это НЕ проверяет, существует ли пользователь в Active Directory!

В коде вы запрашиваете маркер, как это:

WSTrustChannelFactory adfsfactory = new WSTrustChannelFactory(new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential), 
          StsEndpoint); 

adfsfactory.TrustVersion = TrustVersion.WSTrust13; 

// Username and Password here... 
factory.Credentials.UserName.UserName = "domain\username"; 
factory.Credentials.UserName.Password = "password"; 

IWSTrustChannelContract channel = adfsfactory.CreateChannel(); 

// request the token 
SecurityToken token = channel.Issue(rst); 

Затем создайте фабрику каналов для службы с помощью маркеров:

var binding = new WS2007FederationHttpBinding(WSFederationHttpSecurityMode.Message); 

var factory = new ChannelFactory<IYourInterface >(binding, "your service address"); 

factory.ConfigureChannelFactory(); 

IYourInterface channel = factory.CreateChannelWithIssuedToken(token); 

Надеется, что это помогает!

+0

Я считаю, что это проверит проверку подлинности ... Вы считаете, что ADFS предоставляет API, чтобы просто проверить, существует ли конкретный пользователь или нет с помощью учетных данных (например, электронной почты/пароля)? – nunu

+0

Да, как я писал в сообщении, вы можете использовать это для аутентификации. Насколько я знаю, в ADFS нет функции, позволяющей проверить, существует ли пользователь. Вы можете написать очень простой веб-сервис, чтобы проверить, существует ли пользователь, или даже веб-сайт. – flayn

+1

LdapConnection.UserExists (UserName); Возможно, это то, что вы ищете. – flayn

Смежные вопросы