문제

Cloudshare 환경 으로 구성된 3 기:

  • 한 Sharepoint2013(이것은 어디서 나와 함께 개발 VS2012 설치)
  • 또 다른 대한 SQL Server2012
  • 및 다른 활성 디렉토리

나를 만들려고 높은 기본적인 신뢰 응용 프로그램은 사용하여 Sharepoint2013-서버 프로토콜입니다.

저는 여러 가지 가이드:

면 나는 실행하는 프로젝트(기본 코드 템플릿)에서 대하고 신뢰 응용 프로그램을 얻는 예외에는 다음과 같은 라인:

Uri hostWeb = new Uri(Request.QueryString["SPHostUrl"]);

using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity))
{
    clientContext.Load(clientContext.Web, web => web.Title);
    clientContext.ExecuteQuery(); // throws exception
    Response.Write(clientContext.Web.Title);
}

에서의 기본입니다.aspx.cs

예외가 될 수 있는 다음과 같습니다.

원격 서버에서 오류를 반환했습니다:(403)금지입니다.

원격 서버에서 오류를 반환했습니다:(401).

가 여러 가지 문제 해결이 끝이 없는 행운입니다.나는 SP2013 전문가가 그렇게 어떤 도움이 될 것입니다 감사합니다.

감사

업데이트

여기에는 ULS 로그 항목과 관련된 요청은:http://pastie.org/pastes/8395956/text

도움이 되었습니까?

해결책

단순성을 나는 분명한 사실!

사용자가 인증되지 않고 자원이 필요합 인증

이 말이 뭔가 잘못된 것에 손을 흔들어(인증서가 전송되지 않았거나 잘못되었다),그 microsoft 제품이 최고의 장소에서 보는 것입니다 msdn.

그것은 명확하게 읽어보십시오:

다음 단계는 선택입니다.그러나 우리가 추천하는 개발할 테스트 HTTPS 켜져 있습니다.을 끄는 HTTPS 발생할 수 있습으로 당신 개발자를 놓치의 특정 문제 때 응용 프로그램을 구축하는 것이 발생할 생산 가동 중 배포 HTTPS 이 필요합니다.

지금 당신이 읽고 주의를 읽고,문제는 당신의 정보를 제공합니다.

OAuth 를 지금이 필요합 SharePoint 을 실행하는 HTTPS,뿐만 아니라 귀하의 서비스 하지만 또한 SharePoint2013.당신을 얻을 것 403()메시지 하려고 하면 전화를 사용하여 SharePoint 테스트 인증서입니다.

컴퓨터에서 SharePoint2013 을 설치,설정할 수 있습 off HTTPS 요구를 개발하는 동안 다음을 사용하여 Windows PowerShell 에서 로컬로 명령을 실행합니다.

그래서 문제가 없다!그것의 주위에 얻을 개발하는 동안 마:

이에 powershell 테스트/개발:

$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $true
$serviceConfig.Update()

면 완성되는 반드시 그것이 어떻게!

$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $false
$serviceConfig.Update()

지금도 참고:

에서 높은 신뢰 응용 프로그램은 없다,컨텍스트는 토큰을 사용하는 경우에도 appredirect.aspx 파일입니다.컨텍스트로 토큰은 특정 구성 을 사용하는 Windows Azure 액세스 제어 서비스(ACS).그러나, 액세스 토큰은 여전히 필요합니다. 를 사용할 경우 높은 신뢰도 구성,웹 응용 프로그램은 사용자를 인증 같은 방법으로는 SharePoint2013 하는지(즉,응용 프로그램은 에 대한 책임을 만드는 사용자의 일부 액세스는 토큰).

당신은 당신을 사용하여 tokenhelper 클래스를 얻을 수 clientcontext?

        using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity))
        {
            clientContext.Load(clientContext.Web, web => web.Title);
            clientContext.ExecuteQuery();
            Response.Write(clientContext.Web.Title);
        }

도 정확히 무엇을 하려는 당신이 더 필요할 수 있습 권한에 따라 진행!

액세스하는 다른 속성이 필요할 수 있습에 대한 사용 권한을 요청 host web.

http://msdn.microsoft.com/en-us/library/fp179901.aspx

희망은 위의 질문에 대한 답변이!당신이 필요가 있는지 확인하는 위 제대로 수행을 위해 그것은 작동하려면!


는 경우는 여전히 문제보다 뭔가 잘못 guid 를 발급한 vs2012,는 자동차 전송 F5 키를 누르면 이 설정에서 웹.config 에서 이 라인:

<add key="IssuerId" 

변경 guid 에서 상부 케이스를 더 낮은 경우:

from:

<add key="IssuerId" value="F2AE6B96-1FC0-43C6-B5D0-900117C491A4"/>

하기

<add key="IssuerId" value="f2ae6b96-1fc0-43c6-b5d0-900117c491a4"/>

분명히 당신의 guid 될 것입니다 위에서 다른;)

또한 참고할 필요한 인증을 위한 각각의 개별 응용 프로그램!또한지 확인 guid 과 같 powershell guid 를 사용 Get-SPTrustedSecurityTokenIssuer 과 같아야 합니다.config!

http://www.jamestsai.net/Blog/post/SharePoint-Provider-Hosted-App-401-Unauthorized-error-on-clientContextExecuteQuery().aspx

업데이트

그냥 쳐다보면서 로그 파일!

그것을 무너뜨리는 그 실리 인증!어떤 방법을 사용하고 있습니까?ntlm?kerbos?ect...

이것은 기본적인 방법을 알고 있는 설정의 농장과 인증!

이제가 될 수 있는 여러 가지 문제가에 의해 여기에서 보이는 오류!나는 당신을 통해 아래 링크!I would highly recommend 읽으신 후 링크는 모든 경우에서 올바른 설치를 실행 New-SPTrustedSecurityTokenIssuer 이 예시에서 찾을 수 있습 마지막 링크 아래쪽에 페이지!이를 해결할 수 있습니다 당신이 문제점으로 토큰 부분과 올바른 핸드셰이킹을 사이에 두 개의 서버(유효성을 검사하는 서).

1)토큰가 전송되지 않으로 인하여 보안 설정하지 않는다.

윈도우를 사용한다고 주장 모드를 위해 사용자 인증 웹 응용 프로그램을 사용하도록 구성되어 Kerberos 인증 떨어지지 않고 다시 NTLM 인증 프로토콜,다음 응용 프로그램 인증 작동하지 않습니다.

http://technet.microsoft.com/en-us/library/ee806870.aspx

및/또는

2)사용하여 서버 auth,이것은 그것이 될 수 있는 잘못된 것!귀하의 프로필이 동기화되었??

2013 년 서버는지 확인하는 그룹 구성원 동기화는 사용자 프로필 서비스 응용 프로그램입니다.

는 경우 사용자 프로필이 존재한 사용자와 관련된 그룹 구성원 이 동기화되지 않은 접근이 거부될 수 있습니다 경우 사용자정 에 대한 액세스 권한을 부여할 지정한 리소스입니다.따라서,는지 확인 그룹 구성원 동기화는 사용자 프로필 서비스 응용 프로그램.

http://technet.microsoft.com/en-us/library/jj219806.aspx

지금 이에 필요한 서버는 설치 작동하려면!

서버 인증할 수 있는 서버를 위한 가능 서버에 액세스하려면 인증 및 리소스를 요청 하나가 다른 사용자를 대신하여.따라서 서버를 실행하는 SharePoint Server,2013 는 서비스를 받는 자원을 요청 을 완료할 수 있어야 하며,두 개의 작업:

리하이드레이션하기 위해 사용자의 id,을 수행할 수 있는 서버 서버가 인증에 대한 액세스를 요청 SharePoint 리소스입니다.SharePoint Server2013 는 클레임을 수신 보안 토큰을 해결하고 특정 SharePoint 사용자.By 기본 SharePoint Server 에서는 2013 년는 사용자의 사용자 프로필 서비스 응용 프로그램를 해결하는 정체성입니다.

그 결과는 상기의:

는 경우 사용자 프로필 및 관련 그룹 구성원에 대한 사용자는 동기화되지 않은 SharePoint Server 에서는 2013 년 잘못 거부할 수 있습 액세스 주어진 리소스입니다.따라서 확인하는 그룹 구성원 과 동기화된 사용자 프로필 서비스 응용 프로그램입니다.Windows 클레임,사용자 프로필 응용 프로그램 서비스 수입품은 네 가지 핵심 사용자 특성 앞에서 설명하고 그룹 회원 가입을 해야합니다.

http://technet.microsoft.com/en-us/library/jj729797.aspx

점이 되는 토큰 및 인증을 제대로 작동하지 않기 때문에 하나의 설정이 잘못된 보안이 유형이나 구성!을 알고 무엇을 했는 것입니다 determin 어디인지 잘못된 것!분명히 그것처럼 보이는 서버 인증이 거부된 토큰으로 전송되지 않습니다.

는 경우에 당신을 믿는 인증 프로토콜은 올바른 것보다,이 가이드를 따를 수 있습을 읽었으면 위의 링크:

http://technet.microsoft.com/en-us/library/jj655400.aspx

위 링크를 설명하고 보여 서버에 대한 단계별 senarios

을 신뢰를 만들 사이에 두 개의 서버(을 만들 사이에 신뢰를 서버를 서버의 주체입니다.)

이 가이드를 따르십시오!용 New-SPTrustedSecurityTokenIssuer

http://technet.microsoft.com/en-us/library/jj219695.aspx

이 텍스트와 많은 링크!으로 서버 서버 로그에는 일반/설치 내가 줄 수 있는 확실한 대답!하지만 내가 무엇을 알고 있는 핸드셰이킹을 사이에 두 개의 서버가 잘못된 것을 의미를 목표로 초기 설정!위 링크를 희망 문제를 해결하기 위해 사 핸드셰이킹을 통과하는 올바른 자격 증명을 제대로 작동하려면!

다른 팁

비슷한 문제가있었습니다.ClientContext 또는 TokenHelper를 사용하는 대신 여기에서 읽을 수있는 새로운 SharePointContext로 전환했습니다. http://blogs.msdn.com/b/kaevans/archive/2013/09/24/introducing-sharepointContext-for-Provider-Hosted-sharepoint-apps.aspx

이 스위치를 만들면 401 세와 403 개의 문제가 사라졌습니다.새로운 SharePointContext는 기본 TokenHelper를 사용하므로 최신 버전의 TokenHelper 파일도 확인하십시오.

문제가 무엇인지 알고 있다고 생각하면 클라이언트 / 서버 시스템을 서버 로그 포인트가 동기화 시간이 없음을 알고 있습니다.

"SPApplicationAuthenticationModule: No valid access token exists in the Authorization header, you should see a 401 challenge as a response to this request."

"SPSecurityTokenExtensions: Not Valid Before:10/11/2013 21:15:38, Valid To:09/06/2015 07:55:38."
.

나는 며칠 동안 비슷한 오류에 직면했으며, 해결책은 서버와 클라이언트 기계 시간이 동기화 될 수있게되었습니다.

Foundation  Application Authentication ajezq High SPApplicationAuthenticationModule: 
Error authenticating request, Error details: 
Header: 3000002;reason="The access token has expired.
It's valid from '4/29/2015 2:50:44 PM' and to '4/30/2015 2:50:44 AM'.";
category="invalid_client", Body: {"error_description":"Invalid JWT token. The token is not yet valid. 
Current time is 4\/29\/2015 10:44:25 AM and the token is Valid from 4\/29\/2015 2:50:44 PM."}  
.

인터넷과 동기화 된 컴퓨터 시간을 설정하는 방법

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top