2017-03-18 3 views
0

Microsoft에서 계정 연결을 지원하는 Alexa 기술과 ASP.NET Core를 사용하여 계정을 연결하는 인프라를 호스팅하고 있습니다. IIS에 Azure AppService 웹 사이트.Alexa App이 ASP.NET 코어 ID에서 발급 한 302 리디렉션이 아닙니다.

나는 Microsoft.AspNetCore.Authentication.* NuGet 패키지를 통해 Amazon, Facebook, GitHub, Google, Microsoft 및 Twitter를 사용하여 로그인 할 수있는 기능을 구현했습니다. 이것들은 모두 웹 브라우저의 표준 로그인과 브라우저를 통한 계정 연결 프로세스의 수동 테스트를 위해 완벽하게 작동합니다.

그러나 iOS Alexa App을 사용하면 Amazon 및 Facebook 만 작동합니다. 임베디드 앱에서의 사용이 허용되지 않아 Google에서 작동하지 않기 때문에 (Google 403 페이지에서이 사실을 알게됩니다), 다른 세 사람은 무슨 일이 일어나고 있는지 잘 모릅니다. iOS Safari에서는 정상적으로 작동하므로 iPhone 또는 iPad에서 전역 적으로 작동하는 것으로 확인되었습니다.

로그인 양식을 제출하면 GitHub, Microsoft 및 Twitter가 모두 멈춘 것처럼 보입니다. 나는 CSP를 사용

은, 그래서 (예를 들어, 때로는 아마존이 난 단지 account.amazon.com를 사용할 것이라고 생각대로 처음에는 실패 원인 na.account.amazon.com로 리디렉션) 아마 form-action 목록이 정확하지라고 생각하지만, 문제가 지속되면 CSP 목록은 임시적으로 CSP를 배제 할 수 있도록 업데이트되었습니다. 또한 오류가없는 CSP에는 report-uri.io을 사용합니다.

필자는 Fiddler를 프록시로 실행했으며 포함 된 페이지가 HTTP POST를 내 사이트에 올바르게 전송한다는 것을 발견했습니다. 6 개의 경우 모두 올바른 HTTP 302 응답으로 응답합니다. 아마존과 페이스 북의 경우 302가 뒤 따르고 모든 것이 예상대로 작동합니다. 문제가있는 나머지 3 명은 Alexa App의 요청이 끝난 것으로 보입니다.

는 임베디드 브라우저가 완전히에 로그인하는 동안 저승에서 사용자를 남겨두고는 HTTP (302S)를 무시하는 것 같다

나는 또한 다른 행동 전시 안드로이드 알렉사 앱 시도했습니다.

  1. Amazon - 리디렉션은 Chrome을로드하여 인앱 흐름을 중단합니다.
  2. Facebook - 제대로 작동합니다.
  3. GitHub - 리디렉션으로 Chrome을로드하고 인앱 플로팅을 중단합니다.
  4. Google - 올바르게 작동합니다.
  5. Microsoft - 리디렉션은 Chrome을로드하여 인앱 흐름을 깨습니다.
  6. Twitter - 리디렉션은 Chrome을로드하고 인앱 플로를 깨뜨립니다.

유일한 공통 분모는 Facebook과 Google이 두 앱 모두에서 작동한다는 것입니다 (Google은 iOS에서의 사용을 허용하지 않지만).

알렉사 애플 리케이션이 이러한 리디렉션을 올바르게 따르지 못하게 할 수있는 원인은 무엇입니까/없습니까? iOS 앱이 리디렉션을 따르지 않게하는 원인은 무엇입니까? Android 앱이 인앱 브라우저 대신 Chrome에서 리디렉션을 열게 된 원인은 무엇입니까?

답변

1

그래서 Alexa 앱은 계정 연결 프로세스 중에 URL을 리디렉션하는지 여부를 결정 (겉으로보기에 무작위로 표시)하는 것으로 나타났습니다.

개발자 포털의 스킬 구성에서 권한 부여 URL의 선택적 목록에 계정 연결 중에 사용 가능한 호스트를 나열하면 예상대로 작동합니다.

아마존 개발자 포럼에서이 의견을 찾은 후에 결정 : https://forums.developer.amazon.com/answers/27564/view.html