Схема AppAuth Android https - работать с Firefox и другими браузерами?

Я хотел бы знать, работает ли AppAuth по схеме https с Firefox и другими браузерами.

У меня есть CAS 5.2, действующий как OAuth Idp, но это не проблема, поэтому я не буду публиковать здесь настройки.

Я пытаюсь сделать демо-приложение AppAuth, которое может работать с моим Idp, я использую демо-версию для установки через https://github.com/openid/AppAuth-Android.

Я использую схему https redirect_uri, так как этот OAuth Idp предназначен не только для мобильных устройств.

Проблема в том, что я могу заставить OAuth работать только в Chrome (и в версии Custom Tab) и в браузере Samsung (и в версии Custom Tab).

Для другого браузера, который я тестировал (Opera, Dophin, Firefox), я просто смотрю на свой redirect_uri и отказываюсь возвращаться в Приложения [ https://www.example.net/test_oauth/index.php ] (Примечание: Я уже предлагал пользователю нажать на ссылку для перенаправления)

Я бы хотел, чтобы он работал больше, чем только браузер Chrome и Samsung, если он может работать с, возможно, Firefox Custom Tab и более, это будет здорово!

Настройка в основном такая же, как и в AppAuth Demo, но только принудительно устанавливает секрет клиента (для целей тестирования) и следующую конфигурацию

auth_config.json:

{
  "client_id": "TestOAuth",
  "redirect_uri": "https://www.example.net/test_oauth/index.php",
  "authorization_scope": "openid email profile",
  "discovery_uri": "",
  "authorization_endpoint_uri": "https://www.example.net/cas/oauth2.0/authorize",
  "token_endpoint_uri": "https://www.example.net/cas/oauth2.0/accessToken",
  "registration_endpoint_uri": "",
  "user_info_endpoint_uri": "https://www.example.net/cas/oauth2.0/profile",
  "https_required": false
}

AndroidManifest.xml

  <activity android:name="net.openid.appauth.RedirectUriReceiverActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:host="www.example.net"
                android:path="/test_oauth/index.php"
                android:scheme="https" />
        </intent-filter>
    </activity>

Спасибо!

1 ответ

Решение

Ведущий сопровождающий AppAuth здесь. Насколько я знаю, Firefox и другие браузеры, не основанные на Chromium, не реализуют ссылки на приложения и поэтому не пытаются отправлять соответствующие веб-URL-адреса приложениям, которые их запрашивают. По этой причине, если вы должны использовать URL-адреса веб-перенаправления для потока авторизации, я рекомендую настроить реальную веб-страницу для захвата перенаправления и преобразовать ее в URI на основе пользовательской схемы, прикрепленный к кнопке или ссылке.

Другие вопросы по тегам