2017-11-27 15 views
0

사용자가 Azure AD v2.0에 대해 로그인 및 로그 아웃 할 수 있어야하는 WPF 데스크톱 응용 프로그램에서 MSAL을 사용하고 있습니다. Microsoft's Graph access sample 내가 in this function처럼, 로그 아웃 PublicClientApplication.Remove(IUser) 사용을 참조 다른 대부분의 예제 : Remove(IUser) 해당 사용자의 MSAL의 캐시와 자신의 토큰을 삭제처럼 내가 무엇을 볼 수에서데스크톱 응용 프로그램에서 Azure AD 2.0/MSAL에서 로그 아웃하는 방법은 무엇입니까?

//(from Microsoft's example) 

/// <summary> 
/// Sign out the current user 
/// </summary> 
private void SignOutButton_Click(object sender, RoutedEventArgs e) 
{ 
    if (App.PublicClientApp.Users.Any()) 
    { 
     try 
     { 
      App.PublicClientApp.Remove(App.PublicClientApp.Users.FirstOrDefault()); 
      this.ResultText.Text = "User has signed-out"; 
      this.CallGraphButton.Visibility = Visibility.Visible; 
      this.SignOutButton.Visibility = Visibility.Collapsed; 
     } 
     catch (MsalException ex) 
     { 
      ResultText.Text = $"Error signing-out user: {ex.Message}"; 
     } 
    } 
} 

, 그것은 보이지만 그렇지 않습니다 실제로 사용자에게 서명하는 것처럼 보입니다. 내 앱에 다시 로그인하려고하면 이전 사용자가 '로그인 한 상태'로 표시되고 다시 클릭하면 자격 증명을 다시 제공 할 필요없이 해당 사용자로 로그인됩니다. Logout does not work when using Microsoft Authentication Library (MSAL)은 현재 MSAL 상태에서 수동으로 로그 아웃해야한다고 생각합니다.

사인 아웃 ( Remove(IUser)가하고있는 것처럼 보이는 것을) 응용 프로그램의 로컬 기록을 삭제 포함해야한다고, 또한

의 일부 변종로 리디렉션 내가 this Microsoft one 같은 웹 응용 프로그램 자습서를 많이 발견했습니다

GET https://login.microsoftonline.com/common/oauth2/v2.0/logout?post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F 

그러나 내 앱이 웹 브라우저에 없으므로 요청에 대한 처리 방법을 잘 모릅니다. MSAL 사용 중에 실제로 로그 아웃하려면 어떻게해야합니까?

답변

0

맞습니다. Remove (IUser) 메서드는 캐시에서 사용자를 제거하기 만합니다. 아직 로그 아웃 끝점을 사용하는 Signout 메서드를 구현하지 않았습니다. 이것은 우리가 앞으로 제공하고자하는 것입니다. 로그 아웃에는 앱에서 로그 아웃 한 다음 기기에서 로그 아웃하는 두 가지 형태가 있습니다.

마지막 질문에 답하기 위해 WPF 앱은 실제로 웹 브라우저가 아니지만 azure AD에 로그 아웃 요청을 보내면 세션 쿠키를 유지하는 내장 웹 브라우저가 포함되어 있습니다.