KeycloakをIDPとして使用してUmbraco SAML SSOを設定するためのガイド
概要
Umbraco SAML シングルサインオン (SSO)プラグインを使用すると、Umbraco アプリケーションでSAML シングルサインオンを有効にできます。シングルサインオンを使用すると、1 つのパスワードだけでUmbraco アプリケーションとサービスにアクセスできます。このプラグインは、すべてのSAML 準拠の ID プロバイダーと互換性があります。ここでは、 Keycloak をIDプロバイダーとして、 UmbracoとKeycloak間のシングルサインオン (SSO) を構成する手順を順を追って説明します。
SSO を構成する umbraco バージョンを選択してください:
前提条件: ダウンロードとインストール
- NuGet ストアからインストールする
- 手動インストール
- NuGet ストアからインストールする
- 手動インストール
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login - バージョン 9.2.3
> dotnet パッケージ miniOrange.Umbraco.SAML.SSO.Login を追加 -- バージョン 9.2.3
- ダウンロード Umbraco SAML シングル サインオン (SSO) ミドルウェア。
- ミドルウェアを設定するには、以下の名前空間、サービス、ミドルウェアをに追加する必要があります。 スタートアップ.cs ファイル(緑色でマークされています)の下にサンプル例を示します。
以下のハイライトされた部分のみを含めてください。 スタートアップ.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
namespace Application
{
public class Startup
{
// Add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddUmbraco(_env, _config)
.AddBackOffice()
.AddWebsite()
.AddComposers()
.Build();
services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseInstallerEndpoints();
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
}
}
}
- 構成が完了したら、アプリケーションを実行します。
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login - バージョン 10.2.3
> dotnet パッケージ miniOrange.Umbraco.SAML.SSO.Login を追加 -- バージョン 10.2.3
- ダウンロード Umbraco SAML シングル サインオン (SSO) ミドルウェア。
- ミドルウェアを設定するには、以下の名前空間、サービス、ミドルウェアをに追加する必要があります。 スタートアップ.cs ファイル(緑色でマークされています)の下にサンプル例を示します。
以下のハイライトされた部分のみを含めてください。 スタートアップ.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
namespace Application
{
public class Startup
{
// Add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddUmbraco(_env, _config)
.AddBackOffice()
.AddWebsite()
.AddComposers()
.Build();
services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseInstallerEndpoints();
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
}
}
}
- 構成が完了したら、アプリケーションを実行します。
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login - バージョン 11.2.3
> dotnet パッケージ miniOrange.Umbraco.SAML.SSO.Login を追加 -- バージョン 11.2.3
- ダウンロード Umbraco SAML シングル サインオン (SSO) ミドルウェア。
- ミドルウェアを設定するには、以下の名前空間、サービス、ミドルウェアをに追加する必要があります。 プログラム.cs ファイル(緑色でマークされています)の下にサンプル例を示します。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- 構成が完了したら、アプリケーションを実行します。
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login - バージョン 12.2.3
> dotnet パッケージ miniOrange.Umbraco.SAML.SSO.Login を追加 -- バージョン 12.2.3
- ダウンロード Umbraco SAML シングル サインオン (SSO) ミドルウェア。
- ミドルウェアを設定するには、以下の名前空間、サービス、ミドルウェアをに追加する必要があります。 プログラム.cs ファイル(緑色でマークされています)の下にサンプル例を示します。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- 構成が完了したら、アプリケーションを実行します。
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login - バージョン 13.2.3
> dotnet パッケージ miniOrange.Umbraco.SAML.SSO.Login を追加 -- バージョン 13.2.3
- ダウンロード Umbraco SAML シングル サインオン (SSO) ミドルウェア。
- ミドルウェアを設定するには、以下の名前空間、サービス、ミドルウェアをに追加する必要があります。 プログラム.cs ファイル(緑色でマークされています)の下にサンプル例を示します。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- 構成が完了したら、アプリケーションを実行します。
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login - バージョン 14.2.3
> dotnet パッケージ miniOrange.Umbraco.SAML.SSO.Login を追加 -- バージョン 14.2.3
- ダウンロード Umbraco SAML シングル サインオン (SSO) ミドルウェア。
- ミドルウェアを設定するには、以下の名前空間、サービス、ミドルウェアをに追加する必要があります。 プログラム.cs ファイル(緑色でマークされています)の下にサンプル例を示します。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- 構成が完了したら、アプリケーションを実行します。
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login - バージョン 15.2.4
> dotnet パッケージ miniOrange.Umbraco.SAML.SSO.Login を追加 -- バージョン 15.2.4
- ダウンロード Umbraco SAML シングル サインオン (SSO) ミドルウェア。
- ミドルウェアを設定するには、以下の名前空間、サービス、ミドルウェアをに追加する必要があります。 プログラム.cs ファイル(緑色でマークされています)の下にサンプル例を示します。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- 構成が完了したら、アプリケーションを実行します。
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login - バージョン 16.2.4
> dotnet パッケージ miniOrange.Umbraco.SAML.SSO.Login を追加 -- バージョン 16.2.4
- ダウンロード Umbraco SAML シングル サインオン (SSO) ミドルウェア。
- ミドルウェアを設定するには、以下の名前空間、サービス、ミドルウェアをに追加する必要があります。 プログラム.cs ファイル(緑色でマークされています)の下にサンプル例を示します。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- 構成が完了したら、アプリケーションを実行します。
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login - バージョン 17.2.4
> dotnet パッケージ miniOrange.Umbraco.SAML.SSO.Login を追加 -- バージョン 17.2.4
- ダウンロード Umbraco SAML シングル サインオン (SSO) ミドルウェア。
- ミドルウェアを設定するには、以下の名前空間、サービス、ミドルウェアをに追加する必要があります。 プログラム.cs ファイル(緑色でマークされています)の下にサンプル例を示します。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- 構成が完了したら、アプリケーションを実行します。
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login - バージョン 18.0.0
> dotnet パッケージ miniOrange.Umbraco.SAML.SSO.Login を追加 -- バージョン 18.0.0
- ダウンロード Umbraco SAML シングル サインオン (SSO) ミドルウェア。
- ミドルウェアを設定するには、以下の名前空間、サービス、ミドルウェアをに追加する必要があります。 プログラム.cs ファイル(緑色でマークされています)の下にサンプル例を示します。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- 構成が完了したら、アプリケーションを実行します。
構成手順
KeycloakをIDプロバイダーとして使用したUmbraco SAML SSOの手順ガイド。
1. Umbraco SAMLプラグインダッシュボードにアクセスします。
- 統合後、ブラウザを開き、以下の URL でコネクタ ダッシュボードを参照します。
https://<umbraco-base-url>/?ssoaction=config
- 登録ページまたはログイン ページがポップアップ表示されたら、アプリケーションに miniOrange SAML SSO ミドルウェアが正常に追加されています。
- をクリックしてアカウントに登録またはログインします。 会員登録する ボタンをクリックしてミドルウェアを設定します。
- 登録が完了すると、登録したメールアドレスに試用ライセンス キーが送信されます。
- ミドルウェアをアクティブ化するには、次のいずれかを実行します。
- 入力する ライセンスキー 指定された入力フィールドに電子メールで受信されます。
- ダウンロードしたライセンスファイルをアップロードするには、 詳細
OR
- 次に、「上記の条件を読み、ミドルウェアを有効化します」のボックスにチェックを入れ、 ライセンス認証
2. UmbracoアプリケーションのメタデータをKeycloak IDプロバイダーに提供する
以下に、SAML SP メタデータを取得して ID プロバイダー側で構成する方法が 2 つあります。
A] SAMLメタデータURLまたはメタデータファイルを使用する
- プラグイン設定メニュー、 探す サービスプロバイダーの設定その下には、メタデータのURLと、SAMLメタデータをダウンロードするオプションがあります。
- メタデータ URL をコピーするか、メタデータ ファイルをダウンロードして、ID プロバイダー側で同じものを構成します。
- 以下のスクリーンショットを参照してください。
B] メタデータを手動でアップロードする
- ノーザンダイバー社の サービスプロバイダーの設定 セクションでは、サービスプロバイダのメタデータを手動でコピーすることができます。 SP エンティティ ID、ACS URL、シングル ログアウト URL そして、それを構成のためにアイデンティティプロバイダーと共有します。
- 以下のスクリーンショットを参照してください。
Keycloak IdPの設定手順
- Keycloak 内で コンソールで、使用するレルムを選択します。
- ソフトウェアの制限をクリック 取引実績 左側のメニューから をクリックし、 クライアントの作成 ボタンをクリックして、新しいクライアント/アプリケーションを作成します。
- 選択 SAML as クライアントタイプ、 入る SP-EntityID / 発行者 として 顧客ID サービスプロバイダーのメタデータ プラグインのタブで、 名前 申請書に記入し、 詳細説明 .
- 以下を行うには、 次へ
- 以下の詳細を入力してください。
| ルートURL | 空白のままにするか、入力してください Base URL サービスプロバイダーの「メタデータ」タブから |
| 有効なリダイレクト URI | その ACS (アサーション コンシューマ サービス) URL プラグインのサービスプロバイダーメタデータタブから |
- ソフトウェアの制限をクリック Save
- 設定 下のタブ SAML機能 セクションで、必要な詳細を指定して Keycloak を設定します。
| POSTバインディングを強制する | オフ |
| 強制名 ID 形式 | オフ |
| 名前ID形式 | メールアドレス |
- キーズ タブで、 クライアントの署名が必要 トグル。
- 以下を行うには、 Save
- In 高機能 タブ、下 きめ細かい SAML エンドポイント構成、次の詳細を入力します。
| アサーション コンシューマ サービス POST バインディング URL | その ACS (アサーション コンシューマ サービス) URL プラグインのサービスプロバイダーメタデータタブから |
| ログアウトサービスリダイレクトバインドURL (オプション) | その シングル ログアウト URL プラグインのサービスプロバイダーメタデータタブから |
- ソフトウェアの制限をクリック Save
マッパーの追加
- MFAデバイスに移動する マッパータブ をクリックします。入力したコードが正しければ、MFAの設定は正常に完了します ビルトインの追加
- のチェックボックスをオンにします X500 指定された名前, X500姓 (NAIST) と X500メール 属性を指定します。
- ソフトウェアの制限をクリック 選択したものを追加 ボタン。 以下に追加されたマッピングが表示されます。
- In クライアントスコープ タブで、アプリケーションをクリックします。
- ソフトウェアの制限をクリック 事前定義されたマッパーを追加する.
- のチェックボックスをオンにします X500 指定された名前, X500姓 (NAIST) と X500メール 属性を指定します。
- ソフトウェアの制限をクリック 追加
- 以下に追加されたマッピングが表示されます。
- クライアントスコープ タブで、アプリケーションをクリックします。
- ソフトウェアの制限をクリック 事前定義されたマッパーを追加する.
- のチェックボックスをオンにします X500 指定された名前, X500姓 (NAIST) と X500メール 属性を指定します。
- 以下を行うには、 追加
- 以下に追加されたマッピングが表示されます。
セットアップファイルをダウンロードする
- MFAデバイスに移動する レルム設定 SAML 2.0 ID プロバイダーのメタデータ でエンドポイントとして言及されている 「一般設定」タブ.
- URL をメモして手元に保管してください。 それはあなたに提供します Endpoints プラグインを設定するために必要です。
- MFAデバイスに移動する レルム設定 SAML 2.0 ID プロバイダーのメタデータ でエンドポイントとして言及されている 「一般設定」タブ.
- URL をメモして手元に保管してください。 それはあなたに提供します Endpoints プラグインを設定するために必要です。
- MFAデバイスに移動する レルム設定 SAML 2.0 ID プロバイダーのメタデータ でエンドポイントとして言及されている 全般 タブには何も表示されないことに注意してください。
- URL をメモして手元に保管してください。 それはあなたに提供します Endpoints プラグインを設定するために必要です。
Umbracoのシングルサインオン(SSO)を実現するために、KeycloakをSAML IDP(アイデンティティプロバイダー)として正常に設定しました。
3. UmbracoアプリケーションでKeycloak IDプロバイダーのメタデータを設定する
- 以下を行うには、 新しい IDP を追加 新しい ID プロバイダーを構成するためのボタン。
- 下 プラグインの設定 タブ、選択 キークローク 表示されるリストから ID プロバイダーとして選択します。
ミドルウェアで SAML ID プロバイダーのメタデータを構成するには、以下に説明する 2 つの方法があります。
A] [IDP メタデータのアップロード] ボタンを使用してメタデータをアップロードします。
- ID プロバイダーがメタデータ URL またはメタデータ ファイル (.xml 形式のみ) を提供している場合は、ミドルウェアで ID プロバイダーのメタデータを簡単に構成できます。 IDPメタデータのアップロード オプションを選択します。
- メタデータ URL をコピーするか、メタデータ ファイルをダウンロードして、ID プロバイダー側で同じものを構成します。
- 以下のスクリーンショットを参照してください。
- 使用可能なメタデータ形式に応じて、オプションのいずれかを選択できます。
B] ID プロバイダーのメタデータを手動で構成します。
- を構成した後 ID プロバイダー、それはあなたに提供します IDPエンティティID、IDPシングルサインオンURL (NAIST) と SAML X509証明書 それぞれフィールド。
- 詳しくはこちら Save IDP の詳細を保存します。
4. SAML SSO のテスト
- メタデータの詳細をアップロードした後、 ID プロバイダーの設定 セクション。 アクションの選択 ドロップダウンをクリックして テスト構成.
- 以下のスクリーンショットは、成功した結果を示しています。 クリック SSO統合 SSO 統合をさらに続行します。
- ミドルウェア側でエラーが発生した場合は、以下のようなウィンドウが表示されます。
- エラーのトラブルシューティングを行うには、次の手順に従います。
- 解決します タブで、プラグイン ログを受信するためのトグルを有効にします。
- 有効にすると、次の場所に移動してプラグイン ログを取得できるようになります。 プラグインの設定 タブをクリックしてクリックします テスト構成.
- ダウンロード ログファイル 解決します タブをタップして、何が問題だったのかを確認してください。
- あなたは共有することができます ログファイル 私たちと一緒に umbracosupport@xecurify.com 私たちのチームが問題を解決するためにご連絡いたします。
Umbracoログインタイプ
- この後、 ログインタイプ IDプロバイダー設定ページの右側にあるドロップダウンメニューから選択します。
- あなたはから選ぶことができます バックオフィス, Memberまたは カスタム属性ベース.
- 注意: その カスタム属性ベース ログインタイプは プレミアムサーマルバッグ (NAIST) と Enterprise バージョン。
5. 属性マッピング
- 属性マッピング、ロールマッピング、ドメイン制限は、 プレミアムサーマルバッグ (NAIST) と Enterprise ミドルウェアのバージョン。
6. ログイン設定
- ホバーオン アクションの選択 をクリックします。入力したコードが正しければ、MFAの設定は正常に完了します SSO リンクをコピーします。
- SSO を実行するアプリケーション内のリンクとして次の URL を使用します。
https://<umbraco-base-url>/?ssoaction=login
- たとえば、次のように使用できます。
<a href="https://<umbraco-base-url>/?ssoaction=login">Log in</a>
7. ログアウト設定
- SLO を実行するアプリケーションへのリンクとして次の URL を使用します。
https://<umbraco-base-url>/?ssoaction=logout
- たとえば、次のように使用できます。
<a href="https://<umbraco-base-url>/?ssoaction=logout">Log out</a>
関連記事
ご返答ありがとうございます。 すぐにご連絡させていただきます。
何か問題が発生しました。 もう一度質問を送信してください
