Magento 2 Keycloakシングルサインオン(SSO) | Keycloak認証情報を使用したMagentoへのSSO
概要
キークローク Magento SSO KeycloakをOAuthおよびOpenID Connectプロバイダーとして使用することで、Magentoへの安全かつシームレスなログインが可能になります。Keycloak Magento SSOログインを使用すると、ユーザーはKeycloakのログイン認証情報を使用してストアにアクセスできます。つまり、この拡張機能を使用することで、KeycloakユーザーはKeycloakのログイン認証情報を使用してMagento 2ストアにログインできるようになります。
現場の声を力強いメッセージへ。 Magento 2 Keycloakログイン 拡張機能は、属性マッピング、ロールマッピング、アクセス制御といった高度な機能を備えた安全なシングルサインオン(SSO)統合を提供します。認証済みのユーザーのみがMagentoサイトにログインまたは登録できるようにすることで、サイトのセキュリティを強化します。Magento Keycloak SSOの簡単なセットアッププロセスにより、この拡張機能はユーザー認証を効率化し、全体的なアクセス管理を改善します。以下のガイドに従って、Keycloak Magento SSOを簡単にインストールして設定してください。
こちらをクリックしてください Magento OAuth シングル サインオン (OAuth および OpenID Connect クライアント) 拡張機能の追加機能の詳細については、こちらをご覧ください。
インストール手順
- コンポーザの使用
- 手動インストール
前提条件: ダウンロードとインストール
- まず第一に、 Keycloakをダウンロード し、それをインストールしてください。
- キークロークサーバーを起動します キークロークのバージョンに基づいて。 (下の表を参照)
| Keycloakバージョン16以下の場合 |
keycloakのルートディレクトリに移動します ビン スタンドアロン.sh |
| Keycloakバージョン17以降の場合 |
keycloakのルートディレクトリに移動します ビン kc.バット そして以下のコマンドを実行します。
|
構成手順
1. miniOrange SSO拡張機能を構成する
- miniOrange Magento SSO拡張機能で、「アプリケーション」タブに移動し、 OAuth/OpenIDをクリックして キークローク アプリケーション。
- コピー コールバックURL 拡張機能から取得します。これは キークローク 構成。
2. Magento Keycloak SSOログイン用のOAuthプロバイダーとしてKeycloakを設定する
Keycloakのバージョンを選択してください:
- レルムを追加します: 次に、Keycloak管理コンソールにログインし、希望するレルムに移動します。新しいレルムを追加するには、以下を選択します。 レルムの追加 オプションを選択します。
- レルムを作成します。 Enter レルム名 レルム名は後で設定するときに必要になるので、手元に置いてください。 レルム OAuthクライアントプラグインの下にある CREATE レルムを追加します。
- OpenID クライアントを作成します。 以下を行うには、 取引実績 選択して 作ります 新しいクライアントを作成します。 クライアント ID を入力し、クライアント プロトコルを選択します オープンエイド接続 をクリックして Save.
- アクセスタイプを変更します: クライアントが作成されたら、そのアクセス タイプを次のように変更します。 秘密の.
- 有効なリダイレクト URI を入力してください: Magento Keycloak SSO拡張機能からコールバックURLをコピーし、クリックします。
保存。 元 -- https://
/oauth/コールバック - クライアント シークレットを取得します。 次に、クライアント シークレットを取得する必要があります。 それで選択してください 取引実績 資格情報を選択し、ここからシークレットをコピーします。
- プラグイン構成: コピーしたものを入力してください クライアントシークレット 下 クライアントの秘密 OAuth クライアント プラグインのフィールドに、 クライアント名 [クライアント ID] フィールドの下にある
- ユーザーを追加する: レルムのリソースにアクセスできるユーザーをレルムに追加する必要があります。クリックしてください ユーザー そして選択する 新しいユーザーを追加します。
- ユーザー設定: ユーザーを作成したら、次のアクションを実行する必要があります。
- マップユーザー: ユーザーをロールにマップする必要があります。 クリック 役割のマッピング 利用可能な役割からユーザーに希望の役割を割り当て、 をクリックします。 選択したものを追加します。
- ロールを作成します。 ロールは、アプリケーションへのアクセスを許可するユーザーを定義するためにアプリケーションによって使用されます。 役割 そして「追加」を選択します 職種.
- グループを作成します。 以下を行うには、 グループ 選択して New 新しいグループを作成します。
- ユーザーをグループに割り当てます: グループに追加したいユーザーを選択します。タブからグループオプションを選択し、グループ名を選択してクリックします。 join.
- Keycloakグループマッパー: ここで、グループの詳細を取得するには、グループ メンバーシップを使用してクライアント マッピングを実行する必要があります。そうしないと、グループの詳細が取得されません。それで クライアントセクションをクリックし、クライアントを選択して、 マッパー->作成.
- 今、選択 マッパータイプ as グループメンバーシップ そして、入力します。 名前とトークンクレーム名 つまり、取得するグループに対応する属性名です。完全なグループパス、IDトークンに追加、アクセストークンに追加のオプションをオフにして、 Save.
- Keycloakロールマッパー: ロールの詳細を取得するには、ロールのメンバーシップを使用してクライアントのマッピングを実行する必要があります。そうしないと、ロールの詳細が取得されません。 クライアントセクションをクリックし、クライアントを選択して、 マッパー->作成.
- 今、選択 マッパータイプ as ユーザーレルムの役割 メンバーシップを入力して、 名。 そして トークンクレーム名 つまり、取得するグループに対応する属性名です。IDトークンに追加とアクセストークンに追加のオプションを選択し、 Save.
- レルムを追加します: 次に、Keycloak管理コンソールにログインし、希望するレルムに移動します。新しいレルムを追加するには、以下を選択します。 レルムの作成 オプションを選択します。
- レルムを作成します。 Enter レルム名 レルム名は後で設定するときに必要になるので、手元に置いてください。 レルム OAuthクライアントプラグインの下にある CREATE レルムを追加します。
- OpenID クライアントを作成します。 以下を行うには、 取引実績 選択して クライアントの作成 新しいクライアントを作成します。 クライアント ID を入力し、クライアント プロトコルを選択します オープンエイド接続 とクリック 次へ.
- 有効にします クライアント認証 (NAIST) と Authorization トグル。
- 下にスクロールして アクセス設定 そしてあなたの コールバック/リダイレクト URL Magento Keycloak SSO拡張機能から取得できます。 コールバック URL テキストフィールド。
- に行きます Credentials タブ、コピー クライアントシークレット 後で Magento Keycloak SSO 拡張機能を構成するときに必要になるので、手元に置いておいてください。
- プラグイン構成: コピーしたものを入力してください クライアントシークレット 下 クライアントの秘密 OAuthクライアントプラグインのフィールドに 顧客ID 下 顧客ID フィールド。
- ユーザーを追加する: レルムのリソースにアクセスできるユーザーをレルムに追加する必要があります。 ユーザー をクリックします 新しいユーザーを作成する 新しいユーザーを追加します。
- ユーザー設定: ユーザーを作成したら、次のアクションを実行する必要があります。
- マップユーザー: ユーザーをロールにマップする必要があります。 クリック 役割のマッピング 利用可能なロールからユーザーの希望のロールを割り当てます。
- ロールを作成します。 ロールは、アプリケーションへのアクセスを許可するユーザーを定義するためにアプリケーションによって使用されます。 役割 選択して ロールを作成.
- レルムを追加します: 次に、Keycloak管理コンソールにログインし、希望するレルムに移動します。新しいレルムを追加するには、以下を選択します。 レルムの作成 オプションを選択します。
- レルムを作成します。 Enter レルム名 レルム名は後で設定するときに必要になるので、手元に置いてください。 レルム OAuthクライアントプラグインの下にある CREATE レルムを追加します。
- OpenID クライアントを作成します。 以下を行うには、 取引実績 選択して クライアントの作成 新しいクライアントを作成します。 クライアント ID を入力し、クライアント プロトコルを選択します オープンエイド接続 とクリック 次へ.
- 有効にします クライアント認証 (NAIST) と Authorization トグル。
- 下にスクロールして アクセス設定 そしてあなたの コールバック/リダイレクト URL Magento Keycloak SSO拡張機能から取得できます コールバック URL テキストフィールド。
- に行きます Credentials タブ、コピー クライアントシークレット Magento Keycloak SSO 拡張機能を構成するときに後で必要になるので、手元に置いておいてください。
- プラグイン構成: コピーしたものを入力してください クライアントシークレット 下 クライアントの秘密 OAuthクライアントプラグインのフィールドに 顧客ID 下 顧客ID フィールド。
- ユーザーを追加する: レルムのリソースにアクセスできるユーザーをレルムに追加する必要があります。 ユーザー をクリックします 新しいユーザーを作成する 新しいユーザーを追加します。
- ユーザー設定: ユーザーを作成したら、次のアクションを実行する必要があります。
- マップユーザー: ユーザーをロールにマップする必要があります。 クリック 役割のマッピング 利用可能なロールからユーザーの希望のロールを割り当てます。
- ここで、 OAuthプロバイダー名, 顧客ID, クライアントシークレット, 対象領域 そしてエンドポイントを提供しました。
- 設定については、以下の表を参照してください。 スコープとエンドポイント 拡張機能の Keycloak バージョン 18 以上用。
- 設定については、以下の表を参照してください。 拡張機能におけるKeycloakバージョン17以下のスコープとエンドポイント .
- 以下を行うには、 Save ボタンを押して設定を保存します。
- 以下を行うには、 テスト構成
- OAuthプロバイダーからMagentoに返されるすべての値が表に表示されます。名、姓、メールアドレス、ユーザー名の値が表示されない場合は、OAuthプロバイダーでこれらの情報を返すための必要な設定を行ってください。
- Keycloakアプリケーションを見つけてクリックします 編集 に選出しました。 アクションメニュー.
- ソフトウェアの制限をクリック ストア構成 左側のメニュー.
- ストア構成、SSO を有効にする Web サイトを選択し、[このサイトで SSO を有効にする] オプションをオンにします。
- ログインページに SSO ボタンを表示する: 選択した Web サイトの顧客ログイン ページに SSO ボタンを表示します。
- ユーザーの自動作成: SSOプロセス中に顧客ユーザーがまだ存在しない場合、自動的に作成するオプションがあります。対応するチェックボックスをオンにすると、この機能が有効になります。
- 自動リダイレクト機能: Magento ログイン ページまたは Web サイトの任意のページから、ユーザーを OAuth プロバイダー ログイン ページに自動的にリダイレクトします。
- 顧客ログインページにアクセスすると、フロントエンドにSSOボタンが表示されます。ボタンをクリックしてSSOをテストしてください。
- Magento に正常にログインします。
- 管理者の SSO を有効にする: 管理者ログイン ページに SSO ボタンを表示します。
- 管理者 SSO ボタンのテキスト: 管理者ログイン ページの SSO ボタンに表示されるラベルを設定します (例: Keycloak 経由でのログイン)。
- 管理者ユーザーを自動作成: SSO 経由で初めてログインすると、Magento に管理者ユーザーが自動的に作成されます。
- 管理者からの自動リダイレクト: 管理者ユーザーを管理者ログイン ページから OAuth プロバイダー ログイン ページに自動的にリダイレクトします。
- バックドアURL: バックドア URL を使用すると、ロックアウトされた場合でも、デフォルトの管理者資格情報を使用して管理ダッシュボードにログインできます。
- 管理者ログインページにアクセスすると、SSOボタンが表示されます。このボタンをクリックすると、管理者としてSSOが開始されます。
- 管理者として Magento に正常にログインすると、Magento バックエンド ダッシュボードにリダイレクトされます。
- 顧客向けに有効化: このオプションを使用すると、顧客に対してヘッドレス SSO を有効にすることができます。
-
顧客 SSO URL: このURLは、ヘッドレスアプリケーションから顧客のSSOを開始するために使用されます。このSSO URLをヘッドレスアプリケーションに追加してください。
- フォーマットの例:
https://<your-magento-domain>/mosso/actions/SendSSORequest?relayState={Store_URL}/headless_store_url/{Headless_URL}&app_name=Keycloak AD - {ストアURL}: Magento ストアの URL を入力します。
- {ヘッドレスURL}: 顧客トークンを送信するヘッドレス アプリケーションの URL を入力します。
- SSO が成功すると、顧客トークンがヘッドレス URL に送信されます。
具体的な例を挙げますと、以下の通りです。{Headless_URL}?customer_token=...
- フォーマットの例:
- OAuthトークン:このオプションを有効にすると、OAuth プロバイダー (Keycloak) の JWT トークンが顧客トークンとともに送信されます。
- 顧客トークンの有効期限: 顧客トークンの有効期限(分単位)を設定できます。
- フロントエンド URL をホワイトリストに追加: ここでは、顧客トークンの受信を許可するURLを追加できます。顧客トークンは、ここでホワイトリストに登録されたURLにのみ送信されます。
- 管理者向けに有効化: 顧客と同様に、このオプションは管理者に対してヘッドレス SSO を有効にします。
- 管理者 SSO URL: この URL は、ヘッドレス アプリケーションから管理者 SSO を開始します。
- 管理者トークンの有効期限: 管理者トークンの有効期限(分単位)を設定します。
- フロントエンド URL をホワイトリストに追加: 管理者トークンは、ここでホワイトリストに登録されたURLにのみ送信されます。管理者トークンを受信するURLがリストに登録されていることを確認してください。
- に行きます 属性マッピング 顧客属性マッピングを構成するセクション。
- 有効にする 顧客属性マッピング をクリックして チェックボックス するオプション 顧客属性の更新.
- 次のようなフィールドが表示されます メールアドレス, 名, 苗字 顧客属性マッピングの下。
- ドロップダウンから適切なオプションを選択して、これらのフィールドをマップします。
- さらに属性を追加する必要がある場合は、 + 顧客属性を追加する ボタンをクリックし、適切な属性を選択します。 落ちる.
- 顧客属性 セクションで、アドレス属性マッピングを有効にし、 チェックボックス 更新する 顧客住所属性.
- 次のようなフィールドが表示されます。 ご住所, 郵便番号, 都市, 州/地域、その他 顧客住所マッピング.
- ドロップダウンから適切なオプションを選択して、これらのフィールドをマップします。
- 追加の住所属性を追加する必要がある場合は、 + 住所属性を追加 ボタンをクリックし、ドロップダウンから適切な属性を選択します。
- 管理者属性マッピング セクション、有効にする 管理者属性マッピング 選択 チェックボックス 更新する 管理者属性.
- 次のようなフィールドが表示されます メールアドレス, 名, 苗字 管理属性マッピングの下。
- ドロップダウンから適切なオプションを選択して、これらのフィールドをマップします。
- さらに属性を追加する必要がある場合は、 + 管理者属性を追加 ボタンをクリックし、適切な属性を選択します。 落ちる.
- Magentoは「ロール」という概念を採用しており、サイト所有者がサイト内でユーザーが実行できる操作と実行できない操作を制御できるように設計されています。ロールマッピングは、OAuthプロバイダー内の特定のグループのユーザーに特定のロールを割り当てるのに役立ちます。
- ドロップダウンから、管理者ユーザーと顧客ユーザーの両方のグループ/ロール情報が含まれている ID プロバイダーの属性を選択します。
- 顧客グループ マッピング設定では、ストア管理者は、シングル サインオン (SSO) 中にアイデンティティ プロバイダー (IdP) から受信したグループ情報に基づいて、どの Magento 顧客グループを割り当てるかを定義できます。
- ユーザーが SSO 経由でログインするたびに Magento が顧客グループを更新するようにするには、「SSO でフロントエンド グループを更新する」チェックボックスを有効にします。
- デフォルト グループ ドロップダウンを使用して、アイデンティティ プロバイダーからグループ情報が返されない場合、または受信したグループが構成されたマッピングと一致しない場合に、ユーザーに割り当てる Magento グループを選択します。
- 必要に応じて、対応する Magento 顧客グループに対して ID プロバイダー グループの値を入力します。
- アイデンティティ プロバイダー内の特定のグループに属するユーザーには、SSO 中にマップされた Magento グループが自動的に割り当てられます。
- 例: アイデンティティ プロバイダーからのグループ値が Magento の一般グループにマップされている場合、IdP でそのグループに属するすべてのユーザーには SSO 時に一般顧客グループが割り当てられます。
- ユーザーが SSO 経由でログインするたびに Magento が管理者ロールを更新するようにしたい場合は、「SSO でバックエンド ロールを更新する」チェックボックスを有効にします。
- デフォルト グループ ドロップダウンを使用して、アイデンティティ プロバイダーによってグループ情報が返されない場合、または受信したグループが構成されたマッピングと一致しない場合にユーザーに割り当てる Magento ロールを選択します。
- 必要に応じて、対応する Magento 管理者ロールに対して ID プロバイダー グループの値を入力します。
- アイデンティティ プロバイダー内の特定のグループに属するユーザーには、SSO 中にマップされた Magento グループが自動的に割り当てられます。
- 例: アイデンティティ プロバイダーからのグループ値が Magento の一般グループにマップされている場合、IdP でそのグループに属するすべてのユーザーには SSO 時に一般管理者ロールが割り当てられます。
- Magento セキュリティ ソリューション
- シングル サインオン (SSO) ログインとは何ですか?
- Okta の OAuth 2.0 および OpenID Connect に関する開発者向けドキュメント
- Magento OAuth シングル サインオン (SSO) プラグイン。
- 1) パスワードを設定するので、 をクリックします。 Credentials
ユーザーの新しいパスワードを設定します。
注意: 一時的を無効にすると、ユーザー パスワードは永続的になります。
ステップ 1.1: Keycloak グループを取得する手順 【プレミアム】
注: -- フルパスがグループ上にある場合は、グループパスがフェッチされ、それ以外の場合はグループ名がフェッチされます。
ステップ 1.2: Keycloak ロールを取得する手順 【プレミアム】
- 1) パスワードを設定するので、 をクリックします。 Credentials
ユーザーの新しいパスワードを設定します。
注意: 一時的を無効にすると、ユーザー パスワードは永続的になります。
- 1) パスワードを設定するので、 をクリックします。 Credentials
ユーザーの新しいパスワードを設定します。
注意: 一時的を無効にすると、ユーザー パスワードは永続的になります。
結論として、正常に設定することで、 OAuthプロバイダーとしてのKeycloak、Magento Keycloak SSO ログインとエンドユーザーの Magento への認証が有効になりました。
3. MagentoをOAuthクライアントとして設定する
| 範囲: | 電子メール プロファイル openid |
| エンドポイントを承認します: | /realms/{レルム名}/プロトコル/openid-connect/auth |
| アクセストークンエンドポイント: | /realms/{レルム名}/プロトコル/openid-connect/token |
| ユーザー情報の取得エンドポイント: | /realms/{レルム名}/protocol/openid-connect/userinfo |
| ログアウト後のカスタム リダイレクト URL:[オプション] | https://{キークロークドメイン}/レルム/{レルム名}/protocol/openid-connect/logout?post_logout_redirect_uri={リダイレクトURI}&id_token_hint=##id_token## |
| 範囲: | 電子メール プロファイル openid |
| エンドポイントを承認します: | /auth/realms/{レルム名}/プロトコル/openid-connect/auth |
| アクセストークンエンドポイント: | /auth/realms/{レルム名}/プロトコル/openid-connect/token |
| ユーザー情報の取得エンドポイント: | /auth/realms/{レルム名}/protocol/openid-connect/userinfo |
| ログアウト後のカスタム リダイレクト URL:[オプション] | /auth/realms/{レルム名}/protocol/openid-connect/logout?redirect_uri=リダイレクトUri |
注意: 拡張機能のエンタープライズ版では、複数のプロバイダーを設定できます。別のプロバイダーを設定するには、「プロバイダーを追加」ボタンをクリックして、必要なプロバイダーを設定してください。すべてのプロバイダーの設定ガイドは、以下からご覧いただけます。 こちら.
4. マルチサイト設定(*エンタープライズ版で利用可能)
ログイン設定
5. 管理者SSO
6. ヘッドレスSSO設定(*プレミアムバージョンで利用可能)
7. 属性/カスタムマッピング(オプション)。*これはプレミアム機能です。
顧客属性マッピング

顧客住所マッピング
管理者属性マッピング
8. グループ/ロールマッピング(オプション)。*これはプレミアム機能です。
顧客グループマッピング
管理者ロールのマッピング
その他のリソース
Get in Touch
までご連絡ください magentosupport@xecurify.comにご連絡いただければ、Magento 2 SSO(OAuth/OIDC)拡張機能の設定を弊社チームがサポートいたします。お客様のご要望に応じて、最適なソリューション/プランの選定をお手伝いいたします。
