Microsoft Graph API를 사용하여 회사에서 근무하는 다른 사람들에 대한 기본 정보에 액세스하는 UWP 프로토 타입 응용 프로그램을 개발하려고합니다.그래프 API에 대한 UWP Azure AD 인증
인증을 받으려면 OAuth 토큰을 받으려면 이라는 Microsoft.Identity.Client
NuGet 패키지를 사용하고 있습니다.
App Portal에 기본 Converged application
을 만들었습니다. 직장 전자 메일 주소를 사용하여 포털에 로그인했으며 "이 응용 프로그램이 [email protected] 계정을 관리하는 데 사용 된 Azure Active Directory 인스턴스에 등록됩니다."라는 메시지를 볼 때 응용 프로그램에 메모가 있습니다. . Azure 포털에서 내 애플리케이션의 Azure AD 인스턴스에 등록 된이 애플리케이션을 볼 수 없습니다.
내 앱에 ClientID
을 사용하고 있습니다. 그것은 다음과 같은 리디렉션의 t가 있습니다
urn:ietf:wg:oauth:2.0:oob
https://login.microsoftonline.com/common/oauth2/nativeclient
e7b70686-d176-4a1c-aae6-151221fafe0e://auth
을 내가 노력하고 내가 내 업무용 전자 메일 주소를 입력 로그인 팝업 페이지에서 내 작품의 로그로 리디렉션 할 때마다. 암호를 입력하면 다음 오류 메시지와 함께 빈 페이지로 리디렉션됩니다.
지금 당장 필요한 서비스에 연결할 수 없습니다. 네트워크 연결을 확인하거나 나중에 다시 시도하십시오.
성공적으로 업무용 전자 메일 주소로 Graph explorer에 로그인 한 다음 Graph API에 액세스하여 필요한 정보에 액세스 할 수 있습니다.
나는 피들러가 어디로 가고 싶은지 알아 내기 위해 피들러를 실행 해 보았지만 피들러가 달리면 작동을 멈추게했다. 나는 시도하고 인증의 작업 얻기 위해 Microsoft의 active-directory-dotnet-native-uwp-v2 데모 응용 프로그램을 사용하고
:
/// <summary>
/// Call AcquireTokenAsync - to acquire a token requiring user to sign-in
/// </summary>
private async void CallGraphButton_Click(object sender, RoutedEventArgs e)
{
AuthenticationResult authResult = null;
ResultText.Text = string.Empty;
TokenInfoText.Text = string.Empty;
try
{
authResult = await App.PublicClientApp.AcquireTokenSilentAsync(scopes, App.PublicClientApp.Users.FirstOrDefault());
}
catch (MsalUiRequiredException ex)
{
// A MsalUiRequiredException happened on AcquireTokenSilentAsync. This indicates you need to call AcquireTokenAsync to acquire a token
System.Diagnostics.Debug.WriteLine($"MsalUiRequiredException: {ex.Message}");
try
{
authResult = await App.PublicClientApp.AcquireTokenAsync(scopes);
}
catch (MsalException msalex)
{
ResultText.Text = $"Error Acquiring Token:{System.Environment.NewLine}{msalex}";
}
}
catch (Exception ex)
{
ResultText.Text = $"Error Acquiring Token Silently:{System.Environment.NewLine}{ex}";
return;
}
if (authResult != null)
{
ResultText.Text = await GetHttpContentWithToken(graphAPIEndpoint, authResult.AccessToken);
DisplayBasicTokenInfo(authResult);
this.SignOutButton.Visibility = Visibility.Visible;
}
}
App.PublicClientApp.AcquireTokenAsync(scopes)
라인이 가져 오는 하나입니다 : 아래
은에서 사용자를 기록하는 방법입니다 팝업. 나는 Microsoft.Identity.Client
내 회사의 AD 함께 작동하도록하려면 어떻게해야 다른 아무것도
public static PublicClientApplication PublicClientApp { get; } = new PublicClientApplication(ClientId);
있습니까 : 아래
는App.PublicClientApp
을 구성 라인입니까? 또는 누락 된 부분을 조사하기 위해 할 수있는 일이 있습니까?
당신이 사용하고있는 코드와 앱의 등록의 세부 사항을 추가 할 수 있을까요? –
인증을 받으려면 다음 데모 앱을 사용하고 있습니다. https://github.com/Azure-Samples/active-directory-dotnet-native-uwp-v2 앱의 등록 세부 정보 좋겠 니? 질문에 리디렉션을 추가했습니다. – Connel
음, v2 엔드 포인트 (MSAL)를 사용하려는 경우 v2 앱 포털을 사용하여 앱을 정의해서는 안됩니까? apps.dev.microsoft.com에서 찾을 수 있습니다 – juunas