ASP.NET Core 分離アプリケーションで SAML シングル サインオン (SSO) を構成する
概要
このガイドでは、SAML 準拠の ID プロバイダー (IdP) を使用して、ASP.NET Core 分離アーキテクチャ アプリケーションで SAML シングル サインオン (SSO) を設定するための詳細な手順を説明します。バックエンド (ASP.NET Core) は SSO 認証を処理し、JWT トークンを生成し、それを任意のフロントエンド (React、Angular、Vue など) に安全に公開します。
プラットフォームのサポート: ASP.NET Core SAMLミドルウェアは、ASP.NET Core 2.0以降をサポートしています。Windows、Linux、macOSを含むすべてのASP.NET Coreプラットフォームをサポートします。
前提条件: ダウンロードとインストール
- バージョン .NET 5 以上
- バージョン .NET Core 2.1 および .NET Core 3.1
あなたが得るなら CORSの問題 API 呼び出しを行う際に、以下のサービスとポリシーを追加します。
builder.Services.AddCors(options =>
{
options.AddPolicy("<policy-name>",policy =>
{
policy.WithOrigins("<your-origin>",policy)
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials()
});
});
//Add this in the middleware section
app.UseCors("<policy-name>");
構成手順
アイデンティティ プロバイダーを使用した ASP.NET Core SAML SSO のステップ バイ ステップ ガイド。
1.ASP.NET Coreアプリケーションにミドルウェアを追加する
- 統合後、ブラウザを開き、以下の URL でコネクタ ダッシュボードを参照します。
https://<asp.net-middleware-base-url>/?ssoaction=config
- 登録ページまたはログイン ページがポップアップ表示されたら、miniOrange ASP.NET ミドルウェア認証 SAML SSO コネクタがアプリケーションに正常に追加されています。

- をクリックしてアカウントに登録またはログインします。 登録する ボタンをクリックしてミドルウェアを設定します。
2. アイデンティティプロバイダを設定する
- 下 プラグインの設定 タブで、表示されるリストから ID プロバイダーを選択します。

以下に、SAML SP メタデータを取得して ID プロバイダー側で構成する方法が 2 つあります。
A] SAMLメタデータURLまたはメタデータファイルを使用する
- プラグイン設定メニュー、 探す サービスプロバイダーの設定。 その下に、メタデータ URL と SAML メタデータをダウンロードするオプションがあります。
- メタデータ URL をコピーするか、メタデータ ファイルをダウンロードして、ID プロバイダー側で同じものを構成します。
- 以下のスクリーンショットを参照してください。

B] メタデータを手動でアップロードする
- ノーザンダイバー社の サービスプロバイダーの設定 セクションでは、サービスプロバイダのメタデータを手動でコピーすることができます。 SP エンティティ ID、ACS URL、シングル ログアウト URL そして、それを構成のためにアイデンティティプロバイダーと共有します。
- 以下のスクリーンショットを参照してください。

3. ASP.NET Core SAML ミドルウェアをサービス プロバイダーとして構成する
ミドルウェアで SAML ID プロバイダーのメタデータを構成するには、以下に説明する 2 つの方法があります。
A] [IDP メタデータのアップロード] ボタンを使用してメタデータをアップロードします。
- アイデンティティプロバイダがメタデータURLまたはメタデータファイル(.xml形式のみ)を提供している場合は、ミドルウェアでアイデンティティプロバイダのメタデータを次のように設定するだけで済みます。 IDPメタデータのアップロード オプションを選択します。
- メタデータ URL をコピーするか、メタデータ ファイルをダウンロードして、ID プロバイダー側で同じものを構成します。
- 以下のスクリーンショットを参照してください。

- 使用可能なメタデータ形式に応じて、オプションのいずれかを選択できます。
B] ID プロバイダーのメタデータを手動で構成します。
- を構成した後 ID プロバイダー、それはあなたに提供します IDPエンティティID、IDPシングルサインオンURL および SAML X509証明書 それぞれフィールド。
- クリック Save IDP の詳細を保存します。

4. SAML SSO のテスト
- セットアップボタンをクリックすると、セットアップが開始されます テスト構成 実行した SAML 構成が正しいかどうかをテストするためのボタン。
- 以下のスクリーンショットは、成功した結果を示しています。 クリック SSO統合 SSO 統合をさらに続行します。

- ミドルウェア側でエラーが発生した場合は、以下のようなウィンドウが表示されます。

- エラーのトラブルシューティングを行うには、次の手順に従います。
- 解決します タブで、プラグイン ログを受信するためのトグルを有効にします。

- 有効にすると、プラグインのログを取得できるようになります。 プラグインの設定 タブをクリックしてクリックします テスト構成.
- ダウンロード ログファイル 解決します タブをクリックして何が問題なのかを確認します。
- あなたは共有することができます ログファイル 私たちと一緒に aspnetsupport@xecurify.com 私たちのチームが問題を解決するためにご連絡いたします。
5. 属性マッピング
- 構成をテストした後、アプリケーション属性をアイデンティティ プロバイダー (IdP) 属性にマップします。
- Note: マップされたすべての属性はセッションに保存されるため、アプリケーションでアクセスできるようになります。

6. 統合コード
- この手順により、アプリケーション内の SSO ユーザー情報をユーザー クレームの形式で取得できます。
- Note: このトライアルミドルウェアはクレーム内のユーザー情報のみをサポートし、セッションとヘッダー内のユーザー情報の取得はプレミアムプラグインで利用できます。
-
ログイン後に JWT トークンを返すために、.NET 側で GET エンドポイントを作成します。
注: JWT を作成する方法がある場合は、.NET Cookie からクレームを選択するだけです。
以下に参考用のコードを示します。
[HttpGet("gettoken")]
public string GetToken()
{
if(User.Identity!=null && User.Identity.IsAuthenticated)
{
var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes
("Your-JWT-secret-key"));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var identity = (ClaimsIdentity)User.Identity;
var claims = identity.Claims;
var token = new JwtSecurityToken(
issuer:"<issuer-name>",
audience:"<audience>",
claims:claims,
expires: DateTime.UtcNow.AddHours(1),
signingCredentials: creds
);
return new JwtSecurityTokenHandler().WriteToken(token);
}
return null;
}
7. ログインボタンを追加する
- ホバーオン アクションの選択 をクリックします。入力したコードが正しければ、MFAの設定は正常に完了します SSO リンクをコピーします。

- SSO を実行するアプリケーション内のリンクとして次の URL を使用します。
https://<application-url>?ssoaction=login&appid=<app-id>
- ログイン後、 フロントエンドアプリケーション、 その後、 API呼び出し 得るため トークン およびユーザー情報。
- 以下は、API呼び出しを行うために使用できるサンプルコードです。 トークンエンドポイント フロントエンド側からトークンを取得します。
fetch("https://<backend-api-baseurl>/api/gettoken", {
method: "GET",
})
.then((response) => {
//here you will receive the jwt token and the user details
console.log(response);
});
8. テスト統合
- ASP.NET Core Web APIアプリケーションを起動する
- フロントエンドアプリケーションを開始する
- フロントエンドアプリケーションから、 SSOログイン 追加したボタン
- 後 SAMLログイン、 フロントエンドアプリケーションにリダイレクトされます。この時点で、フロントエンドアプリケーションは /api/gettoken トークンとユーザーの詳細を返すエンドポイントです。 JWTトークン さらに API 呼び出しを実行します。

注: トークン検証のために API の Authorize 属性を使用している場合は、現在複数のポリシーが登録されているため、認証ポリシーを指定する必要があります。
JWTの場合、次を使用します: [Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
関連記事
Get in Touch
までご連絡ください aspnetsupport@xecurify.comにご連絡いただければ、当社のチームがASP.NET Core SAML SSOの設定をサポートいたします。お客様の要件に最適なソリューション/プランの選定をお手伝いいたします。