2017-05-12 11 views
0

샌드 박스에서 PayPal과 함께 로그인을 사용하는 스파이크를 작성하려고합니다. 더 나은 예제를 원한다면이 http://www.cloudidentity.com/blog/2014/07/24/protecting-an-asp-net-webforms-app-with-openid-connect-and-azure-ad/을 기반으로 Microsoft.Owin.Security.OpenIdConnect를 사용하고 있습니다.PayPal OpenId 샌드 박스 메타 데이터 연결 주소

public void ConfigureAuth(IAppBuilder app) 
    { 
     app.SetDefaultSignInAsAuthenticationType(CookieAuthenticationDefaults.AuthenticationType); 
     app.UseCookieAuthentication(new CookieAuthenticationOptions()); 

     app.UseOpenIdConnectAuthentication(
      new OpenIdConnectAuthenticationOptions 
      { 

       ClientId = "my test clientid", 
       RedirectUri = "http://localhost:50625", 
       Scope = "openid profile email address phone", 
       Authority = "https://www.sandbox.paypal.com/signin/authorize", 
       MetadataAddress = "https://www.paypalobjects.com/.well-known/openid-configuration" 

      }); 

문제는 MetadataAddress입니다.

내가 https://www.paypalobjects.com/.well-known/openid-configuration 에 MetadataAddress을 설정하면 다음 구성은 라이브입니다, 나는에 전송받을 인증 URL은 샌드 박스하지 않고 제 의뢰인 들어 본 적이있다

https://www.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize?client_id=etc

입니다 id &은 오류를 발생시킵니다. 내가 다음 다시 버튼을 누르면, 다음 작동

https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize?client_id=etc

에 URL을 변경합니다.

하지만

  1. 내가 오류 "요청이 중단되었습니다 얻을 후 처음부터

    http://www.sandbox.paypal.com/.well-known/openid-configuration

    에 MetadataAddress를 설정 한 경우 : SSL/TLS에게 보안 채널을 생성 할 수 없습니다입니다. "

  2. sandbox.paypal.com의 해당 파일에는 라이브 파일과 동일한 구성이 있습니다.

LogPay with PayPal 샌드 박스의 .well-known/openid- 구성에 대한 올바른 URL은 무엇입니까?

+0

재부팅 후 sandbox에 로그인하지 않고 http://www.sandbox.paypal.com/.well-known/openid-configuration에 갔다가 로그인 페이지로 리디렉션되었습니다. 그래서 그것이 오류 (1)의 원인 일 수 있습니다.내가 도달 할 수있을지라도 그 파일은 다른 파일과 같습니다. 나는 내 자신을 호스팅 할 수 있다고 생각하지만 그것은 정신적으로 보인다. –

답변

0

은 내가 여단입니다 알려진/오픈 ID-구성을 사용하지 않는 것

https://github.com/TerribleDev/OwinOAuthProviders

에서 Owin.Security.Providers.PayPal를 사용하여 필요한 답을 찾았지만, 다음이있다 그것의 종점.

private const string AuthorizationEndPoint = "https://www.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize"; 
    private const string TokenEndpoint = "https://api.paypal.com/v1/identity/openidconnect/tokenservice"; 
    private const string UserInfoEndpoint = "https://api.paypal.com/v1/identity/openidconnect/userinfo/?schema=openid"; 

    private const string SandboxAuthorizationEndPoint = "https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize"; 
    private const string SandboxTokenEndpoint = "https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice"; 
    private const string SandboxUserInfoEndpoint = "https://api.sandbox.paypal.com/v1/identity/openidconnect/userinfo/?schema=openid"; 

결국 샌드 박스 계정으로 로그인 할 수있게되었습니다. 같은 것을 시도하는 다른 사람에 대한

주 : 첫째

를, 그것은 둘째 The request was aborted: Could not create SSL/TLS secure channel sandbox account

의 반환 URL을 사용하면 응용 프로그램에서 구성하기 때문에 어떤 점에서

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12; 

을 설정하는 것이 필요 PayPal의 설정은 생성 된 전체 콜백 URL (도메인 이름뿐만 아니라) 일 필요가 있으며, 실제로 무엇이 될지 알려주지 않습니다 ... 기본값은

입니다.
http://localhost[:$port]/signin-paypal