2017-02-20 7 views
0

저는 Azure에서 모바일 앱 서비스를위한 2 개의 슬롯을 가지고 있습니다 : 생산 및 개발. 또한이 모바일 서비스를 사용할 수있는 클라이언트 응용 프로그램이 있습니다. 프로덕션 슬롯에서 호스팅되는 응용 프로그램 버전에는 인증이 포함되어 있지 않습니다. 개발 슬롯에서 호스팅되는 응용 프로그램 버전은 인증을 가지고 있으며 제대로 작동합니다. 따라서 클라이언트 응용 프로그램은 인증 토큰 및 보호 된 API에 액세스하고 개발 슬롯에서 호스팅되는 서비스로 작업 할 수 있습니다. 이 슬롯을 바꿀 때 클라이언트 응용 프로그램은 여전히 ​​인증 토큰을 얻을 수 있지만 보호 된 API는 액세스 할 수 없습니다. 획득 한 토큰을 사용하여 API를 호출하려는 시도에서 권한이없는 401 오류가 발생했습니다. 인증 : 두 슬롯은 동일하게 구성되어 docs슬롯 교환 후 azure jwt 토큰이 작동하지 않습니다.

에 설명 된대로

나는 사용자 지정 인증을 사용하고 요청이 인증되지 않을 때 취할 행동을 가능 : 비활성화 : 익명 요청, 인증 공급자를 할 수 있습니다. 늘어나는만큼 그 슬롯 사이의 유일한 차이점은 URL을 이해할 수 있습니다. URL이 변경되면 유효하지 않은 토큰이 생성되기 시작합니다.

이 문제가 발생할 수 있습니다?

답변

0

토큰 생성 프로세스와 관련된 매개 변수 중 하나는 호스트 이름입니다. 내 코드에서 호스트 이름 값은 MobileAppSettings에서 제공되었습니다. 문제는 MobileAppSettings가 슬롯 스왑 후 개발 슬롯의 호스트 이름 값을 반환하므로 생성 된 토큰이 유효하지 않습니다. 서비스를 다시 시작하면이 문제가 해결됩니다.

0

다른 사람이이 질문을하는 경우 Azure 인증과 슬롯 스왑을 사용할 때 고려해야 할 몇 가지 추가 사항이 있습니다. 먼저, Azure 팀이 호스트 이름 문제를 해결하여 모든 슬롯의 호스트 이름이 동일 해집니다 (각 슬롯의 환경 설정에서이를 확인할 수 있음). 한 슬롯에서 생성 된 토큰은 다른 모든 슬롯에서 완전히 유효합니다.

그러나 토큰이 생성되면 각 슬롯의 하드 드라이브에있는 폴더에 저장되며 해당 슬롯은 특정 슬롯에 달라 붙지 않습니다. 즉, 프로덕션 슬롯에 토큰을 사용하는 클라이언트 사용자가 프로덕션 및 스테이징 슬롯을 스왑하면 프로덕션 슬롯에 있던 토큰 참조가 이제 스테이징 슬롯에 있으므로 클라이언트의 토큰이 더 이상 유효하지 않습니다. .

앱에 문제가 있거나 아닐 수도 있습니다. 사용자가 자주 로그인하도록 요구하면 추가로 로그인해야한다는 것을 알지 못할 수도 있습니다. 그러나 오래 지속되는 토큰 (대부분의 소셜 네트워킹 사이트와 마찬가지로)이 있으면 두통이 생길 수 있습니다.

관련 문제