Как правильно настроить имя участника Kerberos

Это мое krb5.ini файл.

    [libdefaults]
        default_realm = TEST.EXAMPLE.COM
        .....
    [realms]
        TEST.EXAMPLE.COM = {
            kdc = test.example.com:88
            master_kdc = test.example.com:88
            default_domain = example.com
        }
    [domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

Я создал пользователя USERA на домене, создали учетные данные, используя kinit и мой файл jaas.config определен как

    example_config {
    com.ibm.security.auth.module.Krb5LoginModule required
        useDefaultCcache=false
        principal="userA@TEST.EXAMPLE.COM"  
        useCcache="file:///c:/Users/userA/krb5cc_userA"
        debug=true;
    };

все кажется в порядке, поскольку это проходит проверку подлинности.

    [JGSS_DBG_CRED] Retrieving Kerberos creds from cache for principal=userA@TEST.EXAMPLE.COM
    [JGSS_DBG_CRED] Non-interactive login; no callbacks necessary.
    [JGSS_DBG_CRED] Done retrieving Kerberos creds from cache
    [JGSS_DBG_CRED] Login successful
    [JGSS_DBG_CRED] userA@TEST.EXAMPLE.COM added to Subject
    [JGSS_DBG_CRED] Kerberos ticket for userA@TEST.EXAMPLE.COM added to Subject
    [JGSS_DBG_CRED] No keys to add to Subject for userA@TEST.EXAMPLE.COM

однако сейчас я пытаюсь использовать имя участника службы вместо пользователя. я использовал ktpass создать файл keytab

ktpass -out "c:\mytab.keytab" -princ "Installation1/test.example.com@TEST.EXAMPLE.COM" -mapUser "TEST\userA" -mapOp set -pass password -crypto DES-CBC-MD5 -pType KRB5_NT_PRINCIPAL +DesOnly

а затем использовать setspn Проверять

  C:\>setspn -l userA
Registered ServicePrincipalNames for CN=userA,CN=Users,DC=test,DC=example,DC=com:
   Installation1/test.example.com

я изменил свой конфиг на

    example_config{
      com.ibm.security.auth.module.Krb5LoginModule required
                credsType = both                
               principal="userA/test.example.com"
               useDefaultCcache = true     
               useDefaultKeytab = false
                useKeytab = "file:///c:/mytab.keytab"
                debug=true;   
    };

теперь, когда я запускаю свое приложение, оно дает

    [JGSS_DBG_CRED] Retrieving Kerberos creds from keytab for principal=Installation1/test.example.com
    [JGSS_DBG_CRED] Service name=Installation1/test.example.com@TEST.EXAMPLE.COM
    [JGSS_DBG_CRED] Check for Default keytab : 
    [JGSS_DBG_CRED] No Kerberos creds in keytab for principal Installation1/test.example.com
    [JGSS_DBG_CRED] No service key in keytab; login failed

Что я сделал не так в файле конфигурации? или я что-то пропустил в ktpass команда? Installation1 имя службы (для Websphere MQ), когда я проверяю Панель управления -> Службы. Я хочу аутентифицировать пользователя A для использования сервиса Websphere MQ. (например, если я хочу позволить пользователю использовать HTTP, я бы поставил основной как HTTP/.....TEST.EXAMPLE.COM

Спасибо

1 ответ

В MQ нет ничего, что выполняет аутентификацию. MQ выполняет только авторизацию (поиск разрешений) через свой модуль OAM.

Для установки по умолчанию MQ (на любой платформе, включая z/OS) в MQ нет эффективной защиты. Вы можете настроить MQ для использования MQ SSL между клиентским приложением и администратором очередей (или между 2 администраторами очередей).

Другой вариант - приобрести стороннее решение по обеспечению безопасности MQ, такое как MQAUSX, которое обрабатывает аутентификацию для различных целей.

Другие вопросы по тегам