Ошибка при аутентификации сайта 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-адресом.