OAuth クライアントの作成と管理
OAuth は、承認と委任のための標準のセキュリティ プロトコルです。これにより、サード パーティのアプリケーションは、エンド ユーザーの資格情報を開示せずに API リソースにアクセスできます。OAuth クライアントは、認証コードを取得して、API 経由で Qlik Cloud コンテンツへのアクセスに使用できるアクセス トークンと交換できます。
パブリックおよび機密のクライアント
OAuth にはパブリック クライアントと機密クライアントの 2 つのクライアント タイプがあり、アプリケーション (クライアント) と認可サーバー (Qlik Cloud) の間で認可を保護します。
パブリック クライアント
パブリック クライアントは、必要な認証情報の機密性を保持できないためクライアント シークレットを使用しないアプリケーションです。Qlik Cloud のパブリック クライアントは、埋め込み分析や Qlik Sense のカスタム ビジュアライゼーション拡張を用いた単一ページのアプリケーションのようなフロントエンドのアプリケーションであることが多く、アプリケーションのライフサイクルをサポートするためにエンド ユーザーの情報が必要になります。
: RFC 6749 セクション 2.1: OAuth 2.0 クライアント タイプを参照してください。
Qlik Cloud では、従来のウェブ (サーバー側) の機密クライアントと、特定の付与タイプを使用するネイティブおよび単一ページのアプリケーションのパブリック クライアントをサポートしています。
機密クライアント
機密クライアントは、権限のない関係者にクライアント ID とクライアント シークレットを公開せずに安全な方法で維持するアプリケーションです。機密クライアントは、クライアント シークレットを保持しているため保護されたリソースにアクセスできます。機密クライアントの例は、安全なバックエンドを使用するウェブ アプリケーションで、Qlik Cloud API と相互作用してデータ更新タスクを調整したり、コンテンツへのユーザー アクセス管理したりします。
認可付与タイプ
Qlik では、認可コード フローとコード交換用証明キー (PKCE) 対応の認可コード フローの 2 つの認可付与タイプまたはフローをサポートしています。これらのフローは非常に似ていますが、サポートする使用例は異なります。
認可コード フロー
従来のウェブ アプリケーションはソース コードが公開されないサーバー側のアプリケーションです。そのため、トークンの認可コードを交換する認可コード フローを使用できます。このフローを使用するウェブ アプリケーションは、トークンの交換中にアプリケーションのクライアント シークレットが認可サーバーに渡されるためサーバー側でなければなりません。
詳細については、「認可コード フロー」を参照してください。
コード交換用証明キー (PKCE) 対応の認可コード フロー
ネイティブおよび単一ページのアプリケーションは、それぞれ app を逆コンパイルするか、またはブラウザーから app ソースを表示するとソース コードがアクセス可能になるため、クライアント シークレットを保存できません。PKCE によりアクセス トークンを取得するためにコード検証器の使用を要求してパブリック クライアントの保護を強化します。
詳細については、「コード交換用証明キー (PKCE) 対応の認可コード フロー」を参照してください。
OAuth クライアントが使用できるスコープの制限
OAuth スコープでは、OAuth クライアント アプリに許可されるアクセス量を制限する方法が提供されます。たとえば、クライアント アプリに発行されたアクセス トークンには、保護されたリソースへの完全なアクセスが付与されることもあれば、読み取りアクセスのみが付与されることもあります。
Qlik Cloud では、使用できる機能とリソースへのクライアント アクセスを制御する方法がスコープから提供されます。各スコープは、異なるレベルのアクセスを許可します。スコープのないクライアントはリソースにアクセスできません。
OAuth クライアントの作成
OAuth クライアントは、 [OAuth] ページの Administration アクティビティ センターから、テナント管理者によって管理されます。
OAuth クライアントを使用すると、クライアント アプリケーションを Qlik Cloud と統合できます。
Microsoft Excel 用 Qlik アドインの展開およびインストール用の OAuth クライアントを作成する方法については、「Microsoft Excel 用 Qlik アドインの OAuth クライアントの作成」 を参照してください。
次の手順を実行します。
-
Administration アクティビティ センターで、 [OAuth] に移動します。
-
[新規作成] をクリックします。
-
クライアント タイプを選択します。
機密クライアント向けのウェブおよびパブリック クライアント向けの単一ページ アプリまたはネイティブ アプリを使用します。
-
ダイアログで、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
テナント内のすべてのスペースを読み取る app アプリを読み取って管理する
参照先: アプリの管理
apps:export
アプリをエクスポートする
参照先: アプリのエクスポート
apps:read
アプリを読み取る 自動化 自動化を読み取って管理する
参照先: 自動化の管理
automations:read
自動化を読み取る automl-experiments ML 実験の読み取りと管理 automl-deployments ML 展開の読み取りと管理 identity.email:read メール アドレスを読み取る
identity.name:read
フルネームを読み取る identity.picture:read プロフィール写真を読み取る
identity.subject:read
ユーザー サブジェクト識別子を読み取る spaces.data データ スペースを読み取って管理する
参照先: スペースの管理
spaces.data:read
データ スペースを読み取る spaces.managed 管理スペースを読み取って管理する
参照先: スペースの管理
spaces.managed:read
管理スペースを読み取る spaces.shared 共有スペースを読み取って管理する
参照先: スペースの管理
spaces.shared:read
共有スペースを読み取る offline_access オフライン時にリソースにアクセスする
情報メモ単一ページ アプリ クライアント タイプではサポートされません。情報メモリストの上部にある [すべて] ボタンと [選択済み] ボタンを使用して、すべてのスコープまたは選択したスコープを表示できます。情報メモ上記のリストは、初期リリースでサポートされているスコープを反映しています。スコープの完全なリスト (初期リリース後に追加されたスコープも含む) は、 [Qlik 開発者ポータル] で見つけることができます。 -
OAuth クライアント アプリケーションの 1 つ以上のリダイレクト URL を入力します。
ヒント メモリダイレクト URL は、クライアント アプリケーションの認証と権限の付与に成功した後に、承認サーバーがユーザーのブラウザーを送信する場所です。たとえば、https://www.exampleapp.com/oauth/callback では、/oauth/callback は OAuth プロバイダーからの認証コールバックを処理します。Qlik Cloud は、承認が成功した後、その URL がリダイレクト URL の許可リストに含まれている場合にのみ、ユーザーをアプリケーションにリダイレクトします。ドメインが localhost でない限り、URL は https:// で始まる必要があります。ドメインが localhost の場合は、http:// で始めることができます。ネイティブ アプリでは exampleapp:// のようなアプリケーションに特化したリンク形式も使用できます。
[追加] をクリックしてリダイレクト URL を許可リストに追加します。
-
クライアント タイプが Web またはシングル ページ アプリの場合は、1 つ以上の許可されたオリジンを指定します。アプリケーションへのアクセスは、その URL が許可されたオリジン リストに追加されている場合にのみ許可されます。
-
クライアント タイプが Web の場合、ユーザーの介入なしで自動システム アクセスを実行するために、 [マシンツーマシン (M2M) を許可] または [M2M ユーザーの成り代わりを許可] を有効にできます。M2M 成り代わりにより、認証中にアプリケーションがユーザーの代理を務めることが許可されます。
-
[作成] をクリックします。
-
[クリップボードにコピー] をクリックして、後で使用できるようにクライアント ID とクライアント シークレットを保存します。クライアント シークレットを安全な場所に保存します。[完了] をクリックします。
情報メモパブリック クライアントにはクライアント シークレットがありません。
Microsoft Excel 用 Qlik アドインの OAuth クライアントの作成
Microsoft Excel 用の Qlik アドインをインストールするには、OAuth クライアント構成が必要です。このアドインは、レポート開発者が、Qlik Sense アプリからの表形式レポートの出力を制御するレポート テンプレートを準備するために使用されます。
アドインで OAuth が機能するには、OAuth クライアントを以下に示すように正確に構成する必要があります。
次の手順を実行します。
-
Qlik Cloud の Administration アクティビティ センターで、OAuth に移動します。
-
[新規作成] をクリックします。
-
[クライアント タイプ] ドロップダウン メニューで、 [単一ページ アプリ] を選択します。その他の項目が表示されます。
-
[名前] を入力します。[説明] はオプションです。
-
少なくとも、user_default スコープを含めるチェックボックスをオンにします。構成に他のスコープを含めることはできますが、user_default がないとインストールは機能しません。
使用可能な各スコープの詳細については、「OAuth クライアントの作成」を参照してください。
-
[リダイレクト URL の追加] 項目に、テナントの URL を入力し、その後に固定文字列: /office-add-ins/oAuthLoginSuccess.html を入力します。
結果は次のようになります: https://YourServer/office-add-ins/oAuthLoginSuccess.html
-
[追加] をクリックします。
-
[許可されているオリジンの追加] 項目にテナント URL を入力し、 [追加] をクリックします。
-
[作成] をクリックします。
-
[クライアント ID をコピー] ウィンドウが表示されます。クライアント ID をクリップボードにコピーするか、 [完了] をクリックしてウィンドウを閉じます。
OAuth クライアントを作成した後、Administration アクティビティ センターから更新されたマニフェスト XML ファイルへのリンクを取得します。[設定] ページに移動し、Administration アクティビティ センター内の [共有とレポート] > [Excel アドイン] に移動します 。このリンクを使用して、アドインを展開およびインストールします。
マニフェスト ファイルの生成、およびアドインの展開とインストールの詳細については、次を参照してください。
アプリコンテンツの匿名埋め込み用の OAuth クライアントの作成
qlik-embed を使用して匿名アクセス用にアプリ コンテンツを埋め込むには、このユース ケース用に特別に設計されたタイプの OAuth クライアントを作成する必要があります。
次の手順を実行します。
-
Administrationアクティビティ センターで、 [OAth] セクションに移動します。
-
[新規作成] をクリックします。
-
[クライアント タイプ] ドロップダウン メニューで、 [匿名埋め込み] を選択します。
-
OAth クライアントの [名前] を入力し、必要に応じて [説明] を入力します。
-
[許可されているオリジン] に、承認が必要な各オリジンを入力します。これらは、埋め込み分析の情報を取得するために Qlik Cloud テナントにアクセスするドメインです。
各 URL を挿入した後、 [追加] をクリックします。
-
完了したら、 [作成] をクリックします。
-
[クリップボードにコピー] をクリックして、後で使用できるようにクライアント ID を保存します。アプリのコンテンツが qlik-embed に埋め込まれている場合に必要になります。
-
[完了] をクリックします。
OAuth クライアントの編集
OAuth クライアントの名前を変更したり、説明を更新したり、リダイレクト URL を管理したりできます。
次の手順を実行します。
- Administration アクティビティ センターで、 [OAuth] に移動します。
- 編集する OAuth クライアントを選択します。[...] をクリックし、[編集] を選択します。
- ダイアログで、必要に応じて OAuth クライアント オプションを変更します。
- [保存] をクリックします。
OAuth クライアントの公開
作成された OAuth クライアントは、それを作成したテナントに自動的にバインドされます。地域内の他のすべてのテナントが共有して利用できるように OAuth クライアントを構成できます。Qlik Cloud に接続するサードパーティ アプリケーションは、すべての Qlik Cloud テナントに対して同じクライアント ID を持つことができます。アプリケーションの所有者は、テナント管理者の介入なしに、シークレットをローテーションして構成を更新できます。テナント管理者は、資格情報を管理したり、構成の詳細について知ったりする必要はありません。
他のテナントが OAuth クライアントに接続できるようにするには、公開する必要があります。
次の手順を実行します。
- Administration アクティビティ センターで、 [OAuth] に移動します。
- 公開する OAuth クライアントを選択します。[...] をクリックし、[公開] を選択します。
- [公開] をクリックします。
ユーザーが Qlik OAuth を使用する外部ウェブ サイトに移動すると、テナントのホスト名の入力を求められ、その後、ユーザーが既にアクティブな SaaS セッションを持っていない限り、ユーザーの資格情報の入力も求められます。外部 OAuth クライアントで初めてログインするには、テナント管理者の同意が必要です。承認されると、新しい OAuth クライアントが Administration アクティビティ センターに表示されます。
同意方法
同意には、 [必須] と [信頼済み] の 2 つのオプションがあります。[必須] の場合、OAuth クライアントを使用した承認では、ユーザーに新しいスコープが要求されるたびに同意を求められます。[信頼済み] の場合、ユーザーにはプロンプトが表示されません。公開されていないクライアントに対しては [信頼済み] のみ使用できます。公開済みのクライアントの場合、同意方法は常に [必須] となります。
OAuth 構成の表示とコピー
Administration アクティビティ センターの [OAuth] セクションで、[OAuth 構成を確認する] を選択して、構成をコード スニペットとコピーする URL として表示します。
OAuth クライアントの削除
OAuth クライアントが不要になったとき、またはアクセスを無効化するときに、OAuth クライアントを削除できます。
次の手順を実行します。
-
Administration アクティビティ センターで、 [OAuth] に移動します。
-
削除する OAuth クライアントを選択し、[削除] をクリックします。
情報メモ一度に複数の OAuth クライアントを削除できます。 - OAuth クライアントを削除することを確認します。
クライアント シークレットの管理
例えば、クライアント シークレットが危険にさらされたり、セキュリティ ポリシーでクライアント シークレットを定期的に更新する必要がある場合は、クライアント シークレットを追加または削除する必要があります。複数のクライアント シークレットを追加して、アプリのダウンタイムを防ぐこともできます。例えば、2 番目のシークレットを作成し、クライアント アプリケーションに新しいシークレットを展開してから、古いシークレットを削除できます。
次の手順を実行します。
- Administration アクティビティ センターで、 [OAuth] に移動します。
- 管理する OAuth クライアントを選択します。[...] をクリックし、[シークレットの管理] を選択します。
- ダイアログで、次のいずれかを実行します。
- 新しいクライアント シークレットを追加するには、[新しいクライアント シークレットを生成する] をクリックします。
- クライアント シークレットを削除するには、クライアント シークレットの横にある をクリックします。
- [Close] (閉じる) をクリックします。
Qlik Cloud にアクセスするための OAuth クライアント アプリケーションの構築
OAuth クライアントを Qlik Cloud に登録した後、関連付けられたクライアント ID とクライアント シークレットを独自の OAuth クライアント アプリケーションで使用できます。チュートリアルは、[開発者ポータル] の [OAuth] セクションで利用でき、最も一般的なコーディング言語のいくつかを使用してクライアント アプリケーションを構築できます。