IDPとしてShibbolethを使用したASP.NET Core SAML SSOの設定ガイド
概要
ASP.NET Core SAML シングル サインオン (SSO) ミドルウェア を有効にする能力を与えます SAML シングル サインオン ASP.NET Coreアプリケーションにシングルサインオンを使用すると、1つのパスワードだけでアクセスできます。 ASP.NET コアアプリケーション およびサービス。当社のミドルウェアは、すべての SAML準拠のIDプロバイダーここでは、シングルサインオン(SSO)を設定するための手順を段階的に説明します。 ASP.NETコア and Shibboleth 考えると Shibboleth 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();
});
}
}
構成手順
Shibbolethを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. Shibboleth ID プロバイダーに .NET アプリケーション メタデータを提供する
以下に、SAML SP メタデータを取得して ID プロバイダー側で構成する方法が 2 つあります。
A] SAMLメタデータURLまたはメタデータファイルを使用する
- プラグイン設定メニュー、 探す サービスプロバイダーの設定。 その下に、メタデータ URL と SAML メタデータをダウンロードするオプションがあります。
- メタデータ URL をコピーするか、メタデータ ファイルをダウンロードして、ID プロバイダー側で同じものを構成します。
- 以下のスクリーンショットを参照してください。
B] メタデータを手動でアップロードする
- ノーザンダイバー社の サービスプロバイダーの設定 セクションでは、サービスプロバイダのメタデータを手動でコピーすることができます。 SP エンティティ ID、ACS URL、シングル ログアウト URL そして、それを構成のためにアイデンティティプロバイダーと共有します。
- 以下のスクリーンショットを参照してください。
-
conf/idp.properties で、コメントを解除し、「idp.encryption.optional」を true に設定します。
例えば。 idp.encryption.optional = true
- In conf/メタデータプロバイダー.xml、サービスプロバイダーを次のように設定します
<MetadataProvider xmlns:samlmd="urn:oasis:names:tc:SAML:2.0:metadata"
id="miniOrangeInLineEntity" xsi:type="InlineMetadataProvider" sortKey="1">
<samlmd:EntityDescriptor ID="entity" entityID="<SP-EntityID / Issuer from Service Provider Info tab in plugin.>"
validUntil="2020-09-06T04:13:32Z">
<samlmd:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true"
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<samlmd:NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
</samlmd:NameIDFormat>
<samlmd:AssertionConsumerServiceBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="<ACS (AssertionConsumerService) URL from Step1 of the plugin under Identity Provider Tab.>"
index="1" />
</samlmd:SPSSODescriptor>
</samlmd:EntityDescriptor>
</MetadataProvider>
- In conf/saml-nameid.properties、コメントを解除してデフォルトに設定します 名前ID as メールアドレス このような。
idp.nameid.saml2.default=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
- In conf/saml-nameid-xml、shibboleth.SAML2NameIDGenerators を検索します。 shibboleth.SAML2AttributeSourcedGenerator Bean のコメントを解除し、他のすべての ref Bean をコメント化します。
<!-- SAML 2 NameID Generation -->
<util:list id="shibboleth.SAML2NameIDGenerators">
<!--<ref bean="shibboleth.SAML2TransientGenerator" /> -->
<!--<ref bean="shibboleth.SAML2PersistentGenerator" /> -->
<bean parent="shibboleth.SAML2AttributeSourcedGenerator"
p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
p:attributeSourceIds="#{ {'email'} }" />
</util:list>
- AttributeDefinition が定義されていることを確認してください。 conf/attribute-resolver.xml.
<!-- Note: AttributeDefinitionid must be same as what you provided in attributeSourceIds in conf/saml-nameid.xml -->
<resolver:AttributeDefinitionxsi:type="ad:Simple" id="email" sourceAttributeID="mail">
<resolver:Dependency ref="ldapConnector" />
<resolver:AttributeEncoderxsi:type="enc:SAML2String" name="email" friendlyName="email" />
</resolver:AttributeDefinition>
<resolver:DataConnector id="ldapConnector"
xsi:type="dc:LDAPDirectory"
ldapURL="%{idp.authn.LDAP.ldapURL}"
baseDN="%{idp.authn.LDAP.baseDN}"
principal="%{idp.authn.LDAP.bindDN}"
principalCredential="%{idp.authn.LDAP.bindDNCredential}">
<dc:FilterTemplate>
<!-- Define you User Search Filter here -->
<![CDATA[(&(objectclass=*) (cn=$requestContext.principalName)) ]]>
</dc:FilterTemplate>
<dc:ReturnAttributes>*</dc:ReturnAttributes>
</resolver:DataConnector>
- AttributeFilterPolicy が定義されていることを確認してください。 conf/属性フィルター.xml.
<afp:AttributeFilterPolicy id="ldapAttributes">
<afp:PolicyRequirementRulexsi:type="basic:ANY"/>
<afp:AttributeRuleattributeID="email">
<afp:PermitValueRulexsi:type="basic:ANY"/>
</afp:AttributeRule>
</afp:AttributeFilterPolicy>
- Shibboleth サーバーを再起動します。
- これらのエンドポイントは、ASP.NET SAMLミドルウェアで設定する必要があります。
| IDP エンティティ ID | https://<your_domain>/idp/shibboleth |
| 単一のログイン URL | https://<your_domain>/idp/profile/SAML2/Redirect/SSO |
| シングル ログアウト URL | https://<your_domain>/idp/shibboleth |
| X.509証明書 | Shibboleth サーバーの公開鍵証明書 |
- ASP.NET アプリケーションへの Shibboleth SSO ログインを実現するために、Shibboleth を SAML IdP (アイデンティティ プロバイダー) として正常に構成しました。
A] SAMLメタデータURLまたはメタデータファイルを使用する
- プラグイン設定メニュー、 探す サービスプロバイダーの設定。 その下に、メタデータ URL と SAML メタデータをダウンロードするオプションがあります。
- メタデータ URL をコピーするか、メタデータ ファイルをダウンロードして、ID プロバイダー側で同じものを構成します。
- 以下のスクリーンショットを参照してください。
B] メタデータを手動でアップロードする
- ノーザンダイバー社の サービスプロバイダーの設定 セクションでは、サービスプロバイダのメタデータを手動でコピーすることができます。 SP エンティティ ID、ACS URL、シングル ログアウト URL、そしてそれをアイデンティティプロバイダーと共有して構成します。
- SP証明書は以下をクリックしてダウンロードすることもできます。 SP証明書をダウンロード 必要に応じて、ID プロバイダーに提供します。
- 下 暗号化証明書 セクションで、要件に応じて適切な証明書の種類を選択します。
- 上記の手順を完了したら、 Save 構成を適用します。
- 以下のスクリーンショットを参照してください。
-
conf/idp.properties で、コメントを解除し、「idp.encryption.optional」を true に設定します。
例えば。 idp.encryption.optional = true
- In conf/メタデータプロバイダー.xml、サービスプロバイダーを次のように設定します
<MetadataProvider xmlns:samlmd="urn:oasis:names:tc:SAML:2.0:metadata"
id="miniOrangeInLineEntity" xsi:type="InlineMetadataProvider" sortKey="1">
<samlmd:EntityDescriptor ID="entity" entityID="<SP-EntityID / Issuer from Service Provider Info tab in plugin.>"
validUntil="2020-09-06T04:13:32Z">
<samlmd:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true"
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<samlmd:NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
</samlmd:NameIDFormat>
<samlmd:AssertionConsumerServiceBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="<ACS (AssertionConsumerService) URL from Step1 of the plugin under Identity Provider Tab.>"
index="1" />
</samlmd:SPSSODescriptor>
</samlmd:EntityDescriptor>
</MetadataProvider>
- In conf/saml-nameid.properties、コメントを解除してデフォルトに設定します 名前ID as メールアドレス このような。
idp.nameid.saml2.default=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
- In conf/saml-nameid-xml、shibboleth.SAML2NameIDGenerators を検索します。 shibboleth.SAML2AttributeSourcedGenerator Bean のコメントを解除し、他のすべての ref Bean をコメント化します。
<!-- SAML 2 NameID Generation -->
<util:list id="shibboleth.SAML2NameIDGenerators">
<!--<ref bean="shibboleth.SAML2TransientGenerator" /> -->
<!--<ref bean="shibboleth.SAML2PersistentGenerator" /> -->
<bean parent="shibboleth.SAML2AttributeSourcedGenerator"
p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
p:attributeSourceIds="#{ {'email'} }" />
</util:list>
- AttributeDefinition が定義されていることを確認してください。 conf/attribute-resolver.xml.
<!-- Note: AttributeDefinitionid must be same as what you provided in attributeSourceIds in conf/saml-nameid.xml -->
<resolver:AttributeDefinitionxsi:type="ad:Simple" id="email" sourceAttributeID="mail">
<resolver:Dependency ref="ldapConnector" />
<resolver:AttributeEncoderxsi:type="enc:SAML2String" name="email" friendlyName="email" />
</resolver:AttributeDefinition>
<resolver:DataConnector id="ldapConnector"
xsi:type="dc:LDAPDirectory"
ldapURL="%{idp.authn.LDAP.ldapURL}"
baseDN="%{idp.authn.LDAP.baseDN}"
principal="%{idp.authn.LDAP.bindDN}"
principalCredential="%{idp.authn.LDAP.bindDNCredential}">
<dc:FilterTemplate>
<!-- Define you User Search Filter here -->
<![CDATA[(&(objectclass=*) (cn=$requestContext.principalName)) ]]>
</dc:FilterTemplate>
<dc:ReturnAttributes>*</dc:ReturnAttributes>
</resolver:DataConnector>
- AttributeFilterPolicy が定義されていることを確認してください。 conf/属性フィルター.xml.
<afp:AttributeFilterPolicy id="ldapAttributes">
<afp:PolicyRequirementRulexsi:type="basic:ANY"/>
<afp:AttributeRuleattributeID="email">
<afp:PermitValueRulexsi:type="basic:ANY"/>
</afp:AttributeRule>
</afp:AttributeFilterPolicy>
- Shibboleth サーバーを再起動します。
- これらのエンドポイントは、ASP.NET SAMLミドルウェアで設定する必要があります。
| IDP エンティティ ID | https://<your_domain>/idp/shibboleth |
| 単一のログイン URL | https://<your_domain>/idp/profile/SAML2/Redirect/SSO |
| シングル ログアウト URL | https://<your_domain>/idp/shibboleth |
| X.509証明書 | Shibboleth サーバーの公開鍵証明書 |
- ASP.NET アプリケーションへの Shibboleth SSO ログインを実現するために、Shibboleth を SAML IdP (アイデンティティ プロバイダー) として正常に構成しました。
3. .NET アプリケーションで Shibboleth ID プロバイダー メタデータを構成する
- 以下を行うには、 新しい IDP を追加 新しい ID プロバイダーを構成するためのボタン。
- 下 プラグインの設定 タブ、選択 Shibboleth 表示されるリストから 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 プロバイダーを構成するためのボタン。
- 下 プラグインの設定 タブ、選択 Shibboleth 表示されるリストから 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 カスタム証明書を正常にアップロードして適用します。
関連記事
ご返答ありがとうございます。 すぐにご連絡させていただきます。
何か問題が発生しました。 もう一度質問を送信してください
