2016-10-21 7 views
0

개별 사용자 계정을 사용하는 기존 ASP.net 웹 API가 있습니다.Azure 모바일 서비스 .net 개별 사용자 계정을 사용하는 백엔드 인증

Sign/ChangePassword/Login 등에 사용합니다. 로그인하면 토큰을 다시받은 후 토큰을 사용하여 [Authorize] 컨트롤러에 액세스합니다.


[권한 부여] 공용 클래스 ValuesController

: 내 현재 API에 푸른 모바일 응용 프로그램에 대한 TODO의 .NET 백엔드에서 컨트롤러, 데이터 객체, Startup.MobileApp 및 AppNameApiContext을 추가 한

ApiController.

즉 공용 클래스 TodoController : TableController

이 등을 삽입/동기화를 위해 잘 작동하지만 컨트롤러에 [권한 부여]를 추가하면 내가 난 같은 토큰을 보낼 경우에도 항상 무단 돌아갑니다 다른 API 엔드 포인트와 함께 사용.

"Azure Mobile Apps 용 사용자 지정 인증"을 사용하여 찾을 수있는 모든 샘플 은 Microsoft.Azure.Mobile.Server.Authentication을 사용합니다. 기대에

많은 감사

내가 찾으려고 노력 해요 : 과 (TableController TodoController) : (ApiController ValuesController) 나는 동일한 로그인을 어떻게 사용합니까

은/토큰은 모두 인증을 제공합니다

app.UseAppServiceAuthentication(new AppServiceAuthenticationOptions 
      { 
       SigningKey = signingKey, 
       ValidAudiences = new[] { hostName }, 
       ValidIssuers = new[] { hostName }, 
       TokenHandler = new MyClass (config) 
      }); 


public class MyClass : AppServiceTokenHandler 
{ 
    public override bool TryValidateLoginToken 
    (string token, 
    string signingKey, 
    IEnumerable<string> validAudiences, 
    IEnumerable<string> validIssuers, 
    out ClaimsPrincipal claimsPrincipal) 

    { 
    if (CheckIfUserIsAuth(token)) 
    { 
     return true; 
    } 

    // Or something like 
    // if(token== CurrentUserToker) 
    // { return true}; 
    } 
} 

그러나 나는 여전히 허위 사실을 반환하는지 여부와 상관없이 무단으로 받는다.

+0

자세한 정보가 필요합니다. (1) EasyAuth는 어떻게 설정 되었습니까? (2) 어떤 버전의 Microsoft.Azure.Mobile.Client를 사용하고 있습니까? (3) 어떻게 로그인하고 있습니까? (4) 다른 OWin 인증 파이프 라인 코드가 있습니까? –

+0

안녕하세요, "개인 사용자 계정"인증을 사용하여 ASP.NET 4.6 웹 API 템플릿을 사용하고 있습니다. 저는 이것을 사용하여 앱에서 표준 API 호출을 수행합니다. 현재 http://myapi.com/token에 이메일과 비밀번호로 전화를 겁니다. 그것은 토큰을 반환하고 토큰을 저장하고 토큰을 사용하여 [Authorize] 컨트롤러에 액세스합니다. 동일한 토큰을 사용하여 [Authorize] TodoController : TableController에 액세스하려고합니다. Microsoft.Azure.Mobile.Client 버전은 3.0.3입니다. TODO Xamarin과 함께 제공되는 앱입니다. aure 포털에서 다운로드 한 Android가 – ryan

답변

0

불행히도 잘못된 지점에서 시작했습니다. Azure Mobile App에서 시작해야합니다. EasyAuth를 사용하여 모바일 장치에서 인증하는 데 필요한 로직이 있습니다. 자습서부터 시작하는 것이 좋습니다 - 프론트 엔드와 백엔드가 모두 선택되어 있습니다. 그런 다음 필요에 따라 확장 할 수 있습니다.

+0

Ok는 기존 API를 사용하는 기존 앱이라고합니다. API에는 푸시, 사용자 가져 오기, 데이터 가져 오기, 계정 만들기, 전자 메일 보내기, 암호 분실 등과 같은 끝점이 있습니다. API는 웹 사이트 및 데스크톱 응용 프로그램에서도 사용됩니다. 이제 앱이 Sql Lite를 사용하여 Azure Table Sync로 이동하려고합니다. 대답은 EasyAuth를 사용하여 중복 된 API를 갖는 것입니까? – ryan

+0

또는 Api 및 EasyAuth 사용자에 대해 사용자가 두 번 로그인하십시오. – ryan

+0

문제는 Azure Mobile Apps Owin 대신 개인 계정 Owin 항목에서 [Authorise] 태그를 처리하여 충돌이 발생한다는 것입니다. 오래된 Owin 자료를 추출하여 Azure Mobile Apps Owin 자료로 대체해야합니다. –

관련 문제