Руководство по настройке единого входа SAML в ASP.NET Core с использованием Shibboleth в качестве поставщика идентификации.
Обзор
Промежуточное ПО ASP.NET Core SAML для единого входа (SSO) дает возможность включить Единый вход SAML для ваших приложений ASP.NET Core. Используя единый вход (Single Sign-On), вы можете использовать только один пароль для доступа к вашим приложениям. Приложение ASP.NET Core и услуг. Наше промежуточное программное обеспечение совместимо со всеми Поставщики идентификации, соответствующие стандарту SAMLЗдесь мы шаг за шагом рассмотрим настройку единого входа (SSO) между пользователями. Ядро ASP.NET и шибболет принимая во внимание шибболет в качестве IdP.
Поддержка платформы: Промежуточное ПО SAML для ASP.NET Core поддерживает ASP.NET Core 2.0 и выше. Оно поддерживает все платформы ASP.NET Core, включая Windows, Linux и macOS.
- Суд
- Предприятие
Предварительные условия: загрузка и установка
- Версия .NET 5 и выше
- Версии .NET Core 2.1 и .NET Core 3.1
- . NET Framework
PM> NuGet\Install-Package miniOrange.SAML.SSO
> dotnet add package 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 add package 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".
- Выполните следующую команду в терминале Visual Studio, чтобы добавить его в качестве источника пакетов:
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, выполнив следующие действия:
- Откройте ваше .NET-приложение в Visual Studio, затем нажмите на Инструменты в верхней панели навигации и перейдите к Диспетчер пакетов NuGet → Управление пакетами NuGet для решения.
- Откроется новое окно; нажмите на него. значок передач рядом с выпадающим списком «Источник пакета».
- Откроется всплывающее окно; выберите Источники пакетов В левой панели навигации нажмите на значок плюса. (+) значок, введите имя В качестве источника пакета укажите путь к папке, куда вы поместили пакет NuGet. Источник поле, затем щелкните Обновление ПО и, наконец, нажмите OK Чтобы сохранить изменения, как показано на изображении.
- После закрытия всплывающего окна выберите недавно добавленный источник пакетов из списка. Источник пакета падать.
- Теперь нажмите на Вставить вкладка, поиск 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();
- Войти, чтобы http://portal.miniorange.com/ и перейдите в Скачать Вкладка. Там найдите приобретенный плагин и нажмите на него. Скачать плагин Чтобы скачать ZIP-файл плагина.
- Распакуйте загруженный zip-файл на свой компьютер и поместите файл пакета NuGet (.nupkg) в папку, например, "C:\miniOrangePackages".
- Выполните следующую команду в терминале Visual Studio, чтобы добавить его в качестве источника пакетов:
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, выполнив следующие действия:
- Откройте ваше .NET-приложение в Visual Studio, затем нажмите на Инструменты в верхней панели навигации и перейдите к Диспетчер пакетов NuGet → Управление пакетами NuGet для решения.
- Откроется новое окно; нажмите на него. значок передач рядом с выпадающим списком «Источник пакета».
- Откроется всплывающее окно; выберите Источники пакетов В левой панели навигации нажмите на значок плюса. (+) значок, введите имя В качестве источника пакета укажите путь к папке, куда вы поместили пакет NuGet. Источник поле, затем щелкните Обновление ПО и, наконец, нажмите OK Чтобы сохранить изменения, как показано на изображении.
- После закрытия всплывающего окна выберите недавно добавленный источник пакетов из списка. Источник пакета падать.
- Теперь нажмите на Вставить вкладка, поиск 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();
});
}
}
Шаги настройки
Пошаговое руководство по использованию ASP.NET Core SAML SSO с Shibboleth в качестве поставщика идентификации.
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. Предоставьте метаданные .NET-приложения поставщику идентификации Shibboleth.
Ниже описаны два способа получения метаданных SAML SP для настройки на стороне вашего поставщика идентификации.
A] Использование URL-адреса метаданных SAML или файла метаданных
- В Меню настроек плагина, искать Настройки поставщика услугНиже вы найдете URL-адрес метаданных, а также возможность загрузки метаданных SAML.
- Скопируйте URL-адрес метаданных или загрузите файл метаданных, чтобы настроить его на стороне вашего поставщика идентификации.
- Вы можете ознакомиться с приведенным ниже скриншотом:
B] Загрузка метаданных вручную
- Из издания Настройки поставщика услуг В этом разделе вы можете вручную скопировать метаданные поставщика услуг, например: Идентификатор сущности SP, URL-адрес ACS, URL-адрес единого выхода. и поделитесь им со своим поставщиком идентификационных данных для настройки.
- Вы можете ознакомиться с приведенным ниже скриншотом:
-
В файле conf/idp.properties раскомментируйте строку и установите значение 'idp.encryption.optional' в true.
например, idp.encryption.optional = true
- In conf/metadata-providers.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 Ваш e-mail как это.
idp.nameid.saml2.default=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
- In conf/saml-nameid-xmlНайдите shibboleth.SAML2NameIDGenerators. Раскомментируйте bean-компонент shibboleth.SAML2AttributeSourcedGenerator и закомментируйте все остальные 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/attribute-filter.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 | https://<your_domain>/idp/shibboleth |
| URL-адрес единого входа | https://<your_domain>/idp/profile/SAML2/Redirect/SSO |
| Единый URL-адрес выхода из системы | https://<your_domain>/idp/shibboleth |
| Сертификат Х.509 | Сертификат открытого ключа вашего сервера Shibboleth |
- Вы успешно настроили Shibboleth в качестве поставщика идентификации SAML (IdP) для обеспечения единого входа Shibboleth в ваше ASP.NET-приложение.
A] Использование URL-адреса метаданных SAML или файла метаданных
- В Меню настроек плагина, искать Настройки поставщика услугНиже вы найдете URL-адрес метаданных, а также возможность загрузки метаданных SAML.
- Скопируйте URL-адрес метаданных или загрузите файл метаданных, чтобы настроить его на стороне вашего поставщика идентификации.
- Вы можете ознакомиться с приведенным ниже скриншотом:
B] Загрузка метаданных вручную
- Из издания Настройки поставщика услуг В этом разделе вы можете вручную скопировать метаданные поставщика услуг, например: Идентификатор сущности SP, URL-адрес ACS, URL-адрес единого выхода.и поделитесь им со своим поставщиком идентификации для настройки.
- Вы также можете скачать сертификат SP, нажав на кнопку. Скачать сертификат SP и предоставьте его своему поставщику идентификационных данных, если это потребуется.
- Под Сертификат шифрования В этом разделе выберите соответствующий тип сертификата в соответствии с вашими потребностями.
- После выполнения вышеуказанных шагов нажмите на Сохранено применить конфигурацию.
- Вы можете ознакомиться с приведенным ниже скриншотом:
-
В файле conf/idp.properties раскомментируйте строку и установите значение 'idp.encryption.optional' в true.
например, idp.encryption.optional = true
- In conf/metadata-providers.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 Ваш e-mail как это.
idp.nameid.saml2.default=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
- In conf/saml-nameid-xmlНайдите shibboleth.SAML2NameIDGenerators. Раскомментируйте bean-компонент shibboleth.SAML2AttributeSourcedGenerator и закомментируйте все остальные 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/attribute-filter.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 | https://<your_domain>/idp/shibboleth |
| URL-адрес единого входа | https://<your_domain>/idp/profile/SAML2/Redirect/SSO |
| Единый URL-адрес выхода из системы | https://<your_domain>/idp/shibboleth |
| Сертификат Х.509 | Сертификат открытого ключа вашего сервера Shibboleth |
- Вы успешно настроили Shibboleth в качестве поставщика идентификации SAML (IdP) для обеспечения единого входа Shibboleth в ваше ASP.NET-приложение.
3. Настройка метаданных поставщика идентификации Shibboleth в приложении .NET
- Нажмите на Добавить нового IDP кнопка для настройки нового поставщика идентификации.
- Под Плагин Настройки вкладка, выберите шибболет в качестве поставщика идентификационных данных из представленного списка.
Ниже описаны два способа настройки метаданных поставщика идентификации SAML в промежуточном программном обеспечении.
A] Загрузите метаданные, используя кнопку «Загрузить метаданные IDP»:
- Если ваш поставщик идентификационных данных предоставил вам URL-адрес метаданных или файл метаданных (только в формате .xml), то вы можете просто настроить метаданные поставщика идентификационных данных в промежуточном ПО, используя следующий код: Загрузка метаданных IDP опцию.
- Скопируйте URL-адрес метаданных или загрузите файл метаданных, чтобы настроить его на стороне вашего поставщика идентификации.
- Вы можете ознакомиться с приведенным ниже скриншотом:
- Вы можете выбрать любой из вариантов в зависимости от доступного вам формата метаданных.
B] Настройте метаданные поставщика идентификации вручную:
- После настройки вашего Поставщик удостоверений, это предоставит вам Идентификатор сущности IDP, URL-адрес единого входа IDP и Сертификат SAML X509 поля соответственно.
- Нажмите Сохранено чтобы сохранить данные вашего IDP.
- Нажмите на Добавить нового IDP кнопка для настройки нового поставщика идентификации.
- Под Плагин Настройки вкладка, выберите шибболет в качестве поставщика идентификационных данных из представленного списка.
Ниже описаны два способа настройки метаданных поставщика идентификации SAML в промежуточном программном обеспечении.
A] Загрузите метаданные, используя кнопку «Загрузить метаданные IDP»:
- Если ваш поставщик идентификационных данных предоставил вам URL-адрес метаданных или файл метаданных (только в формате .xml), то вы можете просто настроить метаданные поставщика идентификационных данных в промежуточном ПО, используя следующий код: Загрузка метаданных IDP опцию.
- Скопируйте URL-адрес метаданных или загрузите файл метаданных, чтобы настроить его на стороне вашего поставщика идентификации.
- Вы можете ознакомиться с приведенным ниже скриншотом:
- Вы можете выбрать любой из вариантов в зависимости от доступного вам формата метаданных.
B] Настройте метаданные поставщика идентификации вручную:
- После настройки вашего Поставщик удостоверений, это предоставит вам Идентификатор сущности IDP, URL-адрес единого входа IDP и Сертификат SAML X509 поля соответственно.
- Нажмите Сохранено чтобы сохранить данные вашего IDP.
4. Тестирование SAML SSO
- После загрузки метаданных перейдите по ссылке. Настройки поставщика идентификации раздел. Наведите курсор на Выберите действия раскрывающийся список и нажмите на Тестовая конфигурация.
- На скриншоте ниже показан успешный результат. Нажмите на SSO интеграция для дальнейшего продолжения интеграции SSO.
- Если на стороне промежуточного программного обеспечения возникнет ошибка, вы увидите окно, похожее на приведенное ниже.
- Для устранения ошибки выполните следующие действия:
- Под Устранение неполадок Вкладка, включите переключатель, чтобы получать журналы плагина.
- После включения вы сможете получать журналы плагина, перейдя по адресу... Плагин Настройки вкладку и нажав на Тестовая конфигурация.
- Скачать журнальный файл из Устранение неполадок Нажмите вкладку, чтобы посмотреть, что пошло не так.
- Вы можете поделиться журнальный файл с нами в aspnetsupport@xecurify.com Наша команда свяжется с вами, чтобы решить вашу проблему.
- После загрузки метаданных перейдите по ссылке. Настройки поставщика идентификации раздел. Наведите курсор на Выберите действия раскрывающийся список и нажмите на Тестовая конфигурация.
- На скриншоте ниже показан успешный результат теста. Пожалуйста, нажмите на нажмите здесь. для завершения оставшихся шагов интеграции SSO.
- Если на стороне промежуточного программного обеспечения возникают ошибки, нажмите на кнопку. УСТРАНЕНИЕ НЕПОЛАДОК .
- Для устранения ошибки выполните следующие действия:
- На вкладке «Устранение неполадок» включите переключатель для получения журналов плагина и воспроизведите проблему.
- Загрузите файл журнала, нажав на кнопку. Загрузить файл журнала Нажмите кнопку, чтобы узнать, что пошло не так.
- Вы можете поделиться журнальный файл с нами в aspnetsupport@xecurify.com Наша команда свяжется с вами, чтобы решить вашу проблему.
5. Сопоставление атрибутов
- После проверки конфигурации сопоставьте атрибуты вашего приложения с атрибутами поставщика идентификации (IdP).
- В меню слева в miniOrange ASP.NET SAML SSO Middleware нажмите на Сопоставление атрибутов/ролей вкладка, как показано на изображении.
- Если вы хотите передать дополнительные атрибуты из вашего поставщика идентификации (IdP), введите имя атрибута и соответствующее значение атрибута в соответствующем поле. Пользовательское сопоставление атрибутов.
- Примечание: Все сопоставленные атрибуты будут сохранены в сессии, чтобы вы могли получить к ним доступ в своем приложении.
- После сопоставления атрибутов нажмите Сохранить сопоставление атрибутов для внесения изменений.
- После проверки конфигурации сопоставьте атрибуты вашего приложения с атрибутами поставщика идентификации (IdP).
- В меню слева в miniOrange ASP.NET SAML SSO Middleware нажмите на Сопоставление атрибутов/ролей вкладка, как показано на изображении.
- Составьте необходимую карту. атрибуты IdP (например, имя пользователя, адрес электронной почты, имя и фамилия), полученные в SAML-ответе, отображаются в соответствующих полях.
- ВниманиеВсе сопоставленные атрибуты будут сохранены в сессии, чтобы вы могли получить к ним доступ в своем приложении.
- После сопоставления атрибутов нажмите Сохранить сопоставление атрибутов для внесения изменений.
Пользовательское сопоставление атрибутов
- Если вы хотите передать дополнительные атрибуты из вашего поставщика идентификации (IdP), введите имя атрибута и соответствующее значение атрибута в соответствующем поле. Пользовательское сопоставление атрибутов.
- Из издания Значение атрибута (заявление) В выпадающем списке выберите одно из утверждений, полученных в результатах проверки конфигурации. Например: NameID.
- Эти утверждения соответствуют атрибутам, отправленным вашим поставщиком идентификационных данных (IdP).
- Эти утверждения соответствуют атрибутам, отправленным вашим поставщиком идентификационных данных (IdP).
- В имя атрибута В поле введите имя атрибута так, как вы хотите, чтобы он отображался или использовался в вашем .NET-приложении.
- Если вашему приложению требуется несколько атрибутов, вы можете добавить несколько сопоставлений, нажав на соответствующую кнопку. + .
- После определения всех необходимых сопоставлений нажмите на Сохранить сопоставление атрибутов для хранения конфигурации.
- Теперь плагин будет преобразовывать входящие данные SSO от вашего поставщика идентификации (IdP) в пользовательские имена атрибутов, определенные здесь.
Сопоставление ролей
- В Сопоставление ролей раздел, введите Название атрибута группы В точности так, как настроено в вашем поставщике идентификации для получения информации о группах пользователей.
- Введите Имя роли полученную от поставщика идентификационных данных информацию сопоставить с соответствующей информацией. Роль Ценность В поле «Значение роли» введите роли, определенные в вашем .NET-приложении.
- Например: сопоставьте группу IdP Group1 или Group10, полученную в атрибуте UserGroups, с соответствующей ролью, настроенной в вашем .NET-приложении.
- После добавления необходимых сопоставлений нажмите на Сохранить сопоставление ролей Для успешного сохранения конфигурации.
Ограничение домена
- Эта функция позволяет ограничить доступ пользователей к сайту на основе домена, указанного в атрибуте «Электронная почта».
- В Атрибут электронной почты В это поле введите имя атрибута, содержащего адрес электронной почты пользователя, полученный от вашего поставщика идентификационных данных (IdP).
- В Имя домена В поле введите домены, которые вы хотите разрешить или ограничить, разделяя их запятыми, если добавляете несколько доменов.
- Включите Ограничить переключатель В зависимости от ваших требований к настройке доступа по черному или белому списку.
- После завершения настройки нажмите на Сохранить домены Чтобы успешно сохранить настройки.
6. Интеграционный код
- Эти шаги позволяют получить информацию о пользователях SSO в вашем приложении в виде пользовательских утверждений.
- Вы также можете посмотреть установка тура чтобы понять, как будет работать интеграция SSO в вашем приложении ASP.NET Middleware.
- Просто скопируйте и вставьте этот фрагмент кода туда, где вам нужно получить доступ к атрибутам пользователя.
- Примечание: В пробной версии промежуточного ПО данные аутентифицированного пользователя хранятся в пользовательских утверждениях с использованием аутентификации по умолчанию на основе файлов cookie .NET. Поддержка установки пользовательских утверждений с использованием аутентификации на основе заголовков, сессий и 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. Настройки входа в систему
- Наведите указатель мыши на Выберите действия и нажмите на Скопировать ссылку SSO.
- Используйте следующий URL-адрес в качестве ссылки в приложении, из которого вы хотите выполнить единый вход (SSO):
https://<asp.net-middleware-base-url>/?ssoaction=login
- Например, вы можете использовать его следующим образом:
<a href="https://<asp.net-middleware-base-url>/?ssoaction=login">Log
in</a>
- Наведите указатель мыши на Выберите действия и нажмите на Скопировать ссылку SSO.
- Используйте следующий URL-адрес в качестве ссылки в приложении, из которого вы хотите выполнить единый вход (SSO):
https://<asp.net-middleware-base-url>/?ssoaction=login
- Например, вы можете использовать его следующим образом:
<a href="https://<asp.net-middleware-base-url>/?ssoaction=login">Log
in</a>
8. Настройки выхода из системы
- Используйте следующий URL-адрес в качестве ссылки на ваше приложение, из которого вы хотите выполнить SLO:
https://<asp.net-middleware-base-url>/?ssoaction=logout
- Например, вы можете использовать его следующим образом:
<a href="https://<asp.net-middleware-base-url>/?ssoaction=logout">Log
out</a>
- Используйте следующий URL-адрес в качестве ссылки на ваше приложение, из которого вы хотите выполнить SLO:
https://<asp.net-middleware-base-url>/?ssoaction=logout
- Например, вы можете использовать его следующим образом:
<a href="https://<asp.net-middleware-base-url>/?ssoaction=logout">Log
out</a>
Дополнительные настройки
Чтобы применить расширенные настройки, перейдите в раздел Дополнительные настройки меню.
Автоматическое перенаправление на IdP
- Включите Автоматическое перенаправление на IdP Кнопка-переключатель для автоматического перенаправления пользователей на настроенный поставщик идентификации во время входа в систему.
- Выберите поставщика идентификации (IDP), с которого вы хотите перенаправлять пользователей по указанному URL-адресу. IDP по умолчанию падать.
- Выберите Тип перенаправления as ограниченный or Общая в зависимости от вашего требования.
- При необходимости введите URL-адреса, которые следует исключить из перенаправления, в поле «Исключить URL-адреса», разделяя их запятыми.
- Нажмите на Сохранено для успешного сохранения конфигурации.
Отключить панель администратора
- Включите Отключить панель администратора Переключите ползунок, чтобы скрыть панель администратора miniOrange, и нажмите «Сохранить», чтобы применить изменения.
Справочная информация
- Перейдите в раздел «Информация о сертификате» и выберите необходимый тип сертификата (Сертификат подписи или сертификат шифрования).
- Нажмите на Восстановить сертификат если вы хотите сгенерировать новый сертификат.
- Затем нажмите Применить новый сертификат для применения обновленного сертификата.
Загрузить пользовательский сертификат
- Перейдите в Загрузить пользовательский сертификат в соответствующем разделе выберите необходимый тип сертификата (Сертификат подписи или сертификат шифрования).
- Нажмите на Выберите Файл загрузить Открытый ключ (.crt) и Закрытый ключ (.pfx) файлы и введите Пароль закрытого ключа в предоставленном поле.
- После ввода необходимых данных нажмите на Сохранено для успешной загрузки и применения пользовательского сертификата.
Статьи по теме
Спасибо за ваш ответ. Мы свяжемся с вами в ближайшее время.
Что-то пошло не так. Пожалуйста, отправьте запрос ещё раз.
