Я пытался выяснить, как использовать GSSAPI для аутентификации на сервере IIS в домене Active Directory, работая через код для руководств от Oracle, и у меня возникли проблемы с установлением контекста.
То, как учебник отправляет токены, заключается в том, что сначала отправляется целое число, а затем отправляется токен. Это работает, конечно, с учебным сервером, потому что он этого ожидает. Однако я не знаю, является ли это правильным протоколом для взаимодействия с GSSAPI в целом?
раздел 4 RFC4121 и RFC2743, раздел 3.1, кажется, предполагает, что есть нечто большее (какой-то тег, затем длина, но немного скорректированная, затем Oid [запрошенного механизма, я полагаю] и его длину и т. д.).
Это относится к внутренней структуре токена? Или это специфично для некоторых реализаций? Или этому протоколу будет следовать IIS (и, предположительно, все остальные серверы/хосты, поддерживающие GSSAPI)?
Кроме того, если это именно то, чему нужно следовать, почему руководство не следует этому или, по крайней мере, не упоминает об этом? Разве GSS не должен быть универсальным? Это нормально, что это происходит?
Заранее спасибо :)
YII
, чтобы быть токеном kerberos/SPNEGO. Если это так, взгляните на ссылку, которую я разместил в своем исходном вопросе о gssapi, ответ проходит через весь процесс настройки до проверки токена. - person Nico   schedule 22.12.2016final Oid spnegoOid = new Oid( "1.3.6.1.5.5.2" ); GSSManager gssmgr = GSSManager.getInstance(); GSSName serviceName = gssmgr.createName( this.spn, GSSName.NT_USER_NAME ); GSSCredential serviceCredentials = gssmgr.createCredential( serviceName, GSSCredential.INDEFINITE_LIFETIME, spnegoOid, GSSCredential.ACCEPT_ONLY );
- person Nico   schedule 22.12.2016GSSContext.unwrap
иGSSContext.verifyMIC
и все такое. В ответе есть код макета, который вы затем можете изменить в соответствии со своими потребностями. - person Nico   schedule 22.12.2016