При использовании библиотеки ADAL с учетной записью правительства запрос токена авторизации не выполняется из-за тайм-аута сервера.Токен необходим для выполнения вызовов EWS на сервер.Используемые права доступа: "https://logon.microsoftonline.us". Ресурс" https://outlook.office.us".
Нет проблем при получении токена от открытого арендатора (арендатора нашей компании) и нашего продукта.Мы получаем токен, используя "" https://logon.microsoftonline.com". Ресурс "https://outlook.office.com".
. Мы можем получить доступ к серверу с теми же учетными данными в" https://owa.us.af.mil/f5-w-{REDACTED}/adfs/ls/?client-request-id={REDACTED}"., но время ожидания ADAL истекло с "https://federation.us.af.mil/adfs/ls/?login_hint={REDACTED}.af.mil&client-request-id={REDACTED}&username={REDACTED}.af.mil&wa=wsignin1.0&wtrealm={REDACTED}"
Имеет ли правительственный сервер правильную конфигурацию ADFS? Если да, то какое будет вероятное решение?
Правильно ли настроен наш клиент? Нужен ли публичный арендатор для доступа к общедоступному приложению?и государственный арендатор для государственных клиентов? Или они могут быть взаимозаменяемыми?
Мы настроили публичное и государственное приложение AAD для обработки запросов токенов. Мы подумали, что это могло быть проблемой. Без изменений. Я также сделал несколькоРазличия в полномочиях и ресурсах, используемых в запросе. Без изменений. Я даже подключился к ADAL и использую наш протокол HTTPS вместо стандартного протокола Apple HTTPS.
Ниже приведены настройка контекста и метод вызова токена.
let authContext = ADAuthenticationContext(authority: authority, validateAuthority: true, error: &error)
authContext?.credentialsType = AD_CREDENTIALS_EMBEDDED
authContext?.acquireToken(withResource: self.resource, clientId: self.clientId, redirectUri: self.redirectUri,
userId: self.userID!, completionBlock: { result in })
В этот момент запрос токена всегда будет прерван:
ADAL 2.7.5 iOS Sim 12.1 [2018-12-12 17:14:38 - F06F784C-7F5B-4231-BE34-714AF8204357] -webAuthDidFailWithError: Ошибка домена = код NSURLErrorDomain = -1001 "Время ожидания истекло." UserInfo = {NSUnderlyingError = 0x600002fa5380 {Код ошибки = код_счета_системы_данных_строк ".100")UserInfo = {NSErrorFailingURLStringKey = https://federation.us.af.mil/adfs/ls/?login_hint={REDACTED}.af.mil&client-request-id={REDACTED}&username={REDACTED}.af.mil&wa=wsignin1.0&wtrealm={REDACTED}
У пользователя появляется всплывающее окно с пустым экраном.Обычно в окне отображается текст, запрашивающий разрешение на использование приложения.Время ожидания истекает примерно через 60 секунд.