RealmId не вернется в поток OpenID для Quickbooks Online

У меня есть запрос к Quickbooks в Интернете, чтобы реализовать правильный поток единого входа (SSO). Я использую openid4java и отлично получаю имя, фамилию и адрес электронной почты, но без идентификатора области.

В качестве примера я использовал опубликованный код Intuit, мой сборщик выглядит так: final FetchRequest fetch = FetchRequest.createFetchRequest();

    try {
        fetch.addAttribute("FirstName", "http://axschema.org/namePerson/first", true);
        fetch.addAttribute("LastName", "http://axschema.org/namePerson/last", true);
        fetch.addAttribute("Email", "http://axschema.org/contact/email", true);
        fetch.addAttribute("RealmId", "http://axschema.org/intuit/realmId", true);
    } catch (MessageException e) {
        mLogger.warning(e.getLocalizedMessage());
        e.printStackTrace();
    }

Мой запрос авторизации выглядит так:

openid.ns:http://specs.openid.net/auth/2.0
openid.claimed_id:http://specs.openid.net/auth/2.0/identifier_select
openid.identity:http://specs.openid.net/auth/2.0/identifier_select
openid.return_to:http://localhost:8888/qbopenid
openid.realm:http://localhost:8888/qbopenid
openid.assoc_handle:o5SH!IAAAACLd1tm9oBJwwIhLZnb4uHYSvphLvPKupx_kJsjquipfQQAAAAEgqUSt5DXPSGwQ79I7lFlHh8gGWpBFaXdjr6diKdticDtCpv8EgpBpO3lDHIhT-275K8lDxZWoeLxqABigxYjf
openid.mode:checkid_setup
openid.ns.ext1:http://openid.net/srv/ax/1.0
openid.ext1.mode:fetch_request
openid.ext1.type.FirstName:http://axschema.org/namePerson/first
openid.ext1.type.LastName:http://axschema.org/namePerson/last
openid.ext1.type.Email:http://axschema.org/contact/email
openid.ext1.type.RealmId:http://axschema.org/intuit/realmId
openid.ext1.required:FirstName,LastName,Email,RealmId

Но когда запрос возвращается, я также не вижу в запросе упоминания об идентификаторе области. Как будто он пропал. Есть идеи, что случилось? Спасибо!


person Shaun    schedule 19.12.2013    source источник


Ответы (1)


Пожалуйста, смотрите примечание здесь:

https://developer.intuit.com/docs/0025_quickbooksapi/0010_getting_started/0030_integrate_your_app/0030_signing_into_and_out_of_intuit_from_within_your_app/sign-in/implement_sso_and_openid_in_your_app

Это поле можно получить только при наличии активного соединения между областью и приложением и когда пользователь запускает приложение из App Center или переходит к приложению из меню Blue Dot.

Вам будет возвращена область в конце потока OAuth, чтобы связать ее с токенами доступа. Он не всегда возвращается OpenID.

person Peter Lavelle    schedule 20.12.2013
comment
Да, это очень сбивает с толку, если вы посмотрите на единый вход в документации для этого, это совсем не проясняет. Пример Java в документации специально пытается использовать realmid для аутентификации пользователя. Кроме того, комментарий «Это не всегда странно, потому что с программным обеспечением в целом код, который иногда работает, а иногда не кажется плохой идеей». - person Shaun; 02.02.2014
comment
Правильно, так что не полагайтесь на то, что он вернется из OpenID. Свяжите его с пользователем после потока OAuth. - person Peter Lavelle; 03.02.2014
comment
Происходит ли это также во время процесса «попробовать/купить» или как отличить «попробовать/купить» от обычного входа в систему с помощью интуитивного интерфейса? Спасибо! - person Shaun; 14.02.2014
comment
Я думаю, что уже ответил на этот вопрос в другой теме, которую вы обсуждали сегодня утром, но вы можете добавить параметр запроса к URL-адресу OpenID в настройках вашего приложения. - person Peter Lavelle; 14.02.2014
comment
intuitpartnerplatform.lc.intuit.com/questions/ - person Peter Lavelle; 14.02.2014
comment
Привет, @PeterLavelle, могу ли я получить realmid с apps.intuit.com -> кнопка «получить приложение сейчас» -> авторизоваться и -> URL-адрес нашего открытого идентификатора? - person jameshwart lopez; 25.10.2016