OAM 12c Проверка токена доступа OAuth - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь настроить OAM 12c для реализации OAuth с настройкой по умолчанию.Обращение за помощью в разрешении проблемы, связанной с подписью.

Issue - Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128

Вариант использования - локальная проверка токена доступа OAM 12c с использованием сертификатов OAM для реализации OAuth (поток с двумя участками)

Описание - OSB (OracleService Bus) - продукт оракула для реализации сервисов REST и безопасных сервисов с использованием продукта OWSM.Приложение пользовательского интерфейса (для моделирования мы используем SOAP UI) вызовет эту службу REST и передаст токен JWT в качестве токена носителя (токен, сгенерированный посредством вызова REST API OAM 12c), OSB должен проверить токен с помощью сертификатов OAM.

Выполненные действия - 1. Импортированы сертификаты OAM (в папке fmwconfig / defaultkeystore alias orakey) в хранилище ключей OWSM по умолчанию, и согласно документации оракула, он должен проверять входящий токен доступа JWT локально с использованием сертификатов OAM.2. Созданы домен идентификации, сервер ресурсов и клиент с использованием OAM API. 3. Создан токен с помощью вызова OAM API. 4. Передача этого токена в OSB REST API. 5. Сбой проверки токена с приведенным ниже исключением в журналах OSB.

Исключениемы получаем -

Caused by: java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
              at sun.security.rsa.RSASignature.engineVerify(RSASignature.java:189)
              at java.security.Signature$Delegate.engineVerify(Signature.java:1219)
              at java.security.Signature.verify(Signature.java:652)
              at oracle.security.restsec.jwt.JwtToken.verify(JwtToken.java:1558)

Я подтвердил, что токен, сгенерированный на OAM12c, является RSA256 с подписью RSASHA256, но похоже, что OSB (12.2.1.3.0) не может использовать то же самое, пожалуйста, дайте знатьВаш вклад и помощь в решении этой проблемы.

1 Ответ

0 голосов
/ 07 апреля 2019

Мне кажется, что проблема заключается в использовании неверного сертификата для проверки подписи.

В OAM 12c каждый созданный домен OAuth имеет свой собственный набор пар открытый-закрытый ключ (сертификаты).Эти сертификаты не хранятся в псевдониме fmwconfig / defaultkeystore orakey.

В последнем исправлении 12cPS3 Bundle попробуйте следующий URL-адрес для получения сертификата домена OAuth.

curl -X GET "http://{managed server host}:{managed server port}/oauth2/rest/security" -H 'authorization: Basic ...' -H 'X-OAUTH-IDENTITY-DOMAIN-NAME: <OAuth Domain Name>'

, где заголовок Basic authorization содержит -B64 в кодировке «Идентификатор клиента OAuth: пароль»

Ответ будет в спецификации веб-ключа JSON, т.е. RFC 7517.

...