Мы пытаемся следовать этому руководству и запустить управляемую клиентом аутентификацию на Android. Вот как мы настроили наше приложение в Azure AD B2C:
Затем в мобильных приложениях Azure мы включаем аутентификацию Azure AD:
где Issuer Url
v2.0/.well-known/openid-configuration
Issuer Url
заканчивается на v2.0/.well-known/openid-configuration
и содержит идентификатор v2.0/.well-known/openid-configuration
B2C, взятый из портала Azure (каталог + меню подписки).
Тогда в Xamarin у нас есть следующий код:
ADB2CClient = new PublicClientApplication(Constants.ClientID, // "48ab01cc-***********-73ef6c616da5"
Constants.Authority); // https://login.microsoftonline.com/tfp/{Tenant}/{Policy name}/oauth2/v2.0/authorize
ADB2CClient.RedirectUri = Constants.RedirectUri; // "msal{ClientID}://auth
authenticationResult = await ADB2CClient.AcquireTokenSilentAsync(
Constants.Scopes, // empty array
GetUserByPolicy(ADB2CClient.Users,
Constants.PolicySignUpSignIn), // Policy name from AD B2C
Constants.Authority, // https://login.microsoftonline.com/tfp/{Tenant}/{Policy name}/oauth2/v2.0/authorize
true);
var payload = new JObject();
if (authenticationResult != null && !string.IsNullOrWhiteSpace(authenticationResult.IdToken))
{
payload["access_token"] = authenticationResult.IdToken;
}
User = await TodoItemManager.DefaultManager.CurrentClient.LoginAsync(
MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory,
payload);
В результате мы можем получить действительный токен JWT (IdToken
) из метода AcquireTokenSilentAsync
но каждый раз, когда мы пытаемся запустить LoginAsync
мы получаем 401
со следующей трассировкой стека:
{Microsoft.WindowsAzure.MobileServices.MobileServiceInvalidOperationException: у вас нет прав для просмотра этого каталога или страницы.
Когда мы пытаемся просмотреть журналы службы приложений Azure, он просто говорит, что
Приложение: 2019-02-28T10: 09: 30 PID [7924] Ответ на отправку информации: 401,83 Несанкционированный
без каких-либо дополнительных подробностей.
Остальная часть кода покрывает пример из github
Мы взглянули на этот документ/образец и можем подтвердить, что он нуждается в серьезном обновлении, поскольку он более не точен. Мы работаем внутри, чтобы обновить его.
Спасибо за ваше терпеливое отношение к нам.