Обеспечение безопасности веб-служб с помощью профилей SAML или UserNameToken
Это руководство посвящено реализации проверки подлинности на основе SAML и UserNameToken между клиентом и поставщиком веб-службы с помощью поставляемого диспетчера доступа (Access Manager) наряду с интегрированной поддержкой стандарта WS-Security в клиенте веб-службы сервера приложений и серверных контейнеров.
Запустите программу установки SDK Java, укажите папку установки по выбору и примите параметры по умолчанию.
Выберите надстройки, в т.ч. Sun Java System Access Manager.
Продолжайте выполнение программы установки; по завершении запустите сервер и нажмите кнопку "Finish".
Запустите среду IDE.
На вкладке "Services" выберите узел "Servers". Щелкните правой кнопкой мыши узел Servers и выберите "Add Server" в появившемся меню. Откроется диалоговое окно "Add Server Instance".
Нажмите кнопку "Browse" в поле "Platform Location", затем перейдите к каталогу, содержащему только что установленный SDK платформы приложений на Java и выберите его.
Нажмите кнопку "Finish".
На вкладке "Services" для только что установленного сервера приложений появится узел "Sun Java System Access Manager". Для работы с Sun Java System Access Manager необходимо сначала запустить сервер приложений.
В окне "Services" разверните узел "Sun Java System Access Managers". Щелкните правой кнопкой мыши узел "Access Manager" и выберите действие "View Admin Console".
При этом выполняется переход к странице "Login", которая немедленно отображается при последующих входах в систему. Далее можно зарегистрироваться в Sun Java System Access Manager. Открывается страница "Log In", что указывает на то, что диспетчер доступа запущен.
Для правильной работы Access Manager его необходимо настроить. По умолчанию он настраивается при первом запуске сервера GlassFish, полученного из SDK, однако в дальнейшем при необходимости настройку можно изменить. Дополнительная информация приведена в файле [your_SDKGlassfish_location]/addons/README.html .
В окне "Runtime" разверните узел "Servers", а затем щелкните правой кнопкой мыши узел "Java EE SDK GlassFish" и выберите "Start" в появившемся меню.
Через некоторое время в окне "Output" появляется следующее сообщение: Application server startup complete.
Работающий сервер обозначается в среде IDE зеленой стрелкой рядом с узлом "Sun Java System Application Server 9". Примечание: Если пункт "Start" недоступен, сервер уже работает.
Предлагается два учебных проекта: StockQuoteService и StockQuoteClient.
Для создания проекта StockQuoteService:
В главном меню среды IDE выберите "File > New Project".
В списке "Categories" разверните узел Samples и выберите узел Identity Blueprints.
В окне "Projects" выберите Stock Service.
Нажмите кнопку "Next".
Примите стандартное имя проекта (StockQuoteService) и, если необходимо, измените местоположение проекта ("Project Location").
Нажмите кнопку "Finish".
Для создания проекта StockQuoteClient:
В главном меню среды IDE выберите "File > New Project".
В списке "Categories" разверните узел Samples и выберите узел Identity Blueprints.
В списке "Projects" выберите StockQuoteClient.
Нажмите кнопку "Next".
Примите стандартные значения для имени проекта (StockQuote Client) и его местоположения.
Нажмите кнопку "Finish".
В окно "Projects" добавляется узел проекта StockQuote Client.
Если среда IDE NetBeans была установлена вместе с сервером GlassFish v2, он выбран в качестве сервера по умолчанию для обоих демонстрационных проектов. Вместо него следует выбрать сервер "Java EE SDK Glassfish".
Для изменения серверов проектов на "Java EE SDK Glassfish":
Откройте вкладку "Projects".
Щелкните правой кнопкой мыши узел проекта "StockQuoteService" и выберите "Properties".
Выберите категорию "Run".
Откройте раскрывающийся список "Server:" и выберите пункт "Java EE SDK GlassFish".
Нажмите кнопку "OK".
Повторите эти действия для проекта "StockQuoteClient".
Безопасность веб-служб: использование механизма обеспечения безопасности SAML-HolderOfKey
В этом случае используется профиль безопасности SAML-HolderOfKey без подписи ответа, но с использованием хранилища ключей по умолчанию. Для этого необходимо сначала изменить профиль маркера (токена) для Access Manager, а затем настроить провайдер и клиент веб-службы.
Для изменения профиля SAML-HolderOfKey:
В окне "Runtime" разверните узел Sun Java System Access Managers, а затем разверните узлы Profiles.
Выберите узел SAML-HolderOfKey.
Щелкните правой кнопкой мыши и выберите "Edit". Откроется диалоговое окно "Edit SAML-HolderOfKey Profile".
Снимите флажок "Sign Response".
Перейдите к разделу "Existing Certificate Settings" и убедитесь в том, что установлен флажок "Use Default Key Store".
Нажмите кнопку "OK".
Для настройки провайдера веб-службы:
В окне "Projects" разверните узел проекта "StockQuoteService" и узел "Web Services".
Перейдите к узлу "Web Services", щелкните правой кнопкой мыши узел "StockService" и выберите "Edit Web Service Attributes" в появившемся меню. Откроется окно "StockService" с выбранной вкладкой "AM Security".
В раскрывающемся списке "Request" выберите механизм обеспечения безопасности SAML-HolderOfKey.
Нажмите кнопку "OK".
Для настройки клиента веб-службы:
В окне "Projects" разверните узел StockQuoteClient и узел Web Service References.
Перейдите к узлу Web Service References, щелкните правой кнопкой мыши узел StockService и выберите "Edit Web Service Attributes" в появившемся меню.
Откроется диалоговое окно "Web Service Client Security Configuration".
Выберите в раскрывающемся списке "Request" пункт "SAML-HolderOfKey".
Перейдите к разделу "Existing Certificate Settings". Убедитесь в том, что установлен флажок "Use Default Key Store".
Нажмите кнопку "OK".
Если в "Web Services References" для клиента "StockQuoteClient" появился значок ошибки, выполните развертывание проекта "StockQuoteService" (щелкните правой кнопкой мыши узел проекта службы и выберите "Undeploy and Deploy"), затем обновите клиент (щелкните правой кнопкой мыши узел ссылки на веб-службу и выберите "Refresh Client").
Теперь можно приступить к развертыванию и запуску примера в соответствии с указаниями из раздела Развертывание и запуск проекта.
Безопасность веб-служб: использование механизма обеспечения безопасности UserNameToken
В этом случае используется профиль безопасности UserNameToken с подписью ответа и с хранилищем ключей по умолчанию. Для этого необходимо сначала изменить профиль маркера (токена) для Access Manager, а затем настроить провайдер и клиент веб-службы.
Для изменения профиля UserNameToken:
В окне "Runtime" разверните узел Sun Java System Access Managers, а затем разверните узлы Profiles.
Выберите узел UserNameToken, щелкните правой кнопкой мыши и выберите "Edit". Откроется диалоговое окно "Edit UserNameToken Profile".
Выберите "Use Default Key Store".
Перейдите к разделу "Username Token Profile Info". Нажмите кнопку "Add" для добавления записи "UserNameToken" для клиента веб-службы.
Откроется диалоговое окно "Add User".
В поле "Username" введите sherry. В поле "Password" введите mypw и нажмите кнопку "OK".
Для закрытия диалогового окна "Edit UserNameToken Profile" нажмите кнопку "OK".
Для настройки провайдера веб-службы:
В окне "Projects" разверните узел StockQuoteService и узел Web Services.
Перейдите к узлу "Web Services", щелкните правой кнопкой мыши узел "StockService" и выберите "Edit Web Service Attributes" в появившемся меню. Откроется окно "StockService" с выбранной вкладкой "AM Security".
В раскрывающемся списке "Request" выберите механизм обеспечения безопасности UserNameToken.
Нажмите кнопку "OK".
Для настройки клиента веб-службы:
В окне "Project" разверните узел "StockClient". В проекте "StockClient" разверните узел "Web Service References". Щелкните правой кнопкой мыши узел "StockService" и выберите "Edit Web Service Attributes" в появившемся меню. Откроется диалоговое окно "Web Service Client Security Configuration".
В окне "Projects" щелкните правой кнопкой мыши узел проекта StockQuoteService и выберите "Undeploy and Deploy Project".
Средой IDE выполняются следующие действия:
Запуск сервера приложений, если он еще не запущен.
Сборка проекта StockQuoteService. Результаты процесса сборки отображаются в окне "Output".
Развертывание server.war на сервере приложений.
В окне "Projects" щелкните правой кнопкой мыши узел проекта StockQuoteClient и выберите "Run Project".
Средой IDE выполняются следующие действия:
Сборка проекта StockQuoteClient. Результаты процесса сборки отображаются в окне "Output".
Развертывание client.war на сервере приложений.
Приложение открывается в обозревателе.
Убедитесь в том, что в поле "URL" всегда отображается http://localhost:8080/stockquoteclient/.
Нажмите кнопку "Submit".
Для просмотра сообщений SOAP, связанных с этим запросом, можно щелкнуть "View SOAP Messages".
В окне "Projects" щелкните правой кнопкой мыши узел проекта StockQuoteClient и выберите "Run Project" в появившемся меню.
Откройте файл протокола сервера приложений (server.log) в следующем каталоге: application-server-installation-directory\domains\domain1\logs.
Если в ходе установки были приняты стандартные значения, на экран выводится содержимое каталога C:\Sun\AppServer\domains\domain1\logs.
Обратите внимание на изменения в файле протокола.
Измененный файл протокола показывает использование в модулях методов, определенных на экранах настройки.
С примерами разделов измененного файла протокола можно ознакомиться путем перехода по следующим ссылкам.
Сведения о настройке для сервера приложений, не установленного на порту 8080
Если при установке сервера приложений Sun Java System Application Server был указан порт, отличный от 8080, требуются дополнительные этапы процедуры настройки:
В окне "Projects" разверните узлы StockQuoteClient > Web Pages > WEB-INF и wsdl, а затем откройте файл stock.wsdl в редакторе.
Нажмите кнопку "Source" для перехода в окну "Source" для этого файла.
Выполните прокрутку в конец файла и найдите следующую строку:
<soap:address location="http://localhost:8080/stockservice/stockservice" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"/>
Замените значение 8080 номером порта, на котором установлен сервер приложений.
В этом руководстве была рассмотрена процедура включения проверки подлинности на основе SAML и UserNameToken клиентом и провайдером веб-службы. Для этого были выполнены следующие действия...
Для получения дополнительных сведений об управлении идентификацией см. соответствующие темы справки в среде IDE NetBeans.
Оставить комментарии и предложения, обратиться за поддержкой и получить информацию о последних изменениях в функциональных возможностях разработки среды IDE NetBeans можно через список рассылки
.