Единый вход

Единый вход (SSO) используется для интеграции UseResponse с другим программным обеспечением или сервисом, который в основном используется для хранения учетных записей пользователей. Другими словами, вы можете использовать форму входа на сайт, ПО или сервис для авторизации пользователей в UseResponse, используя учетные записи вашей системы, и тем самым автоматически авторизовывать пользователей в обеих системах.

Текущий метод называется "Единый вход", но также есть другие способы: LDAPSAML и Oauth 2.0

Настройки единого входа

Перейдите в раздел Администрирование » Приложения и активируйте Единый вход. Затем выберите метод OneLogin для аутентификации на вкладке Единый вход. Вам необходимо определить следующие основные настройки:

  • Интегрируемый домен - домен, где расположено ваше приложение, которое будет интегрировано c UseResponse. Домены с и без www считаются разными. Не используйте http или https как часть вашего домена. Пример: mydomain.com.

Заметка
Вы можете добавить несколько доменных имен и использовать несколько форм аутентификации

  • Внешняя ссылка логина - введите URL-адрес страницы входа вашего приложения. Вы будете перенаправлены на этот адрес при нажатии на ссылку логина в UseResponse. После успешного входа пользователь будет перенаправлен назад в UseResponse. Пример: http://domain.com/login;
  • Внешняя ссылка логаута - URL-адрес, который используется для выхода пользователя из приложения и UseResponse. Пример: http://domain.com/logout.

Есть еще 2 опции для упрощения процесса аутентификации:

  • Использовать только единый вход - активируйте эту опцию, если хотите, чтобы пользователи заходили на форму авторизации приложения, как только требуется аутентификация в UseResponse;
  • Не отправлять письмо регистрации - учетная запись пользователя всегда хранится в нашей системе, но пользователям не следует знать об этом. Поэтому как только в UseResponse создан аккаунт, пользователь не должен получить письмо о регистрации. Для решения проблем перейдите по ссылке /login в браузере, чтобы использовать первоначальный способ аутентификации.

Интеграция единого метода

UseResponse SSO класс доступен для следующих языков программирования:

Загрузите и включите UseResponse SSO класс в ваше приложение, предпочтительно до начала всей логики скрипта, и в файл, который будет использоваться для всех запросов страницы.

<?php
    require 'useresponse-sso.class.php';
    UseresponseSso::getParameters();
// further index.php code
?>

Вставьте второй фрагмент кода в то место скрипта, когда пользователь успешно авторизован. Информация об авторизованном пользователе может быть доступна вашему скрипту в виде переменной, объекта или статического метода. Пожалуйста, проверьте, что куки или сессии не повреждены вашим скриптом, иначе перенаправление назад в UseResponse не произойдет:

<?php
$options = array(
    'domain'   => '', // where UseResponse installed at (ex: http://help.domain.com or https://help.domain.com)
    'secret'   => '', // secret key you got from OneLogin page at UseResponse
    'fullname' => '', // accessible value of logged user's full name
    'email'    => '', // accessible value of logged user's email
    'user_id'  => '', // accessible value of logged user's id
    'property_id'  => '', // value to assign to custom field
);
UseresponseSso::setup($options);
UseresponseSso::script();
?>

Секретный ключ и имя домена могут быть получены из раздела Администрирование » Приложения » Единый вход » Настройки » вкладка Единый вход. Проверьте, что вы добавили в код валидный протокол http или https.

Разместите класс UseResponse в директорию Helpers. Если такой директории нет, пожалуйста, создайте ее в корневой папке проекта.

Чтобы включить класс, используйте следующий пример:

using System.Web.Mvc;
using UseResponseSso.Helpers;

   

   UseresponseSso ur = new UseresponseSso(
                "http://community.example.com" // UseResponse Community Domain
                "secretkey",
                "Alex", 
                "user@example.com", 
                "992" // Internal User ID
     );
      // specify the URL to redirect back
      ur.Login(ur.GetCommunityDomain());

Если интеграция прошла успешно, вам необходимо авторизоваться в вашем приложении и вы будете автоматически авторизованы в UseResponse.

Авторизация в виджетах

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

Чтобы реализовать авторизацию пользователей в виджете, необходимо интегрировать следующий код на клиентской стороне, где размещен виджет UseResponse:

let ssoToken = ''; // результат метода GetSdkToken()
UR.remote({
  cmd: '@authenticate',
  data: {sso_token: ssoToken},
  onInit: function () {}
}).done(function (response) { 
});

где переменная "response" может быть использована для идентификации успешной или неуспешной авторизации пользователя.

Вот пример использования класса:

class UseresponseController < ApplicationController
  def index
    config = {
      source: 'mydomain.com',
      domain: 'https://mydomain.useresponse.com',
      secret: '680f9e64a62898047662780816f4418a9681c72c59ad30ff19cce8d4bf112ecb'
    }
    attributes = {
      fullname: 'John Bobson',
      email:    'john@example.com',
      user_id:  '1'
    }
    redirect_to Useresponse::OneLogin.new(config).url(attributes)
  end
end

Дополнительные поля пользователей

Вы можете передавать дополнительные поля пользователей, которые успешно вошли в систему UseResponse. Для этого вам нужно добавить требуемые параметры в SSO класс, как показано ниже:

'property_172'  => '187',
'property_202' => '20-07-1987',
'property_245' => '263|265', //несколько значений для поля

где property_172 - это id пользовательского поля из Администрирование » Доп. поля » Пользователи, а 187 - значение данного поля.

Мультифорумность

Если вы организовали несколько форумов и хотите, чтобы пользователи могли заходить на каждый форум в отдельности, необходимо добавить параметр Redirect с закодированным URL вашего сообщества. Дополнительно мы позволяем не использовать кодирование redirect параметра. В этом случае используйте HttpServerUtility.UrlEncode метод и ваш SSO URL должен выглядеть, как показано ниже:

https://yourdomain.com/sso/d4j4f5w5k4u564e4o2s4g5k494h4w5m2m4m4o5m41684n4d4m2d4c4/n3g4x5x59406d2o4/j4g4x5x59406t443l4a4v5c4a4q4z3k4i4d426p4f5p4a4u244e4/y2233424/e5b39acffb16a3287a652a31683c17aadfa4c07c/direct-sso?redirect=https%3A%2F%2Fyourdomain.com
Была ли статья полезной?
0 0 0