BizTalk разрешает ошибку единого входа «Невозможно выкупить тикет, тикет не существует в сообщении» - PullRequest
2 голосов
/ 14 октября 2008

Я использую адаптер Oracle из пакета адаптеров BizTalk (на основе WCF для BTS 2006 R2). В конфигурации портов отправки «запрос-ответ» я использовал имя пользователя и пароль Oracle для подключения к базе данных.

Теперь я хотел бы изменить это и использовать SSO. До сих пор я создал партнерское приложение и сопоставил «идентификатор пользователя» BTS Host Instance с данными пользователя базы данных Oracle.

Когда я запускаю приложение, я постоянно получаю сообщение об ошибке: «Невозможно выкупить тикет, тикет не существует в сообщении».

читая документацию BTS, я нашел следующее в "ms-help: //MS.BTS.2006/BTS06CoreDocs/html/c7bf755c-c37d-4b19-9817-a7f42e1e9656.htm": В тех случаях, когда оркестровка вызывает адаптер отправки, BizTalk Messaging Engine отправляет сообщение в базу данных MessageBox. Оркестровка должна обеспечивать сохранение свойства контекста SSOTicket и свойства контекста Microsoft.BizTalk.XLANGs.BTXEngine.OriginatorSID сообщения, содержащего билет. Когда адаптер получает это сообщение из базы данных MessageBox, он вызывает метод RedeemTicket с зашифрованным билетом для получения учетных данных сервера из хранилища единого входа. Пользователь, проектирующий оркестровку, должен специально скопировать это свойство в сообщение.

Но я получаю сообщение через интегрированное соединение SQL, в котором нет билета SSO.

Пожалуйста, помогите решить эту проблему?

Ответы [ 2 ]

4 голосов
/ 05 марта 2010

Вы можете добавить билет SSO в пользовательский компонент конвейера на порту отправки. У меня работает следующий код:

    public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)
    {
        ISSOTicket ssoTicket = new ISSOTicket();
        pInMsg.Context.Write("SSOTicket", "http://schemas.microsoft.com/BizTalk/2003/system-properties", ssoTicket.IssueTicket(0));
        return pInMsg;
    }

В результате будет сгенерирован тикет для учетной записи службы экземпляра хоста Biztalk, поэтому сопоставление ваших партнерских приложений Oracle должно работать так, как вы ожидаете.

0 голосов
/ 14 апреля 2016

Может потребоваться «Разрешить тикеты» в свойствах системы в SSO Administrator Без этого он не будет работать, даже если вы разрешите билеты в Партнерское приложение.

...