Как использовать аутентификацию на основе SAML в приложении IONIC

Мне нужно реализовать аутентификацию SSO с использованием аутентификации на основе SAML в нашем приложении IONIC для iOS/Andoid. Во время работы над этим у меня возникают следующие сомнения: 1. Возможно ли, что SAML поддерживает IONIC Framework? 2. Если не поддерживается, то какой-либо альтернативный способ выполнить аутентификацию SSO в IONIC. Какой-нибудь пример кода для этого?

Будет признателен, если вы предоставите полезный ответ.

Спасибо и с уважением Рави


person RAVI    schedule 20.06.2017    source источник
comment
тоже ищу решение, но до него не так просто добраться. Я нашел полезные ресурсы на сайте телерика: telerik.com/forums/cordova-sso- вход Пожалуйста, дайте мне знать, если вы преуспели.   -  person Victor Dias    schedule 01.09.2017


Ответы (2)


Это гибридная реализация, в которой мы открываем соединение с URL-адресом SAML и продолжаем перехватывать изменения URL-адреса для ключа входа.

Пример кода для входа.

var options = { location: 'no', toolbar: 'no', clearcache: 'yes' };

var signInUrl; // Generate your signINUrl with appending detail like client id , redirection url etc. 
    
$cordovaInAppBrowser.open(signInUrl, '_blank', options)
        .then(function(event) {
          // success
        })
        .catch(function(event) {
          // error
});  // Prompt user to login 

// Interceptor to find the hash key while redirections are active.

$scope.$on('$cordovaInAppBrowser:loadstart', function (e, event) {
      var key = event.url.split('code=')[1];
      if(key) {
        console.log('got key');
        //hide spinners, 
        //logic to create user session for login.
        //Can use localstorage to store key.
        // Change state to starting page. 
        // clear any histroy/ prevent go back to login controller. 
      } else {
        console.log('loading', event.url);
        //keep on waiting. 
      }
});

$scope.$on('$cordovaInAppBrowser:loadstop', function (e, event) {
   // Handler Spinners. 
});

$scope.$on('$cordovaInAppBrowser:loaderror', function (e, event) {
   // Handler Spinners & erros. 
});

Когда пользователь открывает приложение, проверьте наличие ключа в Localstorage, если он присутствует, создайте сеанс или вызовите указанную выше функцию входа в систему и после успешного сохранения ключа в localStorage.

Чтобы выйти из системы, просто нажмите URL-адрес выхода, нет необходимости перехватывать URL-адрес или ответ и просто очистить значение localStorage.

  • Очистите файлы cookie и localStorage перед вызовом функции входа в систему.
person Atul Sharma    schedule 11.07.2018

SAML еще не поддерживается для Ionic. Для этого приложения мы рекомендуем хранилище паролей.

https://www.bitium.com/ionic-saml-provider

person Manikandan Sankar    schedule 08.03.2018
comment
Тот факт, что битиум не поддерживает saml для ionic, не означает, что это невозможно сделать. - person Guy Nesher; 19.03.2018