メイン コンテンツをスキップする 補完的コンテンツへスキップ

OAuth クライアントの作成と管理

OAuth は、承認と委任のためのセキュリティ プロトコルです。このプロトコルより、サード パーティのアプリケーションは、エンド ユーザーの資格情報を開示せずに API リソースにアクセスできます。OAuth クライアントは認証コードを要求し、それをアクセス トークンと交換し、そのトークンを使用して API を通じて Qlik Cloud コンテンツにアクセスします。

OAuth クライアント タイプ

OAuth クライアントとは、ユーザーに代わってQlik Cloud のリソースへのアクセスを要求するウェブ アプリケーションまたはソフトウェアのことです。OAuth は、アプリケーション (クライアント) と認可サーバー (Qlik Cloud) 間の認可を保護するために、パブリック クライアントと機密クライアントの 2 つのクライアント タイプを定義します。

Qlik Cloud では、従来のウェブ (サーバー側) の機密クライアントと、特定の認証フローを使用するネイティブおよびシングル ページ アプリケーションのパブリック クライアントをサポートしています。

クライアント タイプに関する公式の OAuth 2.0 仕様については、「RFC 6749 セクション 2.1: OAuth 2.0 クライアント タイプ」を参照してください。

パブリック クライアント

パブリック クライアントは、必要な認証情報の機密性を保持できないため、クライアント シークレットを使用しないアプリケーションです。Qlik Cloud では、これらには分析機能が組み込まれたシングル ページ アプリケーション (SPA) や、ユーザー認証を必要とする Qlik Sense のカスタム ビジュアライゼーション拡張機能などのフロントエンド アプリケーションが含まれます。

機密クライアント

機密クライアントは、クライアント ID とクライアント シークレットを安全に保存し、承認サーバーとの認証に使用できます。これらのクライアントはクライアント シークレットを所有しているため、保護されたリソースにアクセスできます。

例: Qlik Cloud API と対話してユーザー アクセスを管理したり、データ更新タスクを調整したりする、安全なバックエンドを備えたウェブ アプリケーション。

OAuth 認証フロー

Qlik では、次の 2 つの認可フロー (付与タイプ) をサポートしています。

  • 認可コード フロー: 機密クライアント向け。

  • コード交換用証明キー (PKCE) 対応の認可コード フロー: パブリック クライアント向け。

認可コード フロー

このフローは、ソース コードが公開されていないサーバー側のアプリケーションで使用されます。アクセス トークンと認可コードを交換し、認証にはクライアント シークレットを使用します。このフローを使用するウェブ アプリケーションは、トークン交換中にクライアント シークレットが承認サーバーに渡されるため、サーバー側である必要があります。

情報メモテナントのセキュリティが損なわれるため、クライアント シークレットは決して公開しないでください。安全に非公開で保管してください。

認可コード フローの詳細については、公式の OAuth 2.0 ドキュメント「認可コード フロー」を参照してください。

PKCE 対応の認可コード フロー

ネイティブ アプリケーションやシングル ページ アプリケーションでは、ソース コードがブラウザーで逆コンパイルまたは検査される可能性があるため、クライアント シークレットを安全に保存できません。PKCE は、アクセス トークンを取得するためにコード検証の使用を要求することでセキュリティを強化します。

PKCE 対応の認可の詳細については、公式の OAuth 2.0 ドキュメント「コード交換用証明キー (PKCE) 対応の認可コード フローの詳細」を参照してください。

OAuth のスコープと権限

OAuth スコープは、OAuth クライアント アプリケーションに付与されるアクセス レベルを定義します。たとえば、アクセス トークンを使用すると、リソースへのフル アクセスを許可することや、読み取り専用のアクセスに制限することができます。Qlik Cloud では、スコープによって利用可能な機能とリソースへのクライアント アクセスが制御されます。スコープがないと、クライアントはリソースにアクセスできません。

使用可能な OAuth スコープ

次の表には、使用可能なスコープとそれに関連付けられた権限が示されています。

スコープ 権限
user_default アカウントとコンテンツへのフルアクセス
admin_classic

テナントへの完全な管理者アクセス

参照先: Qlik Cloud の展開と管理

情報メモシングル ページ アプリまたはネイティブ クライアント タイプではサポートされません。
admin.apps

テナント内のすべてのアプリを読み取って管理します。

参照先: アプリの管理

子アイテムを示す admin.apps:export

テナント内のすべてのアプリをエクスポートする

参照先: アプリのエクスポート

子アイテムを示す admin.apps:read

テナント内のすべてのアプリを読み取る
admin.automations

テナント内のすべての自動化を読み取って管理する

参照先: 自動化の管理

子アイテムを示す admin.automations:read

テナント内のすべての自動化を読み取る
admin.spaces

テナント内のすべてのスペースを読み取って管理する

参照先: スペースの管理

子アイテムを示す admin.spaces:read

テナント内のすべてのスペースを読み取る
apps

アプリを読み取って管理する

参照先: アプリの管理

子アイテムを示す apps:export

アプリをエクスポートする

参照先: アプリのエクスポート

子アイテムを示す apps:read

アプリを読み取る
自動化

自動化を読み取って管理する

参照先: 自動化の管理

子アイテムを示す automations:read

自動化を読み取る
automl-experiments ML 実験の読み取りと管理
automl-deployments ML 展開の読み取りと管理
identity.email:read

メール アドレスを読み取る

参照先: Qlik Cloud の ID プロバイダー

identity.name:read

フルネームを読み取る
identity.picture:read

プロフィール写真を読み取る

参照先: Qlik Cloud の ID プロバイダー

identity.subject:read

ユーザー サブジェクト識別子を読み取る
spaces.data

データ スペースを読み取って管理する

参照先: スペースの管理

子アイテムを示す spaces.data:read

データ スペースを読み取る
spaces.managed

管理スペースを読み取って管理する

参照先: スペースの管理

子アイテムを示す spaces.managed:read

管理スペースを読み取る
spaces.shared

共有スペースを読み取って管理する

参照先: スペースの管理

子アイテムを示す spaces.shared:read

共有スペースを読み取る
offline_access

オフライン時にリソースにアクセスする

情報メモシングル ページ アプリ クライアント タイプではサポートされません。
情報メモこのリストは、初期リリースでサポートされているスコープを反映しています。スコープの完全なリストは、Qlik 開発者ポータルの「OAuth スコープ」で確認できます。

OAuth クライアントの作成

テナント管理者は、OAuth ページの Administration アクティビティ センターで OAuth クライアントを管理します。OAuth クライアントを使用すると、クライアント アプリケーションを Qlik Cloud と統合して、リソースに安全にアクセスできます。

OAuth クライアントの制限

次の制限が適用されます。

  • クライアントごとに最大 5 個のリダイレクト URL。

  • クライアントごとに最大 5 個のオリジンを許可。

  • クライアントごとに最大 5 個のクライアント シークレット。

  • テナントあたり最大 200 個の OAuth クライアント。

OAuth クライアントを作成するステップ

次の手順を実行します。

  1. Administration アクティビティ センターで、 [OAuth] に移動します。

  2. [新規作成] をクリックします。

  3. 次のクライアント タイプを選択します。

    • 機密クライアント向けの [Web]。

    • パブリック クライアント向けの [シングル ページ アプリ] または [ネイティブ]。

  4. ダイアログで、OAuth クライアントの名前を入力します。

  5. 必要に応じて、説明を追加します。

  6. スクロールまたは検索フィールドを使用して、使用可能ないずれかのスコープを選択します。

    ヒント メモ[すべて] ボタンおよび [選択済み] ボタンを使用して、すべてのスコープを表示するか、選択したスコープのみを表示します。
  7. OAuth クライアント アプリケーションの 1 つ以上のリダイレクト URL を入力します (最大 5 個)。次に、 [追加] をクリックしてリダイレクト URL を許可リストに追加します。

    • リダイレクト URL は、クライアント アプリケーションの認証と権限の付与に成功した後に、承認サーバーがユーザーのブラウザーを送信する場所です。たとえば、https://www.exampleアプリ.com/oauth/callback では、/oauth/callback は OAuth プロバイダーからの認証コールバックを処理します。

    • Qlik Cloud は、承認が成功した後、その URL がリダイレクト URL の許可リストに含まれている場合にのみ、ユーザーをアプリケーションにリダイレクトします。

    • ドメインが localhost でない限り、URL は https:// で始まる必要があります。ドメインが localhost の場合は、http:// で始めることができます。ネイティブ アプリでは exampleアプリ:// のようなアプリケーションに特化したリンク形式も使用できます。

  8. クライアント タイプが [Web] または [シングル ページ アプリ] の場合は、許可されたオリジンを 1 つ以上指定します (最大 5 つ)。

    • アプリケーションへのアクセスは、その URL が許可されたオリジン リストに追加されている場合にのみ許可されます。

  9. クライアント タイプが Web の場合、ユーザーの介入なしで自動的にシステムにアクセスするために、次のいずれかのオプションを有効にできます。

    • マシンツーマシン (M2M) を許可: ユーザーの関与なしにシステム間通信を可能にします。

    • M2M ユーザーの成り代わりを許可: 認証プロセス中にアプリケーションがユーザーの代理として認証することを許可します。

  10. [作成] をクリックします。

  11. [クリップボードにコピー] をクリックして、後で使用できるようにクライアント ID とクライアント シークレットを保存します。クライアント シークレットを安全に保存します。

    情報メモパブリック クライアントにはクライアント シークレットがありません。
  12. [完了] をクリックします。

特定のユース ケースに対応する OAuth クライアント

OAuth クライアントのユース ケースについては、次のリソースを参照してください。

Microsoft ExcelQlik アドインの OAuth クライアントの作成

Microsoft Excel 用の Qlik アドインをインストールするには、OAuth クライアント構成が必要です。このアドインは、レポート開発者が、Qlik Sense アプリからの表形式レポートの出力を制御するレポート テンプレートを準備するために使用されます。

アドインで OAuth が機能するには、OAuth クライアントを以下に示すように正確に構成する必要があります。

次の手順を実行します。

  1. Qlik CloudAdministration アクティビティ センターで、OAuth に移動します。

  2. [新規作成] をクリックします。

  3. [クライアント タイプ] ドロップダウン メニューで、 [単一ページ アプリ] を選択します。その他の項目が表示されます。

  4. [名前] を入力します。[説明] はオプションです。

  5. 少なくとも、user_default スコープを含めるチェックボックスをオンにします。構成に他のスコープを含めることはできますが、user_default がないとインストールは機能しません。

    使用可能な各スコープの詳細については、「使用可能な OAuth スコープ」を参照してください。

  6. [リダイレクト URL の追加] 項目に、テナントの URL を入力し、その後に固定文字列: /office-add-ins/oAuthLoginSuccess.html を入力します。

    結果は次のようになります: https://YourServer/office-add-ins/oAuthLoginSuccess.html

  7. [追加] をクリックします。

  8. [許可されているオリジンの追加] 項目にテナント URL を入力し、 [追加] をクリックします。

  9. [作成] をクリックします。

  10. [クライアント ID をコピー] ウィンドウが表示されます。クライアント ID をクリップボードにコピーするか、 [完了] をクリックしてウィンドウを閉じます。

OAuth クライアントを作成した後、Administration アクティビティ センターから更新されたマニフェスト XML ファイルへのリンクを取得します。[設定] ページに移動し、Administration アクティビティ センター内の [共有とレポート] > [Excel アドイン] に移動します。このリンクを使用して、アドインを展開およびインストールします。

マニフェスト ファイルの生成、およびアドインの展開とインストールの詳細については、次を参照してください。

アプリコンテンツの匿名埋め込み用の OAuth クライアントの作成

qlik-embed を使用して匿名アクセス用にアプリ コンテンツを埋め込むには、このユース ケース用に特別に設計されたタイプの OAuth クライアントを作成する必要があります。

情報メモ この機能は、Qlik Anonymous Access サブスクリプションでのみ使用できます。詳細については、「Qlik Anonymous Access のサブスクリプション」を参照してください。

次の手順を実行します。

  1. Administration アクティビティ センターで、 [OAth] セクションに移動します。

  2. [新規作成] をクリックします。

  3. [クライアント タイプ] ドロップダウン メニューで、 [匿名埋め込み] を選択します。

  4. OAth クライアントの [名前] を入力し、必要に応じて [説明] を入力します。

  5. [許可されているオリジン] に、承認が必要な各オリジンを入力します。これらは、埋め込み分析の情報を取得するために Qlik Cloud テナントにアクセスするドメインです。

    各 URL を挿入した後、 [追加] をクリックします。

  6. 完了したら、 [作成] をクリックします。

  7. [クリップボードにコピー] をクリックして、後で使用できるようにクライアント ID を保存します。アプリのコンテンツが qlik-embed に埋め込まれている場合に必要になります。

  8. [完了] をクリックします。

OAuth クライアントの編集

OAuth クライアントの名前を変更したり、説明を更新したり、リダイレクト URL を管理したりできます。

次の手順を実行します。

  1. Administration アクティビティ センターで、 [OAuth] に移動します。
  2. 編集する OAuth クライアントを見つけます。
  3. 詳細をクリックし、 [編集] を選択します。
  4. 必要に応じて OAuth クライアント オプションを変更します。
  5. [Save] (保存)をクリックします。

OAuth クライアントの削除

OAuth クライアントが不要になったとき、またはアクセスを無効化するときに、OAuth クライアントを削除できます。

次の手順を実行します。

  1. Administration アクティビティ センターで、 [OAuth] に移動します。

  2. 削除する OAuth クライアントを 1 つ以上選択し、 [削除] をクリックします。

  3. 削除を確定します。

OAuth クライアントの公開

OAuth クライアントは、それを作成したテナントに最初にバインドされます。ただし、同じリージョン内の複数のテナントで OAuth クライアントを共有するように構成できます。この構成により、サードパーティのアプリケーションは、異なる Qlik Cloud テナント間で同じクライアント ID を使用できるようになります。

アプリケーションの所有者は、テナント管理者の介入なしに、シークレットをローテーションして構成を更新できます。テナント管理者は、資格情報を管理したり、公開されたクライアントの構成の詳細を認識したりする必要はありません。

他のテナントが OAuth クライアントに接続できるようにするには、公開する必要があります。

次の手順を実行します。

  1. Administration アクティビティ センターで、 [OAuth] に移動します。
  2. 公開する OAuth クライアントを見つけます。
  3. クライアントの横にある 詳細 をクリックし、 [公開] を選択します。
  4. [公開] をクリックして確定します。

OAuth クライアントが公開されると、他のテナントが外部で使用できるようになります。ユーザーがこの OAuth クライアントを使用する外部ウェブ サイトにアクセスすると、アクティブな SaaS セッションがすでにない限り、テナント ホスト名とユーザー資格情報を入力するよう求められます。

初回のログインにはテナント管理者の同意が必要です。承認されると、OAuth クライアントがテナントの Administration アクティビティ センターに表示されます。

同意方法

既定では、Qlik Cloud は認証時にユーザーに同意を求めます。特に信頼できるアプリケーションの場合、プロセスを効率化するために同意方法を「信頼済み」に設定して、同意のプロンプトをスキップすることができます。

同意には、次の 2 つのオプションがあります。

  • 必須: OAuth クライアントによって新しいスコープが要求されるたびに、ユーザーに同意を求められます。この方法によって、各アクセス レベルに対する明示的なユーザー承認が保証されます。

  • 信頼済み: ユーザーに同意を求めるプロンプトは表示されません。このオプションは、未公開のクライアントに対してのみ使用できます。公開済みのクライアントの場合、複数のテナント間でセキュリティを維持するために、同意方法は常に [必須] となります。

情報メモマシンツーマシン (M2M) として使用されるクライアントの場合、クライアントの作成後、同意方法を [信頼済み] に変更する必要があります。

同意方法の変更

OAuth クライアントの同意方法を変更するには、次の手順を実行します。

  1. Administration アクティビティ センターで、 [OAuth] に移動します。
  2. OAuth クライアントで 詳細 をクリックし、 [同意方法の変更] を選択します。
  3. [必須] または [信頼済み] を選択し、 [同意方法の変更] をクリックします。

OAuth 構成の表示とコピー

Administration アクティビティセンターの OAuth セクションで、 [OAuth 構成を確認する] を選択し、Qlik Cloud テナントの認証の詳細を表示します。この操作により、OAuth エンドポイントと設定を含むコード スニペットと、外部アプリケーションで使用するためにコピーできる URL が表示されます。

この設定を使用して、Qlik Cloud をサードパーティのアプリケーションと統合したり、API アクセスを自動化したり、組み込み分析の認証を構成したりできます。

クライアント シークレットの管理

クライアント シークレットが侵害された場合、またはセキュリティ ポリシーで定期的な更新が必要な場合は、シークレットを追加または削除できます。ダウンタイムを回避するには、複数のクライアント シークレット (最大 5 個) を追加し、クライアント アプリケーションを更新してから、古いシークレットを削除します。

クライアント シークレットの追加

次の手順を実行します。

  1. Administration アクティビティ センターで、 [OAuth] に移動します。
  2. OAuth クライアントを見つけます。
  3. [詳細] をクリックし、 [シークレットの管理] を選択します。
  4. [新しいクライアント シークレットを生成する] をクリックします。
  5. クライアント シークレットとクライアント ID をコピーし、安全に保管します。

    情報メモ後でクライアント シークレットにアクセスすることはできません。
  6. [Close] (閉じる) をクリックします。

クライアント シークレットの削除

次の手順を実行します。

  1. Administration アクティビティ センターで、 [OAuth] に移動します。
  2. OAuth クライアントを見つけます。
  3. [詳細] をクリックし、 [シークレットの管理] を選択します。
  4. クライアント シークレットの横にある 削除 をクリックします。
  5. [Close] (閉じる) をクリックします。

Qlik Cloud にアクセスするための OAuth クライアント アプリケーションの構築

OAuth クライアントを Qlik Cloud に登録した後、関連付けられたクライアント ID とクライアント シークレットを OAuth クライアント アプリケーションで使用できます。

詳細な手順については、Qlik 開発者ポータルの「OAuth の概要」セクションにあるチュートリアルを参照してください。これらのチュートリアルでは、一般的なプログラミング言語を使用してクライアント アプリケーションを構築する方法について説明しています。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。