public PlatformParameters(
Activity callerActivity,
bool useBroker)
Android용 플랫폼 관련 페이지 렌더러 코드에서 useBroker 플래그를 true로 설정합니다.
page.BrokerParameters = new PlatformParameters(
this,
true,
PromptBehavior.SelectAccount);
그런 다음 토큰 가져오기 호출에 매개 변수를 포함합니다.
AuthenticationResult result =
await
AuthContext.AcquireTokenAsync(
Resource,
ClientId,
new Uri(RedirectURI),
platformParameters)
.ConfigureAwait(false);
MSAL.NET에서 브로커 지원은 PublicClientApplication 기준으로 사용하도록 설정됩니다.
WithBroker() 매개 변수(true로 설정됨)를 사용하여 브로커를 호출합니다.
var app = PublicClientApplicationBuilder
.Create(ClientId)
.WithBroker()
.WithRedirectUri(redirectUriOnAndroid)
.Build();
그런 다음 AcquireToken 호출에서 다음을 수행합니다.
result = await app.AcquireTokenInteractive(scopes)
.WithParentActivityOrWindow(App.RootViewController)
.ExecuteAsync();
2단계: 활동 설정
ADAL.NET에서 1단계: 브로커를 사용하도록 설정에 표시된 대로 활동(일반적으로 MainActivity)을 PlatformParameters의 일부로 전달했습니다.
또한 MSAL.NET은 활동을 사용하지만 브로커 없이 일반 Android를 사용하는 경우에는 필요하지 않습니다. 브로커를 사용하려면 브로커에서 응답을 보내고 받도록 활동을 설정합니다.
현재 ADAL 코드:
MSAL 대응:
활동은 Android 관련 플랫폼의 PlatformParameters로 전달됩니다.
page.BrokerParameters = new PlatformParameters(
this,
true,
PromptBehavior.SelectAccount);
MSAL.NET에서 다음 두 가지 작업을 수행하여 Android에 대한 활동을 설정합니다.
MainActivity.cs에서 App.RootViewController을(를) MainActivity(으)로 설정하여 브로커에 대한 호출을 포함하는 활동이 있는지 확인합니다.
올바르게 설정되지 않으면 다음 오류가 발생할 수 있습니다. "Activity_required_for_android_broker":"Activity is null, so MSAL.NET cannot invoke the Android broker. See https://aka.ms/Brokered-Authentication-for-Android"
AcquireTokenInteractive 호출에서 .WithParentActivityOrWindow(App.RootViewController)을(를) 사용하고 사용할 활동에 대한 참조를 전달합니다. 이 예에서는 MainActivity를 사용합니다.
예:
App.cs에서
public static object RootViewController { get; set; }