MSAL для iOS - как обновлять токенIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 MSAL для iOS - как обновлять токен

Сообщение Anonymous »

Я реализовал в своем приложении Enterprise SSO на основе MSAL, но я столкнулся с проблемой обновления токенов. Чтобы проверить запрос в API, я использую Idtoken, который я получаю после разрешения. Его жизнь составляет приблизительно 1 час. Для входа в систему я использую вызов < /p>

Код: Выделить всё

    func signIn(completion: @escaping (Result) -> Void) {
guard let applicationContext = applicationContext else { return }

guard let rootVC = UIApplication.shared.windows.first?.rootViewController else {
completion(.failure(NSError(domain: "MSAL", code: -2, userInfo: [NSLocalizedDescriptionKey: "No rootViewController"])))
return
}

let webViewParameters = MSALWebviewParameters(authPresentationViewController: rootVC)
let parameters = MSALInteractiveTokenParameters(scopes: ["user.read"], webviewParameters: webViewParameters)

applicationContext.acquireToken(with: parameters) { result, error in
if let error = error {
completion(.failure(error))
return
}

guard let result = result else {
completion(.failure(NSError(domain: "MSAL", code: -1, userInfo: [NSLocalizedDescriptionKey: "No result"])))
return
}

self.isLoggedWithMSAL = true
if let identifier = result.account.identifier {
CommonService.setMSALAccountIdentifier(identifier: identifier)
}
completion(.success(result))
}
}
< /code>
И это не вызывает проблем
, но позже мне нужно обновить этот токен (например, за 5 минут до истечения срока действия и когда я получил ошибку от API, что мой токен недействителен) - я вызываю < /p>
    func getMSALAuthToken(completion: @escaping (String?) -> Void) {
guard let applicationContext = applicationContext else {
SGuardLog.e("MSAL context is not initialized")
completion(nil)
return
}

let parameters = MSALParameters()
parameters.completionBlockQueue = DispatchQueue.main

applicationContext.getCurrentAccount(with: parameters) { currentAccount, _, error in
if let error = error {
SGuardLog.e("Failed to get accounts: \(error)")
completion(nil)
return
}

guard let currentAccount = currentAccount, currentAccount.identifier == CommonService.getMSALAccountIdentifier() else {
SGuardLog.e("No matching account found")
completion(nil)
return
}

let silentParams = MSALSilentTokenParameters(scopes: ["user.read"], account: currentAccount)

applicationContext.acquireTokenSilent(with: silentParams) { result, error in
if let result = result {
completion(result.idToken)
} else {
SGuardLog.e("Silent token refresh failed: \(error?.localizedDescription ?? "Unknown error")")
completion(nil)
}
}
}
}
< /code>
Но в этом случае я получаю тот же токен с истекшим сроком действия (я анализировал его в jwt io и проверил его). Скорее всего, проблема заключается в прицеле, которые я использую. Я обнаружил, что для обновления токена
я предоставил разрешение на его разрешение в конфигурации Azure, добавив его в качестве параметра, но в результате я дал разрешение на него в конфигурации Azure, но в результате я даже не могу войти и получить ошибку. (MSAlerRordomain ошибка -50000.) 

Какие конкретные области и разрешения должны быть настроены, чтобы иметь возможность обновлять токен для SSO?

Подробнее здесь: https://stackoverflow.com/questions/797 ... resh-token
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • MSAL для iOS - как обновлять токен
    Anonymous » » в форуме IOS
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • MSAL для iOS - как обновлять токен
    Anonymous » » в форуме IOS
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как эффективно обновлять (обновлять+вставлять) большие наборы данных с помощью Polars
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • Как эффективно обновлять (обновлять+вставлять) большие наборы данных с помощью Polars
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Браузер перестаньте работать/обновлять/обновлять в нерабочее время, приводящие HTML+Java. Приложение не работает должным
    Anonymous » » в форуме Html
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»