Войдите в SFAuthenticationSession, затем откройте ссылку в SFSafariViewController, который выполняет SSO - PullRequest
0 голосов
/ 30 января 2019

Я использую AppAuth-iOS для входа в AD B2C, AppAuth-iOS использует SFAuthenticationSession для выполнения запросов аутентификации на iOS 11+.Я предположил, что когда я вызываю SFSafariViewController, чтобы открыть ссылку на веб-приложение, которое выполняет SSO с B2C, оно автоматически аутентифицирует пользователя в нем.Однако это не похоже на работу.

Разве это не должно работать?Я делаю это неправильно?

Я попытался изменить модуль AppAuth-iOS в своем проекте и попытался открыть запрос аутентификации в веб-просмотре и использовать веб-просмотр, чтобы также открыть ссылку .. не работает,Кроме того, я читал о случаях, когда Safari не делился файлами cookie, относится ли это также к просмотру веб-страниц?Использует ли веб-браузер браузер Safari?Я также читал другие материалы, связанные с этой проблемой, но они сбивают меня с толку, и, в конце концов, для меня нет их закрытия.

Это код из OIDExternalUserAgentIOS.m из AppAuth-iOS, которыйиспользуется для связи приложения с именем входа B2C:

SFAuthenticationSession *authenticationVC =
    [[SFAuthenticationSession alloc] initWithURL:requestURL
                               callbackURLScheme:redirectScheme
                               completionHandler:^(NSURL * _Nullable callbackURL,
                                                   NSError * _Nullable error) {
  __strong OIDExternalUserAgentIOS *strongSelf = weakSelf;
  if (!strongSelf)
      return;
  strongSelf->_authenticationVC = nil;
  if (callbackURL) {
    [strongSelf->_session resumeExternalUserAgentFlowWithURL:callbackURL];

Я использую этот код для открытия ссылки,

SFSafariViewController *svc = [[SFSafariViewController alloc] initWithURL:URL];
svc.delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
[self presentViewController:svc animated:YES completion:nil];

Я надеюсь, что SSO будет работать между SFAuthenticationSession и SFSafariViewController.

Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...