OAuth2アプリケーションの作成
認証に OAuth 2.0 を使用できるアプリケーションがある場合は、Liferay が認識できるようにそのアプリケーションを登録する必要があります。
-
グローバル メニュー (
) を開き、 コントロール パネル → セキュリティ → OAuth 2 管理に移動します。ここで、既存の OAuth 2 アプリケーションのリスト(存在する場合)を表示できます。
-
新規をクリックします。
-
フォームに記入してください(下記説明)。
-
[保存]をクリックしてアプリケーションを保存します。

これにより、アプリケーションが OAuth 2 アプリのリストに追加され、編集モードで開きます。 OAuth 2 管理ページに戻ると、保存したアプリが新しいエントリとして表示されます。 アプリを表示、編集、または削除するには、 アクション (
) をクリックします。
アプリに承認が付与されたら、 アクション (
) をクリックし、 承認の取り消しを選択することで、すべての承認を一度に取り消すこともできます。
次に、必要な情報を入力し、アプリケーションがアクセスできるデータの範囲を定義する必要があります。
OAuth2 管理リファレンス
名前: アプリケーションにわかりやすいタイトルを付けます。
ウェブサイトの URL: アプリケーションのウェブサイトへのリンクを追加します。
コールバック URI: ユーザーがアカウントへのアクセスを承認 (または承認を拒否) した後にリダイレクトする URI を少なくとも 1 つ (行区切り) 入力します。 これは、サポートしている許可された承認タイプのハンドラーにリンクする必要があります (以下を参照)。
プライバシー ポリシー URL: アプリケーションのプライバシー ポリシー ページへのリンクを入力します。
クライアント認証方法: なし、 クライアント シークレット Basic または Post、 クライアント シークレット JWT、および 秘密キー JWTから選択します。
JSON Web キー セット: 上記のドロップダウンでクライアント認証方法として 秘密キー JWT を選択する場合は、アプリケーションの公開 JWKS を貼り付ける必要があります。 他の認証方法を選択する場合は、これを空白のままにすることができます。
クライアント プロファイル: そのプロファイルに適した (安全な) 承認タイプをフィルターするテンプレートを選択します。 たとえば、アプリケーションがWebアプリケーションの場合、[Web Application]を選択すると、次の承認タイプが利用可能になり、自動的に選択されます:[Authorization Code]、[Client Credentials]、[Refresh Token]、および[Resource Owner Password Credentials]。 これらは、 OAuth2 RFC 6749 標準ドキュメントに記載されている OAuth 2「フロー」です。 承認タイプを手動で選択する場合は、[Other]を選択します。
許可される承認タイプ: アプリケーションがサポートする定義済みの OAuth 2 プロトコル フロー を選択します。 上記のさまざまなクライアント プロファイルでは、いくつかの一般的な組み合わせが定義されています。
クライアント認証ユーザー: クライアント認証情報の認証タイプに認証情報を使用する必要があるユーザーを選択します。 これは、クライアント資格情報の認証タイプにのみ適用されます。
信頼できるアプリケーション: 認証コード フローと PKCE 拡張認証コード フローの場合、このチェックボックスをオンにすると、ユーザーの許可を必要とせず、アクセス トークンに自動的に同意します。
デバイスを記憶する: 認証コード フローと PKCE 拡張認証コード フローの場合、このチェックボックスをオンにすると、アクセス トークンの有効期限が切れたときに、ユーザーが選択したデバイスで自動的にアクセスを許可できるようになります。
フォームを保存すると、追加のフィールドが表示されたフォームが再表示されます。
クライアントID:これはシステムによって生成されます。これはアプリケーションの識別子なので、DXPはユーザーデータへのアクセスを許可されているアプリケーションを認識します。
クライアントシークレット: 編集 → 新しいシークレットの生成 をクリックして、クライアントシークレットを生成します。 シークレットは、認証プロセス中にクライアントを識別します (上記の図 1 を参照)。 一部のクライアントプロファイルは秘密を保持できないため、すべてのクライアントプロファイルがクライアントシークレットを必要とするわけではありません。 このような場合に、前述の PKCE コード チャレンジと検証が必要になります。
アイコン: アプリケーションのユーザーがアプリケーションを識別できるアイコンをアップロードします。 認証画面に表示されます。
プライバシー ポリシー URL: アプリケーションのプライバシー ポリシーへのリンクを追加します。
トークン イントロスペクション:DXPからリクエストすることで、アプリケーションがトークンからメタデータを取得できるようにします。 これは RFC 7662を実装します。
スコープの設定
必要なアプリ情報を入力したら、アプリがアクセスできるデータの範囲を定義する必要があります。 これを設定するには、「スコープ」タブに移動します。
「スコープ」タブには、完全修飾名を使用して表される Liferay データの広範なリストが含まれています。 次の 3 種類のアクセスを定義できます。
- 既読
- 書き込み
- すべて
エンティティを選択し、スコープを決定するボックスをオンにして、 [保存]をクリックします。
権限
「承認」タブには、アプリに対して Liferay によって承認された承認のリストが含まれています。 [取り消し] をクリックして個々の承認を削除するか、OAuth 2 管理ページに戻ってアプリの [承認の取り消し] オプションを使用してすべての承認を削除できます。
リモートでクライアントIDを取得する
ライフレイ DXP 7.4 U55+/GA55+
Liferay は、外部参照コードを使用して OAuth 2 アプリケーションのクライアント ID を取得するためのエンドポイントを提供します。 UI から作成されたアプリケーションでは外部参照コードは表示されませんが、次の SQL コマンドを使用してデータベースから取得できます。 [YOUR_APP_NAME] を OAuth 2 アプリケーションの名前に置き換えます。
SELECT EXTERNALREFERENCECODE FROM OAUTH2APPLICATION WHERE NAME LIKE '[YOUR_APP_NAME]';
次に、次の cURL コマンドで外部参照コードを使用して、アプリのクライアント ID を取得します。
curl \
-G \
--data-raw 'externalReferenceCode=[OAUTH_APP_ERC]' \
http://{hostname}/o/oauth2/application
[OAUTH_APP_ERC] を OAuth 2 アプリケーションの外部参照コードに置き換えます。
API 経由で OAuth 2 アプリケーションを作成する場合は、使用する外部参照コードを指定できます。 たとえば、以前に userAccountScreenName が liferayであるユーザーを作成していた場合、 client-extension.yaml ファイルで ERC を宣言できます。
my-oauth-headless-server:
type: oAuthApplicationHeadlessServer
userAccountScreenName: liferay