AzureB2CをIDPとして使用してASP.NET Core SAML SSOを構成するためのガイド
概要
ASP.NET Core SAML シングル サインオン (SSO) ミドルウェア を有効にする能力を与えます SAML シングル サインオン ASP.NET Coreアプリケーションにシングルサインオンを使用すると、1つのパスワードだけでアクセスできます。 ASP.NET コアアプリケーション およびサービス。当社のミドルウェアは、すべての SAML準拠のIDプロバイダーここでは、シングルサインオン(SSO)を設定するための手順を段階的に説明します。 ASP.NETコア and AzureB2C 考えると AzureB2C IdP として。
プラットフォームのサポート: ASP.NET Core SAMLミドルウェアは、ASP.NET Core 2.0以降をサポートしています。Windows、Linux、macOSを含むすべてのASP.NET Coreプラットフォームをサポートします。
- トライアル
- Enterprise
前提条件: ダウンロードとインストール
- バージョン .NET 5 以上
- バージョン .NET Core 2.1 および .NET Core 3.1
- NET Frameworkの
PM> NuGet\Install-Package miniOrange.SAML.SSO
> dotnet パッケージ miniOrange.SAML.SSO を追加
注意: アプリケーションに miniOrange ASP.NET SAML SSO ミドルウェアを統合するには、以下の名前空間、サービス、ミドルウェアをプロジェクトに追加する必要があります。以下は参考用のサンプル実装です。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection
var builder=WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
var app = builder.Build();
if(!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.UseCookiePolicy();
app.UseAuthentication();
#if NET9_0_OR_GREATER
app.MapStaticAssets();
#else
app.UseStaticFiles();
#endif
app.UseminiOrangeSAMLSSOMiddleware();
app.Run();
PM> NuGet\Install-Package miniOrange.SAML.SSO
> dotnet パッケージ miniOrange.SAML.SSO を追加
注意: miniOrange ASP.NET SAML SSOミドルウェアをアプリケーションに統合するには、プロジェクトに以下の名前空間、サービス、およびミドルウェアを追加する必要があります。以下にサンプルを示します。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseCookiePolicy();
app.UseAuthentication();
#if NET9_0_OR_GREATER
app.MapStaticAssets();
#else
app.UseStaticFiles();
#endif
app.UseminiOrangeSAMLSSOMiddleware();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
}
前提条件: ダウンロードとインストール
- バージョン .NET 5 以上
- バージョン .NET Core 2.1 および .NET Core 3.1
- NET Frameworkの
- にログインします http://portal.miniorange.com/ に移動します ダウンロード タブから購入したプラグインを見つけてクリックします プラグインのダウンロード プラグインの zip ファイルをダウンロードします。
- ダウンロードした zip ファイルをマシンに解凍し、NuGet パッケージ ファイル (.nupkg ファイル) を「C:\miniOrangePackages」などのフォルダーに配置します。
- パッケージ ソースとして追加するには、VS ターミナルで次のコマンドを実行します。
dotnet nuget add source C:\miniOrangePackages--name miniOrangePackage
- ターミナルでプロジェクトを開きます。
cd C:\Path\To\YourProject
- 以下のコマンドを使用して、プロジェクトにパッケージをインストールします。
dotnet add package miniOrange.SAML.SSO --source miniOrangePackage
OR
- NuGet パッケージ (.nupkg ファイル) をローカル フォルダーに配置した後、ターミナルを使用する代わりに、次の手順に従って Visual Studio を使用してインストールすることもできます。
- Visual Studioで.NETアプリケーションを開き、 ツール 上部のナビゲーションバーで、 NuGet パッケージ マネージャー → ソリューションの NuGet パッケージの管理.
- 新しいウィンドウが開きますので、 歯車のアイコン パッケージ ソース ドロップダウンの横にあります。
- ポップアップウィンドウが開きますので、 パッケージソース 左側のナビゲーションパネルからプラスをクリックします (+) アイコンに入力して 名 パッケージソースには、NuGetパッケージを配置したフォルダのパスを指定します。 ソース フィールドをクリックし、 更新 最後に OK 画像に示すように、変更を保存します。
- ポップアップウィンドウを閉じた後、新しく追加されたパッケージソースを パッケージソース ドロップダウン。
- 今すぐ ブラウズ タブ、検索 ミニオレンジ.SAML.SSO結果からパッケージを選択し、「インストール」をクリックします。
- 注意: アプリケーションに miniOrange ASP.NET SAML SSO ミドルウェアを統合するには、以下の名前空間、サービス、ミドルウェアをプロジェクトに追加する必要があります。以下は参考用のサンプル実装です。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection
var builder=WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
var app = builder.Build();
if(!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.UseCookiePolicy();
app.UseAuthentication();
#if NET9_0_OR_GREATER
app.MapStaticAssets();
#else
app.UseStaticFiles();
#endif
app.UseminiOrangeSAMLSSOMiddleware();
app.Run();
- にログインします http://portal.miniorange.com/ に移動します ダウンロード タブから購入したプラグインを見つけてクリックします プラグインのダウンロード プラグインの zip ファイルをダウンロードします。
- ダウンロードした zip ファイルをマシンに解凍し、NuGet パッケージ ファイル (.nupkg ファイル) を「C:\miniOrangePackages」などのフォルダーに配置します。
- パッケージ ソースとして追加するには、VS ターミナルで次のコマンドを実行します。
dotnet nuget add source C:\miniOrangePackages--name miniOrangePackage
- ターミナルでプロジェクトを開きます。
cd C:\Path\To\YourProject
- 以下のコマンドを使用して、プロジェクトにパッケージをインストールします。
dotnet add package miniOrange.SAML.SSO --source miniOrangePackage
OR
- NuGet パッケージ (.nupkg ファイル) をローカル フォルダーに配置した後、ターミナルを使用する代わりに、次の手順に従って Visual Studio を使用してインストールすることもできます。
- Visual Studioで.NETアプリケーションを開き、 ツール 上部のナビゲーションバーで、 NuGet パッケージ マネージャー → ソリューションの NuGet パッケージの管理.
- 新しいウィンドウが開きますので、 歯車のアイコン パッケージ ソース ドロップダウンの横にあります。
- ポップアップウィンドウが開きますので、 パッケージソース 左側のナビゲーションパネルからプラスをクリックします (+) アイコンに入力して 名 パッケージソースには、NuGetパッケージを配置したフォルダのパスを指定します。 ソース フィールドをクリックし、 更新 最後に OK 画像に示すように、変更を保存します。
- ポップアップウィンドウを閉じた後、新しく追加されたパッケージソースを パッケージソース ドロップダウン。
- 今すぐ ブラウズ タブ、検索 ミニオレンジ.SAML.SSO結果からパッケージを選択し、「インストール」をクリックします。
- 注意: アプリケーションに miniOrange ASP.NET SAML SSO ミドルウェアを統合するには、以下の名前空間、サービス、ミドルウェアをプロジェクトに追加する必要があります。以下は参考用のサンプル実装です。
以下のハイライトされた部分のみを含めてください。 プログラム.cs アプリケーションのファイル。
using miniOrange.saml;
using System.Reflection;
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddRazorPages();
services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseCookiePolicy();
app.UseAuthentication();
#if NET9_0_OR_GREATER
app.MapStaticAssets();
#else
app.UseStaticFiles();
#endif
app.UseminiOrangeSAMLSSOMiddleware();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
}
構成手順
Azure B2CをIDプロバイダーとして使用したASP.NET Core SAML SSOの手順ガイド。
1. .NET SAMLプラグインダッシュボードにアクセスする
- 統合後、ブラウザを開き、以下の URL でコネクタ ダッシュボードを参照します。
http(s)<your-dotnet-application-base-url>?ssoaction=config
- 登録ページまたはログイン ページがポップアップ表示されたら、アプリケーションに miniOrange SAML SSO ミドルウェアが正常に追加されています。
- をクリックしてアカウントに登録またはログインします。 会員登録する ボタンをクリックしてミドルウェアを設定します。
- 登録が完了すると、登録したメールアドレスに試用ライセンス キーが送信されます。
- ミドルウェアをアクティブ化するには、次のいずれかを実行します。
- 入力する ライセンスキー 指定された入力フィールドに電子メールで受信されます。
- ダウンロードしたライセンスファイルをアップロードするには、 詳細
OR
- 次に、「上記の条件を読み、ミドルウェアを有効化します」のボックスにチェックを入れ、 ライセンス認証
- 統合後、ブラウザを開き、以下の URL でコネクタ ダッシュボードを参照します。
http(s)<your-dotnet-application-base-url>?ssoaction=config
- ログイン ページがポップアップ表示されたら、アプリケーションに miniOrange SAML SSO ミドルウェアが正常に追加されています。
- ライセンスを取得した miniOrange アカウントでログインし、ミドルウェアを構成します。
- ログイン後、 アカウントの設定 ダッシュボードが開きます。プラグインを有効化するには、ログイン後に受け取るライセンスキーを入力してください。 portal.miniorange.com そして、 ライセンスの管理 → ライセンスキー.
- 次に、ボックスにチェックを入れます 「上記の2つの条件を読み、プラグインを有効にしたいと思います」、をクリックします ライセンス認証
2. .NETアプリケーションのメタデータをAzureB2C IDプロバイダーに提供する
以下に、SAML SP メタデータを取得して ID プロバイダー側で構成する方法が 2 つあります。
A] SAMLメタデータURLまたはメタデータファイルを使用する
- プラグイン設定メニュー、 探す サービスプロバイダーの設定。 その下に、メタデータ URL と SAML メタデータをダウンロードするオプションがあります。
- メタデータ URL をコピーするか、メタデータ ファイルをダウンロードして、ID プロバイダー側で同じものを構成します。
- 以下のスクリーンショットを参照してください。
B] メタデータを手動でアップロードする
- ノーザンダイバー社の サービスプロバイダーの設定 セクションでは、サービスプロバイダのメタデータを手動でコピーすることができます。 SP エンティティ ID、ACS URL、シングル ログアウト URL そして、それを構成のためにアイデンティティプロバイダーと共有します。
- 以下のスクリーンショットを参照してください。
Identity Experience Framework アプリケーションを登録する
- ログイン時に Azure B2C ポータル.
- Azure AD B2C テナントから、 アプリの登録、次に選択 新規登録.
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する 名前、IdentityExperienceFrameworkを入力します。
- サポートされているアカウントタイプ選択 この組織ディレクトリのみのアカウント.
- 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 アプリケーションを登録する
- 選択する アプリの登録、次に選択 新規登録.
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する 名前、「ProxyIdentityExperienceFramework」と入力します。
- サポートされているアカウントタイプ選択 この組織ディレクトリのみのアカウント.
- URIをリダイレクトする、ドロップダウンを使用して選択します パブリッククライアント/ネイティブ (モバイルおよびデスクトップ).
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する URIをリダイレクトする、「myapp://auth」と入力します。
- 権限, [openid および offline_access 権限に管理者の同意を与える] チェック ボックスをオンにします。
- 選択する 会員登録する.
- 記録する アプリケーション(クライアント)ID 後のステップで使用します。
次に、アプリケーションをパブリック クライアントとして扱うように指定します。
- 管理 選択 認証.
- 詳細設定、イネーブル パブリッククライアントフローを許可する (「はい」を選択)。
- 選択する Save.
次に、IdentityExperienceFramework の登録で前に公開した API スコープにアクセス許可を付与します。
- 管理 選択 API権限.
- 設定された権限選択 権限を追加する.
- まず 私のAPI タブ、次に選択 アイデンティティ体験フレームワーク アプリケーション。
- 許可、選択 ユーザー偽装 前に定義したスコープ。
- 選択する 権限を追加。 指示に従って、次のステップに進む前に数分間待ちます。
- 選択する (テナント名) に管理者の同意を与える.
- 現在サインインしている管理者アカウントを選択するか、少なくともクラウド アプリケーション管理者ロールが割り当てられている Azure AD B2C テナントのアカウントを使用してサインインします。
- 選択する あり.
- 選択する Refreshをクリックし、「Granted for ...」が下に表示されていることを確認します。 ステータス スコープの場合は、offline_access、openid、user_impersonation。 権限が反映されるまでに数分かかる場合があります。
ASP.NETアプリケーションを登録する
- [アプリの登録] を選択し、[新規登録] を選択します。
- アプリケーションの名前を入力します (例: WP-app)。
- サポートされているアカウントタイプ選択 任意の組織ディレクトリまたは任意の ID プロバイダー内のアカウント。 Azure AD B2C でユーザーを認証する場合.
- URIをリダイレクトするをクリックし、[Web] を選択して、ACS URL を入力します。 サービスプロバイダーの設定 miniOrange ASP.NET SAMLプラグインのタブで、 ステップ2B 上記。
- 選択する 会員登録する.
- 管理 APIを公開する.
- ソフトウェアの制限をクリック 作成セッションプロセスで アプリケーション ID URI を入力し、 Save、デフォルト値を受け入れます。
- 保存したら、アプリケーション ID URI をコピーし、 サービスプロバイダーのメタデータ プラグインのタブ。
- コピーした値を SPエンティティID / 発行者 このタブにあるフィールド。
- 保存をクリックします。
SSO ポリシーの生成
-
Azure B2C ポータルから、B2C テナントの [概要] セクションに移動し、テナント名を記録します。
注意: B2C ドメインが b2ctest.onmicrosoft.com の場合、テナント名は b2ctest になります。
- あなたの〜を入力してください Azure B2C テナント名 以下に、上記の手順で登録した IdentityExperienceFramework アプリと ProxyIdentityExperienceFramework アプリのアプリケーション ID を記載します。
- 以下を行うには、 Azure B2C ポリシーの生成 ボタンをクリックして SSO ポリシーをダウンロードします。
- ダウンロードしたzipファイルを解凍します。 これには、次の手順で必要となるポリシー ファイルと証明書 (.pfx) が含まれています。
証明書のセットアップとアップロード
お願い: 次のステップで、 「アイデンティティエクスペリエンスフレームワーク」 をクリックできない場合は、そのテナントに対してアクティブな Azure AD B2C サブスクリプションがないことが原因である可能性があります。 Azure AD B2C サブスクリプションに関する詳細を確認できます。 こちら 次の手順に従って新しいテナントを作成できます こちら.
- にサインインする Azureのポータル Azure AD B2C テナントを参照します。
- 政策選択 アイデンティティ エクスペリエンス フレームワーク その後 ポリシーキー.
- 選択する 追加、次に選択 [オプション] > [アップロード].
- 名前に「SamlIdpCert」と入力します。 プレフィックス B2C_1A_ がキーの名前に自動的に追加されます。
- アップロード ファイル コントロールを使用して、上記の手順で生成された証明書を SSO ポリシー (tenantname-cert.pfx) とともにアップロードします。
- テナント名に証明書のパスワードを入力し、「作成」をクリックします。例えば、テナント名がxyzb2c.onmicrosoft.comの場合、パスワードはxyzb2cと入力します。
- B2C_1A_SamlIdpCert という名前の新しいポリシー キーが表示されるはずです。
署名キーを作成する
- Azure AD B2C テナントの概要ページで、 政策選択 アイデンティティ エクスペリエンス フレームワーク.
- 選択する ポリシーキー 次に選択します 追加.
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する オプション、「生成」を選択します。
- In 名前、「TokenSigningKeyContainer」と入力します。
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する キータイプ、「RSA」を選択します。
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する 主な使用法、「署名」を選択します。
- 選択する 創造する.
暗号化キーを作成する
- Azure AD B2C テナントの概要ページで、 政策選択 アイデンティティ エクスペリエンス フレームワーク.
- 選択する ポリシーキー 次に選択します 追加.
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する オプション、「生成」を選択します。
- In 名前、「TokenEncryptionKeyContainer」と入力します。
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する キータイプ、「RSA」を選択します。
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する 主な使用法、「暗号化」を選択します。
- 選択する 創造する.
ポリシーをアップロードする
- まず アイデンティティ エクスペリエンス フレームワーク Azure portal の B2C テナントのメニュー項目。
- 選択する カスタムポリシーをアップロードする.
- 以下の順序に従って、上記の手順でダウンロードしたポリシー ファイルをアップロードします。
- TrustFrameworkBase.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- プロファイル編集.xml
- パスワードリセット.xml
- SignUpOrSigninSAML.xml
- ファイルをアップロードすると、Azure によって各ファイルにプレフィックス B2C_1A_ が追加されます。
ASP.NET シングル サインオン (SSO) を実現するために、Azure B2C を SAML IDP (ID プロバイダー) として正常に構成しました。
A] SAMLメタデータURLまたはメタデータファイルを使用する
- プラグイン設定メニュー、 探す サービスプロバイダーの設定。 その下に、メタデータ URL と SAML メタデータをダウンロードするオプションがあります。
- メタデータ URL をコピーするか、メタデータ ファイルをダウンロードして、ID プロバイダー側で同じものを構成します。
- 以下のスクリーンショットを参照してください。
B] メタデータを手動でアップロードする
- ノーザンダイバー社の サービスプロバイダーの設定 セクションでは、サービスプロバイダのメタデータを手動でコピーすることができます。 SP エンティティ ID、ACS URL、シングル ログアウト URL、そしてそれをアイデンティティプロバイダーと共有して構成します。
- SP証明書は以下をクリックしてダウンロードすることもできます。 SP証明書をダウンロード 必要に応じて、ID プロバイダーに提供します。
- 下 暗号化証明書 セクションで、要件に応じて適切な証明書の種類を選択します。
- 上記の手順を完了したら、 Save 構成を適用します。
- 以下のスクリーンショットを参照してください。
Identity Experience Framework アプリケーションを登録する
- ログイン時に Azure B2C ポータル.
- Azure AD B2C テナントから、 アプリの登録、次に選択 新規登録.
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する 名前、IdentityExperienceFrameworkを入力します。
- サポートされているアカウントタイプ選択 この組織ディレクトリのみのアカウント.
- 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 アプリケーションを登録する
- 選択する アプリの登録、次に選択 新規登録.
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する 名前、「ProxyIdentityExperienceFramework」と入力します。
- サポートされているアカウントタイプ選択 この組織ディレクトリのみのアカウント.
- URIをリダイレクトする、ドロップダウンを使用して選択します パブリッククライアント/ネイティブ (モバイルおよびデスクトップ).
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する URIをリダイレクトする、「myapp://auth」と入力します。
- 権限, [openid および offline_access 権限に管理者の同意を与える] チェック ボックスをオンにします。
- 選択する 会員登録する.
- 記録する アプリケーション(クライアント)ID 後のステップで使用します。
次に、アプリケーションをパブリック クライアントとして扱うように指定します。
- 管理 選択 認証.
- 詳細設定、イネーブル パブリッククライアントフローを許可する (「はい」を選択)。
- 選択する Save.
次に、IdentityExperienceFramework の登録で前に公開した API スコープにアクセス許可を付与します。
- 管理 選択 API権限.
- 設定された権限選択 権限を追加する.
- まず 私のAPI タブ、次に選択 アイデンティティ体験フレームワーク アプリケーション。
- 許可、選択 ユーザー偽装 前に定義したスコープ。
- 選択する 権限を追加。 指示に従って、次のステップに進む前に数分間待ちます。
- 選択する (テナント名) に管理者の同意を与える.
- 現在サインインしている管理者アカウントを選択するか、少なくともクラウド アプリケーション管理者ロールが割り当てられている Azure AD B2C テナントのアカウントを使用してサインインします。
- 選択する あり.
- 選択する Refreshをクリックし、「Granted for ...」が下に表示されていることを確認します。 ステータス スコープの場合は、offline_access、openid、user_impersonation。 権限が反映されるまでに数分かかる場合があります。
ASP.NETアプリケーションを登録する
- [アプリの登録] を選択し、[新規登録] を選択します。
- アプリケーションの名前を入力します (例: WP-app)。
- サポートされているアカウントタイプ選択 任意の組織ディレクトリまたは任意の ID プロバイダー内のアカウント。 Azure AD B2C でユーザーを認証する場合.
- URIをリダイレクトするをクリックし、[Web] を選択して、ACS URL を入力します。 サービスプロバイダーの設定 miniOrange ASP.NET SAMLプラグインのタブで、 ステップ2B 上記。
- 選択する 会員登録する.
- 管理 APIを公開する.
- ソフトウェアの制限をクリック 作成セッションプロセスで アプリケーション ID URI を入力し、 Save、デフォルト値を受け入れます。
- 保存したら、アプリケーション ID URI をコピーし、 サービスプロバイダーのメタデータ プラグインのタブ。
- コピーした値を SPエンティティID / 発行者 このタブにあるフィールド。
- 保存をクリックします。
SSO ポリシーの生成
-
Azure B2C ポータルから、B2C テナントの [概要] セクションに移動し、テナント名を記録します。
注意: B2C ドメインが b2ctest.onmicrosoft.com の場合、テナント名は b2ctest になります。
- あなたの〜を入力してください Azure B2C テナント名 以下に、上記の手順で登録した IdentityExperienceFramework アプリと ProxyIdentityExperienceFramework アプリのアプリケーション ID を記載します。
- 以下を行うには、 Azure B2C ポリシーの生成 ボタンをクリックして SSO ポリシーをダウンロードします。
- ダウンロードしたzipファイルを解凍します。 これには、次の手順で必要となるポリシー ファイルと証明書 (.pfx) が含まれています。
証明書のセットアップとアップロード
お願い: 次のステップで、 「アイデンティティエクスペリエンスフレームワーク」 をクリックできない場合は、そのテナントに対してアクティブな Azure AD B2C サブスクリプションがないことが原因である可能性があります。 Azure AD B2C サブスクリプションに関する詳細を確認できます。 こちら 次の手順に従って新しいテナントを作成できます こちら.
- にサインインする Azureのポータル Azure AD B2C テナントを参照します。
- 政策選択 アイデンティティ エクスペリエンス フレームワーク その後 ポリシーキー.
- 選択する 追加、次に選択 [オプション] > [アップロード].
- 名前に「SamlIdpCert」と入力します。 プレフィックス B2C_1A_ がキーの名前に自動的に追加されます。
- アップロード ファイル コントロールを使用して、上記の手順で生成された証明書を SSO ポリシー (tenantname-cert.pfx) とともにアップロードします。
- テナント名に証明書のパスワードを入力し、「作成」をクリックします。例えば、テナント名がxyzb2c.onmicrosoft.comの場合、パスワードはxyzb2cと入力します。
- B2C_1A_SamlIdpCert という名前の新しいポリシー キーが表示されるはずです。
署名キーを作成する
- Azure AD B2C テナントの概要ページで、 政策選択 アイデンティティ エクスペリエンス フレームワーク.
- 選択する ポリシーキー 次に選択します 追加.
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する オプション、「生成」を選択します。
- In 名前、「TokenSigningKeyContainer」と入力します。
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する キータイプ、「RSA」を選択します。
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する 主な使用法、「署名」を選択します。
- 選択する 創造する.
暗号化キーを作成する
- Azure AD B2C テナントの概要ページで、 政策選択 アイデンティティ エクスペリエンス フレームワーク.
- 選択する ポリシーキー 次に選択します 追加.
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する オプション、「生成」を選択します。
- In 名前、「TokenEncryptionKeyContainer」と入力します。
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する キータイプ、「RSA」を選択します。
- 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する 主な使用法、「暗号化」を選択します。
- 選択する 創造する.
ポリシーをアップロードする
- まず アイデンティティ エクスペリエンス フレームワーク Azure portal の B2C テナントのメニュー項目。
- 選択する カスタムポリシーをアップロードする.
- 以下の順序に従って、上記の手順でダウンロードしたポリシー ファイルをアップロードします。
- TrustFrameworkBase.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- プロファイル編集.xml
- パスワードリセット.xml
- SignUpOrSigninSAML.xml
- ファイルをアップロードすると、Azure によって各ファイルにプレフィックス B2C_1A_ が追加されます。
ASP.NET シングル サインオン (SSO) を実現するために、Azure B2C を SAML IDP (ID プロバイダー) として正常に構成しました。
3. .NET アプリケーションで AzureB2C ID プロバイダー メタデータを構成する
- 以下を行うには、 新しい IDP を追加 新しい ID プロバイダーを構成するためのボタン。
- 下 プラグインの設定 タブ、選択 AzureB2C 表示されるリストから ID プロバイダーとして選択します。
ミドルウェアで SAML ID プロバイダーのメタデータを構成するには、以下に説明する 2 つの方法があります。
A] [IDP メタデータのアップロード] ボタンを使用してメタデータをアップロードします。
- ID プロバイダーからメタデータ URL またはメタデータ ファイル (.xml 形式のみ) が提供されている場合は、 IDPメタデータのアップロード オプションを選択します。
- メタデータ URL をコピーするか、メタデータ ファイルをダウンロードして、ID プロバイダー側で同じものを構成します。
- 以下のスクリーンショットを参照してください。
- 使用可能なメタデータ形式に応じて、オプションのいずれかを選択できます。
B] ID プロバイダーのメタデータを手動で構成します。
- を構成した後 ID プロバイダー、それはあなたに提供します IDPエンティティID、IDPシングルサインオンURL and SAML X509証明書 それぞれフィールド。
- 詳しくはこちら Save IDP の詳細を保存します。
- 以下を行うには、 新しい IDP を追加 新しい ID プロバイダーを構成するためのボタン。
- 下 プラグインの設定 タブ、選択 AzureB2C 表示されるリストから ID プロバイダーとして選択します。
ミドルウェアで SAML ID プロバイダーのメタデータを構成するには、以下に説明する 2 つの方法があります。
A] [IDP メタデータのアップロード] ボタンを使用してメタデータをアップロードします。
- ID プロバイダーからメタデータ URL またはメタデータ ファイル (.xml 形式のみ) が提供されている場合は、 IDPメタデータのアップロード オプションを選択します。
- メタデータ URL をコピーするか、メタデータ ファイルをダウンロードして、ID プロバイダー側で同じものを構成します。
- 以下のスクリーンショットを参照してください。
- 使用可能なメタデータ形式に応じて、オプションのいずれかを選択できます。
B] ID プロバイダーのメタデータを手動で構成します。
- を構成した後 ID プロバイダー、それはあなたに提供します IDPエンティティID、IDPシングルサインオンURL and SAML X509証明書 それぞれフィールド。
- 詳しくはこちら Save IDP の詳細を保存します。
4. SAML SSO のテスト
- メタデータの詳細をアップロードした後、 ID プロバイダーの設定 セクション。 アクションの選択 ドロップダウンをクリックして テスト構成.
- 以下のスクリーンショットは、成功した結果を示しています。 クリック SSO統合 SSO 統合をさらに続行します。
- ミドルウェア側でエラーが発生した場合は、以下のようなウィンドウが表示されます。
- エラーのトラブルシューティングを行うには、次の手順に従います。
- 解決します タブで、プラグイン ログを受信するためのトグルを有効にします。
- 有効にすると、次の場所に移動してプラグイン ログを取得できるようになります。 プラグインの設定 タブをクリックしてクリックします テスト構成.
- ダウンロード ログファイル 解決します タブをクリックして、何が問題だったかを確認してください。
- あなたは共有することができます ログファイル 私たちと一緒に aspnetsupport@xecurify.com 私たちのチームが問題を解決するためにご連絡いたします。
- メタデータの詳細をアップロードした後、 ID プロバイダーの設定 セクション。 アクションの選択 ドロップダウンをクリックして テスト構成.
- 下のスクリーンショットはテスト成功例です。クリックしてください。 こちらをクリックしてください。 残りの SSO 統合手順を完了します。
- ミドルウェア側でエラーが発生した場合は、 トラブルシューティング
- エラーをトラブルシューティングするには、以下の手順に従ってください。
- [トラブルシューティング] タブで、トグルを有効にしてプラグインのログを受信し、問題を再現します。
- ログファイルをダウンロードするには、 ログファイルをダウンロード ボタンを押して何が問題なのか確認してください。
- あなたは共有することができます ログファイル 私たちと一緒に aspnetsupport@xecurify.com 私たちのチームが問題を解決するためにご連絡いたします。
5. 属性マッピング
- 構成をテストした後、アプリケーション属性をアイデンティティ プロバイダー (IdP) 属性にマップします。
- miniOrange ASP.NET SAML SSOミドルウェアの左側のメニューから、 属性/役割のマッピング 画像に示すようにタブをクリックします。
- IdPから追加の属性を渡したい場合は、属性名と対応する属性値を入力します。 カスタム属性マッピング.
- 注意: マップされたすべての属性はセッションに保存されるため、アプリケーションでアクセスできるようになります。
- 属性がマッピングされたら、 属性マッピングの保存 変更を適用します。
- 構成をテストした後、アプリケーション属性を ID プロバイダー (IdP) 属性にマップします。
- miniOrange ASP.NET SAML SSOミドルウェアの左側のメニューから、 属性/役割のマッピング 画像に示すようにタブをクリックします。
- 必要なマップ IdP属性 SAML レスポンスで受信した情報 (ユーザー名、メール アドレス、名、姓など) を対応するフィールドに追加します。
- お願い: マップされたすべての属性はセッションに保存されるため、アプリケーションでアクセスできるようになります。
- 属性がマッピングされたら、 属性マッピングの保存 変更を適用します。
カスタム属性マッピング
- IdPから追加の属性を渡したい場合は、属性名と対応する属性値を入力します。 カスタム属性マッピング.
- ノーザンダイバー社の 属性値(クレーム) ドロップダウンから、テスト構成の結果で受け取ったクレームの1つを選択します。例:NameID。
- これらのクレームは、アイデンティティ プロバイダー (IdP) によって送信された属性に対応します。
- これらのクレームは、アイデンティティ プロバイダー (IdP) によって送信された属性に対応します。
- 属性名 フィールドに、.NET アプリケーションで表示または使用する属性の名前を入力します。
- アプリケーションで複数の属性が必要な場合は、 +
- 必要なマッピングをすべて定義したら、 属性マッピングの保存 設定を保存します。
- プラグインは、アイデンティティ プロバイダー (IdP) からの受信 SSO クレームを、ここで定義されたカスタム属性名に変換します。
役割のマッピング
- 役割のマッピング セクションで、 グループ属性名 ユーザー グループ情報を取得するには、ID プロバイダーで設定されているとおりに実行します。
- 入力する 役割名 アイデンティティプロバイダから受信し、適切な 役割価値 フィールド。「ロール値」フィールドに、.NET アプリケーションで定義されているロールを入力します。
- たとえば、UserGroups 属性で受信した IdP グループ Group1 または Group10 を、.NET アプリケーションで構成されている対応するロールにマップします。
- 必要なマッピングを追加したら、 ロールマッピングを保存 設定を正常に保存します。
ドメイン制限
- この機能を使用すると、マッピングされた「電子メール」属性のドメインに基づいて、サイトへのユーザー アクセスを制限できます。
- 電子メールの属性 フィールドに、アイデンティティプロバイダー (IdP) から受け取ったユーザーの電子メールアドレスを含む属性名を入力します。
- ドメイン名 フィールドに、許可または制限するドメインを入力します。複数のドメインを追加する場合は、カンマで区切ります。
- 有効にします 制限トグル 要件に応じてブラックリストまたはホワイトリストのアクセスを構成します。
- 設定が完了したら、 ドメインを保存 設定を正常に保存します。
6. 統合コード
- この手順により、アプリケーション内の SSO ユーザー情報をユーザー クレームの形式で取得できます。
- 見ることもできます セットアップツアー SSO 統合が asp.net ミドルウェア アプリケーションでどのように機能するかを理解します。
- ユーザー属性にアクセスしたい場所に、そのコード スニペットをコピーして貼り付けるだけです。
- 注意: トライアル版ミドルウェアでは、認証されたユーザー情報はデフォルトの.NET Cookie認証を使用してユーザークレームに保存されます。プレミアムプラグインでは、ヘッダーベース、セッションベース、JWTベースの認証を使用したユーザークレームの設定がサポートされています。
- 以下から統合コードをコピーすることもできます。
string name="";
string claimtype="";
string claimvalue="";
if(User.Identity.IsAuthenticated)
{
foreach(var claim in User.claims)
{
claimtype = claim.Type;
claimvalue = claim.Value;
}
//retrive custom attributes(for eg. Retrieve Mapped 'mobileNumber' attribute of your IDP)
var identity = (ClaimsIdentity)User.Identity;
IEnumerable claims = identity.claims;
string mobileNumber = identity.FindFirst("mobileNumber")?.Value;
}
- これらの手順により、ユーザークレームの形式でアプリケーション内の SSO ユーザー情報を取得できます。
- ユーザー属性にアクセスしたい場所にコード スニペットをコピーして貼り付けるだけです。
- 以下から統合コードをコピーすることもできます。
string name="";
string claimtype="";
string claimvalue="";
if(User.Identity.IsAuthenticated)
{
foreach(var claim in User.claims)
{
claimtype = claim.Type;
claimvalue = claim.Value;
}
//retrive custom attributes(for eg. Retrieve Mapped 'mobileNumber' attribute of your IDP)
var identity = (ClaimsIdentity)User.Identity;
IEnumerable claims = identity.claims;
string mobileNumber = identity.FindFirst("mobileNumber")?.Value;
}
7. ログイン設定
- ホバーオン アクションの選択 をクリックします。入力したコードが正しければ、MFAの設定は正常に完了します SSO リンクをコピーします。
- SSO を実行するアプリケーション内のリンクとして次の URL を使用します。
https://<asp.net-middleware-base-url>/?ssoaction=login
- たとえば、次のように使用できます。
<a href="https://<asp.net-middleware-base-url>/?ssoaction=login">Log
in</a>
- ホバーオン アクションの選択 をクリックします。入力したコードが正しければ、MFAの設定は正常に完了します SSO リンクをコピーします。
- SSO を実行するアプリケーション内のリンクとして次の URL を使用します。
https://<asp.net-middleware-base-url>/?ssoaction=login
- たとえば、次のように使用できます。
<a href="https://<asp.net-middleware-base-url>/?ssoaction=login">Log
in</a>
8. ログアウト設定
- SLO を実行するアプリケーションへのリンクとして次の URL を使用します。
https://<asp.net-middleware-base-url>/?ssoaction=logout
- たとえば、次のように使用できます。
<a href="https://<asp.net-middleware-base-url>/?ssoaction=logout">Log
out</a>
- SLO を実行するアプリケーションへのリンクとして次の URL を使用します。
https://<asp.net-middleware-base-url>/?ssoaction=logout
- たとえば、次のように使用できます。
<a href="https://<asp.net-middleware-base-url>/?ssoaction=logout">Log
out</a>
詳細設定
詳細設定を適用する場合は、 詳細設定 タブには何も表示されないことに注意してください。
IdP への自動リダイレクト
- 有効にします IdP への自動リダイレクト ログイン時にユーザーを設定されたアイデンティティプロバイダーに自動的にリダイレクトするためのトグルボタン。
- 特定のURLからユーザーをリダイレクトするIDPを選択します。 デフォルトのIDP ドロップダウン。
- 選択する リダイレクトの種類 as 制限付き or 公共 要件に基づいています。
- 必要に応じて、リダイレクトから除外する URL を「除外 URL」フィールドにコンマで区切って入力します。
- ソフトウェアの制限をクリック Save 構成を正常に保存します。
管理ダッシュボードを無効にする
- 有効にします 管理ダッシュボードを無効にする miniOrange 管理ダッシュボードを非表示に切り替え、[保存] をクリックして変更を適用します。
証明書情報
- 証明書情報セクションに移動し、必要な証明書の種類(署名証明書または暗号化証明書).
- ソフトウェアの制限をクリック 証明書の再生成 新しい証明書を生成する場合。
- 次にクリック 新しい証明書を申請する 更新された証明書を適用します。
カスタム証明書をアップロードする
- に移動します カスタム証明書をアップロードする セクションで必要な証明書の種類を選択します(署名証明書または暗号化証明書).
- ソフトウェアの制限をクリック ファイルを選択してください アップロードする 公開鍵(.crt) and 秘密鍵(.pfx) ファイルを選択し、 秘密鍵パスワード 指定されたフィールドに入力します。
- 必要な詳細を入力したら、 Save カスタム証明書を正常にアップロードして適用します。
関連記事
ご返答ありがとうございます。 すぐにご連絡させていただきます。
何か問題が発生しました。 もう一度質問を送信してください
