Ошибка при аутентификации сайта sharepoint с пользователями Azure AD с использованием пространства имен Azure Access Control

У меня есть сайт Sharepoint, работающий на виртуальной машине Azure. Теперь я хочу аутентифицировать свой сайт sharepoint с пользователями Azure AD.

Для этого я перешел по ссылке ниже, но получаю ошибку после входа в систему.

Использование Microsoft Azure Active Directory для проверки подлинности SharePoint 2013

Я реализовал, как указано в ссылке ссылки, но все еще сталкивается с ошибкой. Когда я получаю доступ к своему URL из браузера, он спрашивает меня, через что вы хотите войти.

Затем при выборе провайдера ACS он перенаправит меня к логину office365. После того, как я отправлю свои учетные данные, он перенаправит меня на

https://testvm.cloudapp.net/_trust/

и получил ошибку. Поэтому я проверил в журнале sharepoint и обнаружил ошибку ниже.

Не удалось найти информацию о поиске по сайту для запроса Uri urn: sharepoint: spvms.

SPAudienceValidator: Uri 'urn:sharepoint:spvms аудитории недопустим для контекста.

Получение сообщения об ошибке для исключения Microsoft.IdentityModel.Tokens.FailedAuthenticationException: не удалось проверить URI аудитории.

SPSaml11SecurityTokenHandler: Не удалось проверить аудиторию для запроса ' https://testvm.cloudapp.net/_trust/' со следующими URI аудитории: 'urn:sharepoint:spvms', .

Ошибка приложения при доступе /_trust/, Ошибка = URI аудитории не может быть проверен.
в Microsoft.SharePoint.IdentityModel.SPSaml11SecurityTokenHandler.ValidateConditions(условия SamlConditions, булево принудительное принудительное принудительное выполнение AudienceRestriction)
в Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler.ValidateToken(токен SecurityToken)
в Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection.ValidateToken(токен SecurityToken)
в Microsoft.IdentityModel.Web.TokenReceiver.AuthenticateToken(токен SecurityToken, логическое значение sureBearerToken, String endpointUri)
в Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.SignInWithResponseMessage(запрос HttpRequest)
в Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Отправитель объекта, аргументы EventArgs)
в Microsoft.SharePoint.IdentityModel.SPFederationAuthenticationModule.OnAuthenticateRequest (Отправитель объекта, EventArgs eventArgs)
в System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
в System.Web.HttpApplication.ExecuteStep(шаг IExecutionStep, логический и завершен синхронно)

2 ответа

Похоже, аутентификация в Azure AD работает, а перенаправление в SharePoint работает правильно. Используйте Get-SPTrustedIdentityTokenIssuer и проверьте область... похоже, область, отправляемая из Azure ACS, не соответствует области, которую вы использовали в PowerShell.

Я получил рабочее решение для этого. Дело в том, что вы не должны использовать New-MsolServicePrincipal подключить Azure AD и ACS.

Вместо этого вы добавляете ACS в качестве приложения к идентификатору Azure.

введите описание изображения здесь

Затем просмотрите его конечные точки и скопируйте ссылку FEDERATION METADATA DOCUMENT

введите описание изображения здесь

Вставьте скопированную ссылку в поле URL вашего провайдера идентификации в ACS

введите описание изображения здесь

ПРИМЕЧАНИЕ: если вы использовали New-MsolServicePrincipal вам нужно будет использовать Remove-MsolServicePrincipal, В противном случае Azure не позволит вам зарегистрировать приложение с таким же URL-адресом.

Другие вопросы по тегам