Настройка SSO-аутентификации с использованием Kerberos в SAP

Рассматриваемая конфигурация:

SAP ERP (Windows 2k8 + Oracle 11) / SAP GUI (Windows 7,8 32/64 bit)

 

1. Скачиваем из ноты 352295 файлы win64sso.zip и win32sso.zip.

2. В архиве win64sso.zip содержатся 64-битные библиотеки для активации SNC на стороне сервера, в win32sso.zip - на стороне клиента SAP GUI (sap gui исключительно 32 битный, даже если работает в Windows 7,8 64 bit)

3. Выполняем команду на контроллере домена или сервере SAP c правами администратора домена SETSPN -A SAPService<SID>/<sap-hostname>  <domain>\SAPService<SID>, где <SID> ваш SAP SID, <domain> - имя вашего домена, <sap-hostname> - имя сервера  SAP.

4. Извлечь из архива win64sso.zip библиотеку gx64krb5.dll и скопировать ее в C:\Windows\System32\ сервера SAP

5. Создать переменную окружения на сервере SAP SNC_LIB=C:\Windows\System32\gx64krb5.dll

6. В транзакции SU01 у пользователя прописать SNC-имя в формате: p:DOMAINUSER@DOMAIN.LOCAL

6. Добавить настройки профиля инстанции:

snc/enable =1
snc/accept_insecure_cpic =1
snc/accept_insecure_gui =1
snc/accept_insecure_r3int_rfc =1
snc/accept_insecure_rfc =1
snc/data_protection/max =3
snc/data_protection/min =1
snc/data_protection/use =3
# Location of the dll used for kerberos
snc/gssapi_lib = C:\Windows\System32\gx64krb5.dll
snc/permit_insecure_start =1
# The Windows User Account used to run SAP Server
snc/identity/as = p:SAPService<SID>@<YOUR DOMAIN.LOCAL>
snc/r3int_rfc_secure = 0

 

8. Перезапустите инстанцию. Если что-то не завелось - смотрите лог любого рабочего процесса (\usr\sap\<SID>\DVEBMGS00\work\dev_w0)

9. Настройки SAP GUI

9.1 Переименуйте библиотеку gsskrb5.dll из ахрива win32sso.zip в sncgss32.dll и поместите ее в c:\windows\system32 (для 32-битных OS) или в c:\windows\SYSWOW64 (для 64-битных OS)

9.2Если SAP GUI не нашел библиотеку прописать переменную окружения SNC_LIB=C:\Windows\System32\sncgss32.dll и проверить в том ли она месте (system32 или syswow64)

9.3 В свойствах подключения GUI активировать SNC и ввести строку p:SAPService<SID>@<DOMAIN.LOCAL>

10. Теперь при входе в систему пароль спрашиваться не будет, вместо этого внизу вы увидите уведомление вида: SNC logon by <MNDT> username for DOMAINUSER@DOMAIN.LOCAL.

 

Замечания:

Имена в SNC регистрочувствителные, следовательно, вам нужно узнать как именно был заведен пользователь в Active Directory, с заглавными или маленькими буквами.

Для удобства внедрения можно создать инсталлер (InstallShield), или скопировать файлик sncgss32.dll, saplogon.ini  и sapshortcut.ini через групповую политику Active Directory. Проверенно, это работает.

Переименование библиотеки нужно для SAP GUI, он ищет sncgss32.dll. Это можно исправить определив переменную окружения SNC_LIB.

Если нужен доступ по SSO в разные мандаты одной системы удобно создавать в SAP GUI ярлыки, прописав там хост, мандант и suser вы будете попадать в нужную систему (можно прописать и любимую транзакцию). Если suser не прописать - SAP будет спрашивать в какой мандант заходить. Если в одном манданте для пользователя активирован SSO, то ярлык, ведущий в другой мандант будет логиниться в текущий мандант. Это исправляется или прописыванием SNC в каждом из мандантов. Если нужно войти без SSO - в SAP GUI 7.30 нажать shift+enter на системе, или правой кнопкой мыши - вход без SSO. На старых версиях - нужно будет отключить SNC в настройках.

Есть альтернатива, SSO 2.0, но она платная, просто так ее не найти и не скачать.

 

Полезные материалы:

http://www.saptechies.org/create-ssosingle-sign-sap-sysetm/ (спасибо, ZeUsM)

http://service.sap.com/sap/support/notes/595341

https://scn.sap.com/thread/2004205

 

Запрос выводит пользователей, у которых не присвоено каноническое имя:

with x as (
select
a.BNAME,
u.PNAME
from
SAPSR3.USR02 a
left join SAPSR3.USRACL u on U.BNAME=A.BNAME
where a.mandt=<MANDT>)
select * from x where pname is null;

 

Нашел англоязычный вариант настройки:

К сожалению, в новой версии этой ноты нет возможности скачать эти библиотеки (

SNC Connection with SSO
Single Sign-On with encryption of network connections is enabled with SNC over the SNC Adapter and is using the authentication protocol Kerberos v5These prerequisites are needed to setup the SSO environment:

  • An Active Directory is required in your landscape
  • The SAP System accounts (SAPServiceSID and sbiadm) must be created and running under the AD Domain.
  • On the Domaincontroller of the SAP System run SETSPN -A SAPServiceSID/hostname.SERVER.MYDOMAIN MYDOMAIN\SAPServiceSID
  • Download the win32sso.zip or win64sso.zip (OSS Note 352295) according to the platform where the SAP System is installed.
    Unzip it and place the kerberos file on %SYSTEMROOT%\System32 (e.g. on x64 the file should be gx64krb5.dll).
  • Download SAPSSO.MSI (OSS Note 595341) for the client computers

Setting up your SAP System Server

Create a system environment called "SNC_LIB". The value depends on the OS you are having.
In a 64-Bit environment for example you have to point to the 64-Bit library.
"C:\Windows\System32\gx64krb5.dll".  (Win 32-Bit system gsskrb5.dll)

Set the following parameters on your instance profile (TX RZ10 -> Instance profile -> Extended maintenance add):

snc/enable = 1
snc/gssapi_lib = C:\Windows\System32\gx64krb5.dll   (Win 32-Bit system gsskrb5.dll)
snc/identity/as = p:SAPServiceSID@SERVER.MYDOMAIN.COM

snc/accept_insecure_cpic = 1
snc/accept_insecure_rfc = 1
snc/permit_insecure_start = 1

Setting up Clients with SSO

Install SAPSSO.MSI on the client computers. The variable SNC_LIB on these computers are created. You can check this in the environment variables.
In the Connection Properties of the related SAP GUI connection check the Option "Enable SNC" and enter the following: "p:SAPServiceSID@SERVER.DOMAIN.COM".

Setting up the Users in SAP

In the TX SU01 edit the user, select SNC tab, and provide the following information:
"p:domainuser@DOMAIN.COM".
You will also find more detail information about the needed DLLs, C++ runtimes for 32-/64-bit systems on the website:

http://msdn.microsoft.com/en-us/library/cc185322%28v=bts.10%29.aspx.

 

Пингвинихи занимаются проституцией за камушки

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

DSC_5138b

Продолжить чтение »

Владимир Познер — Если бы на Земле было бы всего 100 человек

 

Представьте себе, что есть мир, и мы его сократили до 100 человек, сохранив все пропорции, которые существуют.

Продолжить чтение »

Постулаты, законы и аксиомы

1. Постулат Хорнера:

Опыт растет прямо пропорционально выведенному из строя оборудованию.

2. Аксиома Кана и Орбена:

Если ничто другое не помогает, прочтите, наконец, инструкцию!

3. Закон Янга:

Все великие открытия делаются по ошибке.

Продолжить чтение »

Стих про Dota 2

В голове моей кружится ветер
Вместе с ним и моя голова
Ничего нет прекрасней на свете
Я люблю тебя как Доту 2
Без тебя я как Рикимару
Один на карте полный вардов
Для тебя я словно Энигма
В толпу врагов блинкануться готов
Я готов управлять затменьем
Я уже почти Баланар
Я ищу тебя как Блудсикер
Я полжизни отдам как Хускар
Я пройду через смерть как Леорик
Вместе с Аксом пойду на таран
И ничто меня не остановит
Ни крипы , ни трон, ни Рошан
Подтянул бы тебя я Пьюджем
Защитил бы тебя от эншент крипов
Ультом Вивера через время
Пронестись к тебе я готов
Но прошло время - слишком поздно
Весь свой мид я давно проебал
Я такой сексуальной натуры
Даже у Траксы не видал
Я хотел бы влюбиться в Виндранер
Для того чтоб забыть тебя
Прокатиться на тигре с Мираной
Втихаря её грудь теребя
Омникнайт не излечит мне душу
Даже Дазл меня не спасёт
На спасительном пароходе
Меня Кунка не увезёт
Грациозна как Фантом Лансер
Как Котёл с его белой волной
Мы с тобою как Геомансер
Ты умрёшь я пойду за тобой
Снесены все мои бараки
Всё трудней подбирать слова
И поэтому просто знай что
Я люблю тебя как Доту 2...