2014-01-07 8 views
3

Я пишу простое веб-приложение .NET для использования EWS для просмотра некоторых комнатных календарей на облачном сайте Exchange Online (Office 365). Я знаю, как создать службу Exchange в моем коде, установить учетные данные на новый WebCredentials (с действительным именем пользователя/паролем) и автообнаружение URL-адреса службы.Безопасны ли WebCredential Exchange Online (EWS)?

Мой вопрос: являются ли пароли имя пользователя/пароля отправлены безопасно или очистить текст?

Если это не безопасно, как насчет того, если я явно задал URL-адрес службы для URI https://outlook.office365.com/EWS/Exchange.asmx?

+0

** Как ** вы подключаетесь к EWS? Пожалуйста, покажите нам свой код. – Dai

+0

'ExchangeService svc = new ExchangeService(); svc.Credentials = новые WebCredentials (AuthEmailAddress, AuthEmailPassword); svc.AutodiscoverUrl (AutoDiscoverEmailAddress); ' – TheDudeDude

ответ

3

Вместо того, чтобы звонить AutoDiscoverUrl(), вы можете set the url directly usingexchangeService.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");.

Кроме того, после вызова AutoDiscoverUrl() вы можете также проверить Url свойство вашего ExchangeService объекта, чтобы увидеть решает ли это к защищенной конечной точки или до конечной точки, которым вы доверяете (из определенного списка в файле конфигурации, например).

Чтобы быть абсолютно уверенным, что возвращенный URL-адрес является безопасным и безопасным, вы должны убедиться, что возвращаемый сертификат из организации, которую вы ожидаете, и что сертификат подписан доверенным органом. Это process is explained here. Реализация по умолчанию, упомянутая в его статье, также принимает самозаверяющие сертификаты, вы, вероятно, не хотите делать это в своем производственном коде. Например, вы можете привязать сертификат к определенному отпечатку пальца.

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

// When processing reaches this line, the only errors in the certificate chain are 
// untrusted root errors for self-signed certificates. These certificates are valid 
// for default Exchange server installations, so return true. 

// Or when you know that the certificate is signed by a trusted root authority, return false. 
return false; 

Чтобы ответить на ваш вопрос, имя пользователя/пароль, как правило, безопасно пересылаются с помощью NTLM или Kerberos , В худшем случае they can be sent using basic authentication, но если вы подключаетесь через SSL, вам не следует перехватывать пароль, если вы правильно проверяете SSL-сертификаты.

+0

Я уже задал URL явно, но ваш комментарий хорош (спасибо). Я не могу перейти к моему коду прямо сейчас, но завтра проверю свойство URL. Это может быть достаточно хорошо. Завтра я поеду завтра. Еще раз спасибо. – TheDudeDude

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