2.2.3. Cordova でのハイブリッドアプリケーション


Keycloak は、Apache Cordova で開発されたハイブリッドモバイルアプリをサポートしています。JavaScript アダプターには、cordova および cordova-native の 2 つのモードがあります。

デフォルトは cordova で、アダプターのタイプが設定されておらず、window.cordova が存在する場合は自動的に選択されます。ログインすると、ユーザーが Red Hat Single Sign-On を操作できる InApp ブラウザー が開き、その後 http://localhost リダイレクトしてアプリに戻ります。このため、管理コンソールのクライアント設定セクションでこの URL を有効な redirect-uri としてホワイトリスト化する必要があります。

このモードの設定は簡単ですが、いくつかの欠点もあります。

  • InApp-Browser はアプリに組み込まれたブラウザーで、電話のデフォルトブラウザーではありません。したがって、設定が異なり、保存されている認証情報は利用できません。
  • 特に複雑な内容をレンダリングする場合は、InApp-Browser も遅くなる可能性があります。
  • このモードを使用する前に、アプリがログインページをレンダリングするブラウザーを完全に制御できるため、アプリがユーザーの資格情報にアクセスできる可能性があるなど、セキュリティ上の懸念事項を考慮する必要があります。そのため、信頼できないアプリの使用は許可しないでください。

この例のアプリ (https://github.com/keycloak/keycloak/tree/master/examples/cordova) で初めてみましょう。

代替モードの cordova-native は別のアプローチを取っています。システムのブラウザーを使用してログインページが開きます。ユーザーが認証されると、ブラウザーは特別な URL を使用してアプリにリダイレクトします。そこから、Red Hat Single Sign-On アダプターは、URL からコードまたはトークンを読み取り、ログインを終了できます。

init メソッドにアダプター型の cordova-native を渡すことで、ネイティブモードを有効できます。

keycloak.init({
    adapter: 'cordova-native'
})
Copy to Clipboard Toggle word wrap

このアダプターには、以下の 2 つのプラグインが必要です。

アプリへのリンクの技術情報は、各プラットフォームや特別な設定によって異なります。詳細は、deeplinks プラグインのドキュメント の Android と iOS のセクションを参照してください。

アプリを開くためのリンクにはさまざまな種類があります。カスタムスキーム (myapp://login または android-app://com.example.myapp/https/example.com/login) と ユニバーサルリンク (iOS)/Deep Links (Android) です。前者はセットアップが簡単で信頼性が高い傾向がありますが、後者は一意であり、ドメインの所有者のみが登録できるため、セキュリティーが強化されます。カスタム URL は iOS で非推奨になりました。最高の信頼性を得るには、ユニバーサルリンクをカスタム URL リンクのあるフォールバックサイトと組み合わせて使用することをお勧めします。

さらに、Keycloak アダプターとの互換性を改善するには、以下の手順が推奨されます。

  • iOS のユニバーサルリンクは、response-modequery に設定すると、より確実に動作するようです。
  • リダイレクト時に Android がアプリの新しいインスタンスを開かないようにするには、次のスニペットを config.xml に追加します。
<preference name="AndroidLaunchMode" value="singleTask" />
Copy to Clipboard Toggle word wrap

ネイティブモードの使い方を示すアプリの例 (https://github.com/keycloak/keycloak/tree/master/examples/cordova-native) があります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat