Azure AD B2C を使用した Joomla への SAML シングル サインオン
概要
miniOrange Joomla SAML SP SSO プラグインは、SAML 2 プロトコルを使用して Joomla サイトを Azure AD B2.0C に統合するのに役立ちます。miniOrange Joomla SAML SP シングル サインオン (SSO) プラグインを使用すると、Azure AD B2C SSO を Joomla に簡単にセットアップし、Joomla への安全なログインを有効にすることができます。その結果、ユーザーは Azure AD B2C IDP 資格情報で認証した後、XNUMX 回のログインで複数の Joomla アプリケーションにアクセスできるようになります。
当社のプラグインは、すべての SAML 3 準拠の ID プロバイダーを備えた Joomla 4 および Joomla 2.0 と互換性があります。ここでは、Azure AD B2C を IDP (ID プロバイダー)、Joomla を SP (サービス プロバイダー) として考え、Joomla サイトと Azure AD B2C 間の SAML SSO ログインを構成するための手順ガイドを説明します。
構成手順
この設定では、 Azure AD B2C ユーザーを保存するためのリポジトリとして機能します。つまり、IDPとして機能します。 Joomlaの ユーザーはAzure AD B2Cの資格情報を使用してログインします。 Joomla SAML SP SSO プラグイン インストールされます。
ステップ1: Joomla SAML SPプラグインをインストールする
- Joomla サイトにログインします。 管理者 コンソール。
- 左側のトグルメニューから、 をクリックします システムをクリックし、「インストール」セクションで「」をクリックします。 拡張機能.
- 今後はクリック またはファイルを参照します ボタンをクリックして、前にダウンロードしたプラグイン ファイルを見つけてインストールします。

- プラグインのインストールは成功しました。 今すぐクリックしてください はじめよう!

- に行きます サービスプロバイダーのメタデータ タブでは、 メタデータURL、ダウンロード メタデータ XML ファイルまたは、 エンティティID と ACS URL 直接。

ステップ 2: Azure AD B2C を IDP (アイデンティティ プロバイダー) として構成する
- あなたへのログイン Azure AD B2C 管理者ダッシュボード。
- Azure AD B2C テナントから、 アプリの登録、次に選択 新規登録.

- お名前、 入る アイデンティティ体験フレームワーク.
- サポートされているアカウントタイプ選択 この組織ディレクトリ内のアカウントのみ.

- URIをリダイレクトするをクリックし、[Web] を選択して、https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com と入力します。ここで、your-tenant-name は Azure AD B2C テナント ドメイン名です。
注: 次のステップで、 「権限」 セクションが表示されない場合は、そのテナントにアクティブなAzureAD B2Cサブスクリプションがないことが原因である可能性があります。AzureAD B2Cサブスクリプションに関する詳細は、 以下の手順に従って新しいテナントを作成できます こちら.
- 権限で、「openid および offline_access 権限に管理者の同意を与える」チェックボックスをオンにします。
- 選択する 登録する.

- 記録する アプリケーション(クライアント)ID 後のステップで使用します。

Identity Experience Framework アプリケーションを登録します。
- 管理 選択 APIを公開する.
- 選択する スコープを追加するをクリックし、「保存」を選択してデフォルトのアプリケーション ID URI を受け入れ続けます。

- 次の値を入力して、Azure AD B2C テナントでカスタム ポリシーの実行を許可するスコープを作成します。
- スコープ名: ユーザー偽装
- 管理者の同意表示名: IdentityExperienceFramework にアクセスする
- 管理者の同意の説明: サインインしたユーザーに代わってアプリケーションが IdentityExperienceFramework にアクセスできるようにします。
- 選択する スコープを追加.

ProxyIdentityExperienceFramework アプリケーションを登録します。
- 選択する アプリの登録、次に選択 新規登録.
- お名前、 入る ProxyIdentityExperienceFramework.
- サポートされているアカウントタイプ選択 この組織ディレクトリ内のアカウントのみ.

- URIをリダイレクトする、ドロップダウンを使用して選択します パブリック クライアント/ネイティブ (モバイルとデスクトップ).
- URIをリダイレクトする、「myapp://auth」と入力します。
- 権限で、「openid および offline_access 権限に管理者の同意を与える」チェックボックスをオンにします。
- 選択する 登録する.

- 記録する アプリケーション(クライアント)ID 後のステップで使用します。

次に、アプリケーションをパブリック クライアントとして扱うように指定します。
- 管理 選択 認証.
- 詳細設定、イネーブル パブリッククライアントフローを許可する(はいを選択).
- 選択する 投稿.

ここで、IdentityExperienceFramework 登録で先ほど公開した API スコープにアクセス許可を付与します。
- 管理 選択 API権限.
- 設定された権限選択 権限を追加する.

- 現在地に最も近い 私のAPI タブ、次に選択 アイデンティティ体験フレームワーク アプリケーション。

- 許可、選択 ユーザー偽装 先ほど定義したスコープ。
- 選択する 権限を追加。 指示に従って、次のステップに進む前に数分間待ちます。

- 選択する (テナント名) に管理者の同意を与える.

- 現在サインインしている管理者アカウントを選択するか、少なくともクラウド アプリケーション管理者ロールが割り当てられている Azure AD B2C テナントのアカウントでサインインします。
- 選択する はい.
- 選択する Refreshをクリックし、「Granted for ...」が下に表示されていることを確認します。 状況 スコープ - offline_access、openid、user_impersonation。権限が伝播するまでに数分かかる場合があります。

Joomla アプリケーションを登録します。
- 選択する アプリの登録、次に選択 新規登録.
- アプリケーションの名前を入力します(例: Joomla)。
- サポートされているアカウントタイプ選択 あらゆる組織ディレクトリまたはあらゆるIDプロバイダのアカウントAzure AD B2C を使用してユーザーを認証します。

- URIをリダイレクトするをクリックし、[Web] を選択して、ACS URL を入力します。 サービスプロバイダーメタデータタブ miniOrange SAML プラグインの。
- 選択する 登録する.

- 管理 APIを公開する.
- ソフトウェアの制限をクリック 作成セッションプロセスで アプリケーション ID URI を入力し、 投稿デフォルト値を受け入れます。

- 保存したら、アプリケーション ID URI をコピーし、 サービスプロバイダーの「メタデータ」タブ プラグインの。

- コピーした値を SPエンティティID / 発行者 このタブにあるフィールド。
- ソフトウェアの制限をクリック 投稿.
SSO ポリシーの生成:
- Azure B2C ポータルから、B2C テナントの [概要] セクションに移動し、テナント名を記録します。 注: B2C ドメインが b2ctest.onmicrosoft.com の場合、テナント名は b2ctest です。

- あなたの〜を入力してください Azure B2C テナント名 こちら上記の手順で登録した IdentityExperienceFramework アプリと ProxyIdentityExperienceFramework アプリのアプリケーション ID も含めます。
- 次にをクリックしてください Azure B2C ポリシーの生成 ボタンをクリックして SSO ポリシーをダウンロードします。
- ダウンロードした zip ファイルを解凍します。このファイルには、次の手順で必要となるポリシー ファイルと証明書 (.pfx) が含まれています。
証明書のセットアップ:
注: 次の手順で「Identity Experience Framework」がクリックできない場合は、そのテナントにアクティブなAzure AD B2Cサブスクリプションがないことが原因である可能性があります。Azure AD B2Cサブスクリプションに関する詳細は、 こちら 以下の手順に従って新しいテナントを作成できます こちら.
- にサインインする Azureのポータル そしてあなたの Azure AD B2C テナント.

- 政策選択 アイデンティティ エクスペリエンス フレームワーク その後 ポリシーキー.

- 選択する Add、次に選択 [オプション] > [アップロード].
- 名前に「SamlIdpCert」と入力します。 プレフィックス B2C_1A_ がキーの名前に自動的に追加されます。

- アップロード ファイル コントロールを使用して、上記の手順で生成された証明書と SSO ポリシー (tenantname-cert.pfx) をアップロードします。
- 証明書のパスワードをテナント名として入力し、[作成] をクリックします。たとえば、テナント名が xyzb2c.onmicrosoft.com の場合、パスワードを xyzb2c として入力します。
- B2C_1A_SamlIdpCert という名前の新しいポリシー キーが表示されるはずです。
- Azure AD B2C テナントの概要ページの [ポリシー] で、[Identity Experience Framework] を選択します。
- 選択する ポリシーキー 次に選択します Add.
- オプション、「生成」を選択します。
- In お名前、「TokenSigningKeyContainer」と入力します。
- キータイプ、「RSA」を選択します。
- 主な使用法、「署名」を選択します。

- 選択する 創造する.
- Azure AD B2C テナントの概要ページで、 政策選択 アイデンティティエクスペリエンスフレームワーク.
- オプション、「生成」を選択します。
- In お名前、「TokenEncryptionKeyContainer」と入力します。
- キータイプ、「RSA」を選択します。
- 主な使用法、「暗号化」を選択します。

- 選択する 創造する.
ポリシーをアップロードします:
- 現在地に最も近い アイデンティティ エクスペリエンス フレームワーク Azure portal の B2C テナントのメニュー項目。

- 選択する カスタムポリシーをアップロードする.

- 以下の順序に従って、上記の手順でダウンロードしたポリシー ファイルをアップロードします。
- TrustFrameworkBase.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- プロファイル編集.xml
- パスワードリセット.xml
- SignUpOrSigninSAML.xml
- ファイルをアップロードすると、Azure によって各ファイルにプレフィックス B2C_1A_ が追加されます。
ステップ3: JoomlaをSP(サービスプロバイダー)として設定する
Joomla SAML プラグインで、[サービス プロバイダーのセットアップ] タブに移動します。プラグインを設定するには 3 つの方法があります。
A. IDP メタデータをアップロードすることにより、次のようになります。
- Joomla SAML プラグインで、次の場所に移動します。 サービスプロバイダーのセットアップ タブをクリックしてから IdPメタデータをアップロード.

B. メタデータ URL による:
- 入力します メタデータURL (IDP アプリからコピー) をクリックして、 フェッチ

C. 手動設定:
- コピー SAML エンティティ ID、SAML シングル サインオン エンドポイント URL、および X.509 証明書 フェデレーションメタデータドキュメントからコピーして貼り付けます IDP エンティティ ID または発行者、シングル サインオン URL、X.509 証明書 プラグイン内のそれぞれのフィールド。
IdP エンティティ ID または発行者 | フェデレーション メタデータ ドキュメントの SAML エンティティ ID |
シングルサインオンURL | フェデレーション メタデータ ドキュメントの SAML シングル サインオン エンドポイント URL |
X.509 証明書の値 | フェデレーション メタデータ ドキュメント内の X.509 証明書 |

ステップ4: 属性マッピング - プレミアム機能
- 属性は、アイデンティティ プロバイダーに保存されるユーザーの詳細です。
- 属性マッピングは、アイデンティティ プロバイダー (IDP) からユーザー属性を取得し、それらを名、姓、住所、電話などの Joomla ユーザー属性にマッピングするのに役立ちます。
- Joomla サイトにユーザーを自動登録する際、これらの属性は Joomla ユーザーの詳細に自動的にマッピングされます。
- 「属性マッピング」タブに移動し、すべてのフィールドに入力します。
ユーザー名: | IdP からのユーザー名属性の名前 (デフォルトでは NameID を保持します) |
Email: | IdP からの電子メール属性の名前 (デフォルトでは NameID を保持します) |
名前: | IdP からの name 属性の名前 |

- ここでどの値をマップするかをより正確に把握するには、[サービス プロバイダーの設定] タブの [テスト構成結果] を確認します。
注: 属性マッピングの仕組みを確認するには こちら.
ステップ 5: グループ マッピング - プレミアム機能
- グループ/ロール マッピングは、アイデンティティ プロバイダー (IdP) 内の特定のグループのユーザーに特定のロールを割り当てるのに役立ちます。
- 自動登録中、ユーザーにはマップ先のグループに基づいてロールが割り当てられます。

- グループ/ロール マッピングは、アイデンティティ プロバイダー (IdP) 内の特定のグループのユーザーに特定のロールを割り当てるのに役立ちます。
- 自動登録中、ユーザーにはマップ先のグループに基づいてロールが割り当てられます。
注: グループ/ロールマッピングの仕組みを確認するには こちら.
ステップ 6: リダイレクトと SSO リンク
- [ログイン設定] タブに移動します。以下の手順に従って、Joomla サイトで SAML SSO を実行するためのログイン URL を追加できます。
- このタブでは、ユーザーをアイデンティティ プロバイダーに自動的にリダイレクトしたり、スーパー ユーザーのバックエンド ログインを有効にするなど、複数の機能が利用できます。これらの機能を使用するには、それぞれのチェックボックスをクリックします。

- 機能とさまざまなライセンス プランの完全なリストを確認するには、[アップグレード] タブをクリックします。または、ここをクリックして機能とライセンス プランを確認することもできます。
- 何か問題が発生した場合やご質問がある場合は、プラグインのサポートボタンからお問い合わせいただくか、以下のメールアドレスまでご連絡ください。 joomlasupport@xecurify.com.
よくある質問
その他のよくある質問➔テスト構成は成功しましたが、ログインしようとするとリダイレクト ループに陥ってしまいます。
これが起こる理由はいくつかあります。
1. Web サイトでキャッシュが有効になっています。
自動リダイレクトが有効になっている場合、ユーザーは IDP ログイン ページにリダイレクトされ、ログイン後にメイン サイトに再度戻りますが、キャッシュが有効になっているため、IDP ログイン ページにリダイレクトされ、ループが発生します。
2. HTTP/HTTPS の不一致:
これは、サイトで HTTPS が強制されていないが、IDP 側で HTTPS URL が設定されている場合に発生します。これは、.htaccess ファイルまたは Apache レベルでリダイレクト ルールを定義して、サイトで HTTPS を強制することで解決できます。
3. クッキーの混入:
ユーザーのログイン後にプラグインによって作成された Cookie が別のプラグインによって変更され、ユーザーは Joomla サイトにログインできなくなりますが、セッションは IDP 上に作成されます。
「テスト構成」をクリックすると、IDP ではなく Joomla サイトにリダイレクトされるのはなぜですか?
Joomla SAML プラグインでは、プラグインをインストールした後に拡張機能が有効になっていないと、「構成のテスト」をクリックすると、IDP にリダイレクトされるのではなく、自分のサイトに移動します。これを解決するには、プラグインをインストールした後に、プラグインのすべての拡張機能を有効にする必要があります。
この問題を解決するには、以下の手順に従ってください。
1. Joomla 管理インターフェースで、「拡張機能」->「管理」->「管理」に移動します。
2. 「miniorange」を検索します。
3. プラグインのすべての拡張機能を有効にします。
アイデンティティ プロバイダーにログインし、Joomla サイトにリダイレクトされましたが、ログインしていません。
頻繁に発生する可能性のあるエラーをいくつか示します。
INVALID_ISSUER: これは、ID プロバイダーによって提供された正しい発行者またはエンティティ ID 値を入力していないことを意味します。エラー メッセージには、予期された値 (構成した値) と SAML レスポンスで実際に見つかった値が表示されます。
INVALID_AUDIENCE: これは、アイデンティティ プロバイダーでオーディエンス URL が正しく設定されていないことを意味します。アイデンティティ プロバイダーで https://base-url-of-your-joomla-site/plugins/authentication/miniorangesaml/ に設定する必要があります。
INVALID_DESTINATION: これは、アイデンティティ プロバイダーで宛先 URL が正しく設定されていないことを意味します。アイデンティティ プロバイダーで https://base-url-of-your-joomla-site/plugins/authentication/miniorangesaml/saml2/acs.php に設定する必要があります。
INVALID_SIGNATURE: これは、提供した証明書が SAML レスポンスで見つかった証明書と一致しなかったことを意味します。IdP からダウンロードした証明書と同じ証明書を提供していることを確認してください。IdP のメタデータ XML ファイルがある場合は、属性 use=' signing' を持つ X509 証明書タグで囲まれた証明書を提供していることを確認してください。
INVALID_CERTIFICATE: これは、提供した証明書の形式が正しくないことを意味します。IdP から提供された証明書全体をコピーしたことを確認してください。IdP のメタデータ XML ファイルからコピーした場合は、値全体をコピーしたことを確認してください。
設定されたフィンガープリントに一致する証明書が見つかりません。
これは、SAML レスポンスで受信した証明書がプラグインで構成された証明書と一致しない場合にのみ可能です。テスト構成ウィンドウに表示される証明書の値をコピーし、プラグインのサービス プロバイダー タブの X.509 証明書フィールドに貼り付けます。
Joomla SAML で設定をエクスポートするにはどうすればいいですか?
エクスポート設定を行うには、次の手順に従ってください。
1) miniOrange SAML SP プラグインに移動し、「サービス プロバイダーの設定」タブに移動します。
2) 次に、ページの下部にある「インポート/エクスポート」ボタンをクリックし、「構成のエクスポート」ボタンをクリックします。
3) 「システム」>>「管理」に移動し、検索バーで miniOrange を検索します。次に、すべての miniOrange 拡張機能をアンインストールします。
構成をインポートするには、次の手順に従ってください。
1) 最新のプラグインをインストールし、プラグインで miniOrange の資格情報を使用してログインします。
2) 「サービスプロバイダーの設定」タブに移動し、「インポート/エクスポート」ボタンをクリックします。
3) ダウンロードした構成ファイルをアップロードし、「構成のインポート」ボタンをクリックします。
Joomla SAML プラグインを更新中にテーブルが見つからないというエラーが発生するのはなぜですか?
Joomla SAML プラグインの更新中に、テーブルまたは列がデータベースに追加されていない場合は、テーブルが見つからないというエラーが発生します。この問題は通常、プラグインの更新中にテーブルまたは列がデータベースに追加されていない場合に発生します。
この問題を解決するには、プラグインを再インストールできます。次の手順に従ってください。
既存のプラグインをアンインストールします(プラグインをアンインストールする前に、既存のプラグインのバックアップを取ってください)
– 拡張機能 -> 管理 -> 管理に移動します
– miniOrangeを検索
– すべての拡張機能を選択し、「アンインストール」をクリックします。
次に、プラグインを再度インストールして設定します。
致命的なエラー「名前がすでに使用されているため、クラスを宣言できません」を解決するにはどうすればよいでしょうか?
Joomla サイトは、関連する SP または IDP プラグインを使用して、サービス プロバイダーまたはアイデンティティ プロバイダーとして使用できます。このエラーが発生するのは、おそらく両方のプラグインを同じサイトにインストールしたためです。
この問題を解決するには、以下の手順に従ってください: Joomla ディレクトリから次のフォルダを削除します:
1. /libraries/miniorangejoomlaidpplugin
2. /libraries/miniorangesamlplugin
3. /plugins/system/samlredirect
これで、Joomla サイトにログインできるはずです。
残りの拡張機能を削除します。
1. Joomla サイト管理コンソールで、「拡張機能」->「管理」->「管理」に移動します。
2. 「miniorange」を検索
3. すべての拡張機能を選択し、「アンインストール」をクリックします。
SSO が機能していませんか? 管理ツールを SAML SP プラグインと一緒に使用していますか?
リダイレクトの問題は、Joomla SAML SSO の管理ツール プラグインを使用しているときに発生します。管理ツール プラグインは .htaccess ファイルに変更を加え、サイトからのリダイレクトを防ぐ特定のルールを追加します。
上記の問題は、以下の手順に従って解決できます。
1. 「管理ツール」>>「コントロール パネル」に移動し、「.htaccess メーカー」オプションをクリックします。
2. 次に、「一般的なファイルインジェクション攻撃から保護する」オプションを無効にします。
次に、サイトのキャッシュをクリアし、シングル サインオンをテストします。
SAML トレーサー ログを使用して SAML 要求/応答を確認またはダウンロードするにはどうすればよいですか?
ログイン中に「サインインできませんでした。管理者に問い合わせてください」というエラーが表示されます。
アイデンティティ プロバイダーが SAML レスポンスでエラーを送信しているようです。この問題を解決するには、SAML SP プラグインの [サービス プロバイダー設定] タブに移動してください。[構成のテスト] をクリックし、構成結果ウィンドウを確認します。属性マッピングが正しく行われていることを確認し、X.509 証明書の値が正確であることを確認します。