Я разрабатываю мобильное приложение, в котором мне нужно аутентифицировать пользователя от Azure AD. В основном пользователю будет предложено указать адрес электронной почты организации и пароль, который приложение мобильного телефона отправляет на серверный сервер, который будет проходить проверку подлинности.Получение имени пользователя и информации о группе от Azure с помощью adal4j
У меня есть 'общественно-клиент-приложение-образец' из 'лазурного-ActiveDirectory-библиотека-для-Явы' работает и может авторизовать против 'graph.windows.net':
private static AuthenticationResult getAccessTokenFromUserCredentials(
String username, String password) throws Exception {
AuthenticationContext context = null;
AuthenticationResult result = null;
ExecutorService service = null;
try {
service = Executors.newFixedThreadPool(1);
context = new AuthenticationContext(AUTHORITY, false, service);
Future<AuthenticationResult> future = context.acquireToken(
"https://graph.windows.net", CLIENT_ID, username, password,
null);
result = future.get();
} finally {
service.shutdown();
}
if (result == null) {
throw new ServiceUnavailableException(
"authentication result was null");
}
return result;
}
Однако , это не возвращает никакой userInfo (равно null), и на данный момент я не могу понять, как запросить, чтобы получить список с группами, к которым принадлежит пользователь?
Я просто выполняю ручные поиски с использованием API, используя маркеры, полученные из Adal4j, или есть ли предусмотренная функция в библиотеке?
Я только начинаю с Azure, так что это может быть очевидно, я мог бы просто искать не в том месте. Я попытался, например. 'https://graph.windows.net/xxx.com/groups?api-version=1.5', но получить 'Resource' https://graph.windows.net/xxx.com/groups?api-version=1.5 'не зарегистрирован для учетной записи.'
W мобильной мобильной платформы, против которой вы развиваетесь? Передача имени пользователя/пароля на ваш собственный сервис на самом деле не рекомендуется. Вместо этого вы можете использовать одну из ADAL-библиотек ([iOS] (https://github.com/AzureAD/azure-activedirectory-library-for-objc), [Android] (https://github.com/AzureAD/azure-activedirectory-library-for-android), [WindowsPhone] (https://github.com/AzureAD/azure-activedirectory-library-for-dotnet)) для аутентификации непосредственно с мобильного устройства с помощью AAD. –
Я использую iOS и Android. Вы прямо из курса, я еще не сообразил.Основная причина передачи учетных данных (через соединение ssl с курса) заключается в том, что у меня есть только одно место для работы с интерфейсом с Azure. Однако для обеспечения безопасности я вижу, что использование библиотек ADAL имеет то преимущество, что вы передаете только ключи. –
Хорошо, я предоставил (и надеюсь) все ваши вопросы, но на самом деле - я бы не рекомендовал этот подход. Моя рекомендация будет заключаться в том, что ваши клиентские приложения используют соответствующие библиотеки ADAL для получения токенов. Это имеет еще одно преимущество в том, что вы можете обеспечить доступ к вашему собственному API с помощью этого ([образец для iOS] (https://github.com/AzureADSamples/NativeClient-iOS), [образец для Android] (https: // github. ком/AzureADSamples/NativeClient-Android)). –