S
S
semexion2018-06-22 13:53:23
Java
semexion, 2018-06-22 13:53:23

How to implement SSO (domain authorization) on the site (JAVA Servlet)?

Добрый день, перерыл весь интернет но не нашел или не понял материала в виду недавнего изучения JAVA, по данному вопросу.
Как реализовать доменную авторизацию на стороне сервера JAVA. Насколько я понимаю сервер должен в ответ на GET запрос посылать HTTP-код 401 «Not Authorized», и в HTTP-заголовках и если сайт находится в интрасети то браузер передает токен.
Как реализовать данный механизм может есть пример или где почитать об этом.
Для серверной части использую Java, в частности Servlet.
В качестве контейнера использую Tomcat 8.
Сама авторизация на ресурсе не совсем нужна, смысл заключается в том что бы получить sign-on ticket для авторизации на Call Manager CISCO путем создания провайдера в сервлете java.
Выдержка из документации:

Single Sign-On
The Single Sign-On feature allows Cisco JTAPI applications to use the single sign-on ticket to
authenticate instead of a user ID and password.
Applications fetch the service ticket for the OpenSSO server from the active directory and then pass the
ticket to Cisco JTAPI in the string used in the getProivder(String str) API. Applications can set the single
sign-on ticket as ssoticket="ssotokenfromad".
Only end users can use this feature.
Applications using this feature need not specify the user ID and password in the getProvider string.
If an application is used by an end user and has the Standard CTI Secure Connection role enabled, then
a user ID is required in the provider string. No password is required.
This solution is designed around an active directory with a Kerberos environment to achieve Windows
desktop Single Sign-On. If an active directory with a Kerberos environment is unavailable, then an
alternate equivalent setup is available, which includes a KDC, an authentication server, and a domain
controller.

Answer the question

In order to leave comments, you need to log in

2 answer(s)
Алексей Черемисин, 2018-06-23
@leahch

1) если нужна авторизация на удаленном сервере, то смотреть на pac4j и/или apache shuro.
2) если сервера авторизации нет, то либо свой писать (можно используя п1), либо используйте CAS-сервер типа apereo.
Экзамплов полно во всех двух пунктах.
Ну а по хорошему, если у вас винда-домен, то лучше всего тикеты получать через NTLM. Тоже самое можно сделать на samba.

S
semexion, 2018-06-24
@semexion Автор вопроса

Using javax.servlet.http.* packages can't get a ticket from the browser?
As far as I know, the browser receiving WWW-Authenticate: Negotiate in the response should automatically send a second request to the server but with a ticket?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question