У меня есть работающее тестовое приложение, использующее Windows Idendity Foundation SDK и ADFS 2.0 для проверки подлинности, которое работает в Windows Server 2008 R2, IIS 7.5, в режиме пула приложений с интегрированным управляемым конвейером.
Моя проблема в том, что «настоящее» приложение, которое мне нужно настроить с таким типом аутентификации, может работать только в режиме пула классических управляемых конвейерных приложений из-за устаревшего кода, и когда я выбираю его, я получаю «HttpException (0x80004005): Не удалось Ошибка "Выполнить URL".
Есть у кого-нибудь идеи, как решить эту проблему?
ОБНОВЛЕНИЕ: я обнаружил, что https://example.com/myapplicatio/ дает мне ошибку, но https://example.com/myapplicatio/Default.aspx работает.
Мне удалось найти решение причины сбоя моего приложения с этой ошибкой.
В моей виртуальной среде я пытался получить экземпляр экстрасети MOSS 2007 для аутентификации с использованием сервера ADFS 2.0 с помощью SharePointClaimsMembershipProvider.
Подсказка, которую я получил из некоторых других ответов, заключалась в том, что идентификатор утверждения не заполнялся правильно, особенно при использовании анонимного доступа. Некоторые люди предоставили код для обработки ситуаций анонимного доступа.
В моем случае я проходил аутентификацию, но все еще получал эту ошибку. Итак, в основном проблема в том, что ADFS2.0 не предоставлял типы удостоверений утверждений, для которых было настроено мое приложение.
Вы можете увидеть, какие утверждения вы хотите получить для своего приложения, в файле web.config.
<microsoft.identityModel>
<service>
<audienceUris>
<add value="https://moss2007hv.kor.cmil.mil/" />
</audienceUris>
<applicationService>
<claimTypeRequired>
<!--Following are the claims offered by STS 'http://adfs.kor.cmil.mil/adfs/services/trust'. Add or uncomment claims that you require by your application and then update the federation metadata of this application.-->
<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" optional="true" />
<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" optional="true" />
<!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" optional="true" />-->
<!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" optional="true" />-->
<!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" optional="true" />-->
<!--<claimType type="http://schemas.xmlsoap.org/claims/CommonName" optional="true" />-->
<!--<claimType type="http://schemas.xmlsoap.org/claims/EmailAddress" optional="true" />-->
<!--<claimType type="http://schemas.xmlsoap.org/claims/Group" optional="true" />-->
<!--<claimType type="http://schemas.xmlsoap.org/claims/UPN" optional="true" />-->
<!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" optional="true" />-->
<!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" optional="true" />-->
<!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" optional="true" />-->
<!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant" optional="true" />-->
<!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod" optional="true" />-->
<!--<claimType type="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid" optional="true" />-->
<!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid" optional="true" />-->
<!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid" optional="true" />-->
<!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid" optional="true" />-->
<!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid" optional="true" />-->
<!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid" optional="true" />-->
<!--<claimType type="http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname" optional="true" />-->
</claimTypeRequired>
</applicationService>
<!--Commented out by Federation Utility for SharePoint 3.0-->
<!--<serviceCertificate><certificateReference x509FindType="FindByThumbprint" findValue="DAC77B6076433468D5E1030F8B66126BF261F2BB" storeLocation="LocalMachine" storeName="My" /></serviceCertificate>-->
<federatedAuthentication>
<wsFederation passiveRedirectEnabled="true" issuer="https://adfs.kor.cmil.mil/adfs/ls/" realm="https://moss2007hv.kor.cmil.mil/" requireHttps="true" />
<cookieHandler requireSsl="true" />
</federatedAuthentication>
<serviceCertificate>
<certificateReference x509FindType="FindByThumbprint" findValue="DAC77B6076433468D5E1030F8B66126BF261F2BB" storeLocation="LocalMachine" storeName="My" />
</serviceCertificate>
<issuerNameRegistry type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<trustedIssuers>
<add thumbprint="FC144B44D2D81BCA7CFB933A8D818236C94E8505" name="http://adfs.kor.cmil.mil/adfs/services/trust" />
</trustedIssuers>
</issuerNameRegistry>
</service>
</microsoft.identityModel>
В приведенном выше примере ожидаются утверждения имени и роли.
Итак, затем я вернулся к своему серверу ADFS и убедился, что доверие проверяющей стороны создано правильно.
Затем вы щелкните правой кнопкой мыши доверие проверяющей стороны и измените правила утверждения. Щелкните существующее правило правой кнопкой мыши или добавьте правило, если оно не существует. В этом примере я заметил, что не установил тип исходящего утверждения для имени. Итак, я использовал атрибут LDAP: User-Principle-Name и сопоставил его с именем типа исходящего утверждения.
Для ролей я использовал Token-Groups-Unqualified Names и сопоставил это с ролью.
После того как я правильно настроил правило на моем сервере ADFS для предоставления утверждений, запрошенных в моем web.config, ошибка исчезла, и все заработало, как и ожидалось.
У меня такая же проблема. Вот еще одно подобное обсуждение в другом месте. Вы решили свою проблему?
http://social.msdn.microsoft.com/Forums/en/Geneva/thread/43392dc5-e764-4027-8de5-1638a4c17540
Комментарии Поллема внизу полезны.