Руководство по настройке единого входа SAML в ASP.NET Core с использованием AzureB2C в качестве поставщика идентификации.
Обзор
Промежуточное ПО ASP.NET Core SAML для единого входа (SSO) дает возможность включить Единый вход SAML для ваших приложений ASP.NET Core. Используя единый вход (Single Sign-On), вы можете использовать только один пароль для доступа к вашим приложениям. Приложение ASP.NET Core и услуг. Наше промежуточное программное обеспечение совместимо со всеми Поставщики идентификации, соответствующие стандарту SAMLЗдесь мы шаг за шагом рассмотрим настройку единого входа (SSO) между пользователями. Ядро ASP.NET и AzureB2C принимая во внимание AzureB2C в качестве 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();
});
}
}
Шаги настройки
Пошаговое руководство по настройке единого входа SAML в ASP.NET Core с использованием AzureB2C в качестве поставщика удостоверений.
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 поставщику идентификации AzureB2C.
Ниже описаны два способа получения метаданных SAML SP для настройки на стороне вашего поставщика идентификации.
A] Использование URL-адреса метаданных SAML или файла метаданных
- В Меню настроек плагина, искать Настройки поставщика услугНиже вы найдете URL-адрес метаданных, а также возможность загрузки метаданных SAML.
- Скопируйте URL-адрес метаданных или загрузите файл метаданных, чтобы настроить его на стороне вашего поставщика идентификации.
- Вы можете ознакомиться с приведенным ниже скриншотом:
B] Загрузка метаданных вручную
- Из издания Настройки поставщика услуг В этом разделе вы можете вручную скопировать метаданные поставщика услуг, например: Идентификатор сущности SP, URL-адрес ACS, URL-адрес единого выхода. и поделитесь им со своим поставщиком идентификационных данных для настройки.
- Вы можете ознакомиться с приведенным ниже скриншотом:
Зарегистрируйте заявку на использование системы управления идентификацией (Identity Experience Framework).
- Войти в Портал Azure B2C.
- В клиенте Azure AD B2C выберите Регистрация приложений, А затем выберите Новая регистрация.
- Для пакетов Имя, введите IdentityExperienceFramework.
- Под Поддерживаемые типы учетных записей, наведите на Учетные записи только в этом организационном каталоге.
- Под URI перенаправленияВыберите «Веб», а затем введите «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.
- Выберите Добавить область действияЗатем выберите «Сохранить и продолжить» и примите URI идентификатора приложения по умолчанию.
- Введите следующие значения, чтобы создать область действия, разрешающую выполнение пользовательских политик в вашем клиенте Azure AD B2C:
- Название области: пользовательская_имперсонализация
- Отображаемое имя согласия администратора: Доступ к IdentityExperienceFramework
- Описание согласия администратораРазрешить приложению доступ к IdentityExperienceFramework от имени вошедшего в систему пользователя.
- Выберите Добавить область действия.
Зарегистрируйте приложение ProxyIdentityExperienceFramework
- Выберите Регистрация приложений, А затем выберите Новая регистрация.
- Для пакетов Имя, введите ProxyIdentityExperienceFramework.
- Под Поддерживаемые типы учетных записей, наведите на Учетные записи только в этом организационном каталоге.
- Под URI перенаправления, используйте раскрывающийся список для выбора Публичный клиент/нативный (мобильные и настольные устройства).
- Для пакетов URI перенаправления, введите myapp://auth.
- Под Разрешения...Установите флажок «Предоставить администратору согласие на использование разрешений openid и offline_access».
- Выберите Зарегистрироваться на вебинар на украинском можно .
- Запишите ID приложения (клиента) для использования на более позднем этапе.
Далее укажите, что приложение следует рассматривать как публичный клиент.
- Под Управление, наведите на Аутентификация.
- Под Дополнительные параметры, включить Разрешить общедоступные клиентские потоки (Выберите «Да»).
- Выберите Сохранено.
Теперь предоставьте разрешения для области действия API, которую вы ранее предоставили при регистрации IdentityExperienceFramework.
- Под Управление, наведите на Разрешения API.
- Под Настроенные разрешения, наведите на Добавить разрешение.
- Выберите Мои API вкладку, затем выберите IdentityExperienceFramework Приложение.
- Под Разрешение, выберите пользователь_имперсонация область действия, которую вы определили ранее.
- Выберите Добавить разрешенияКак указано в инструкции, подождите несколько минут, прежде чем переходить к следующему шагу.
- Выберите Предоставьте согласие администратора для (имя вашего арендатора).
- Выберите свою текущую учетную запись администратора или войдите в систему с помощью учетной записи в вашем клиенте Azure AD B2C, которой назначена как минимум роль администратора облачных приложений.
- Выберите Да.
- Выберите обновление, а затем убедитесь, что в разделе отображается «Предоставлено для ...». Статус Что касается областей действия - offline_access, openid и user_impersonation. Для распространения разрешений может потребоваться несколько минут.
Зарегистрируйте приложение ASP.NET
- Выберите «Регистрация приложений», а затем «Новая регистрация».
- Введите название для приложения, например: WP-app.
- Под Поддерживаемые типы учетных записей, наведите на Учетные записи в любом организационном каталоге или любом поставщике удостоверений. Для аутентификации пользователей с помощью Azure AD B2C..
- Под URI перенаправленияВыберите «Веб», а затем введите URL-адрес ACS из... Настройки поставщика услуг вкладка плагина miniOrange ASP.NET SAML, как указано в Шаг 2B выше.
- Выберите Зарегистрироваться на вебинар на украинском можно .
- Под Управление, нажмите на Предоставьте API.
- Нажмите на Поставьте для URI идентификатора приложения, а затем нажмите СохраненоПринимая значение по умолчанию.
- После сохранения скопируйте URI идентификатора приложения и перейдите к Метаданные поставщика услуг вкладка плагина.
- Вставьте скопированное значение под Идентификатор субъекта-участника / эмитент поле, доступное на этой вкладке.
- Нажмите на Сохранить.
Создание политик единого входа (SSO)
-
На портале Azure B2C перейдите в раздел «Обзор» вашего клиента B2C и укажите имя вашего клиента.
ЗАМЕТКАЕсли ваш домен B2C — b2ctest.onmicrosoft.com, то имя вашего клиента — b2ctest.
- Введите Имя арендатора Azure B2C Ниже указаны идентификаторы приложений IdentityExperienceFramework и ProxyIdentityExperienceFramework, зарегистрированные на предыдущих этапах.
- Нажмите на Создание политик Azure B2C кнопку для загрузки политик единого входа.
- Распакуйте загруженный zip-архив. Он содержит файлы политик и сертификат (.pfx), которые вам понадобятся на следующих шагах.
Настройка и загрузка сертификатов
ВниманиеНа следующем этапе, если «Структура опыта идентичности» Если ссылка неактивна, возможно, причина в отсутствии активной подписки Azure AD B2C для данного клиента. Подробную информацию о подписке Azure AD B2C можно найти здесь. здесь Вы можете создать нового арендатора, выполнив следующие шаги. здесь.
- Войдите в Лазурный портал и перейдите к своему клиенту Azure AD B2C.
- Под Политика, наведите на Структура опыта идентичности , а затем Ключи политики.
- Выберите Добавить, А затем выберите Параметры > Загрузить.
- Введите имя как SamlIdpCert. Префикс B2C_1A_ будет автоматически добавлен к имени вашего ключа.
- С помощью элемента управления загрузкой файла загрузите сертификат, сгенерированный на предыдущих шагах, вместе с политиками SSO (tenantname-cert.pfx).
- Введите пароль сертификата в качестве имени вашего клиента и нажмите «Создать». Например, если имя вашего клиента — xyzb2c.onmicrosoft.com, введите пароль как xyzb2c.
- Вы должны увидеть новый ключ политики с именем B2C_1A_SamlIdpCert.
Создайте ключ подписи.
- На странице обзора вашего клиента Azure AD B2C в разделе Политика, наведите на Структура опыта идентичности.
- Выберите Ключи политики и затем выберите Добавить.
- Для пакетов меблировки, выберите «Сгенерировать».
- In Имя, введите TokenSigningKeyContainer.
- Для пакетов Тип ключа, выберите RSA.
- Для пакетов Использование ключаВыберите «Подпись».
- Выберите Создавай.
Создайте ключ шифрования
- На странице обзора вашего клиента Azure AD B2C в разделе Политика, наведите на Структура опыта идентичности.
- Выберите Ключи политики и затем выберите Добавить.
- Для пакетов меблировки, выберите «Сгенерировать».
- In Имя, введите TokenEncryptionKeyContainer.
- Для пакетов Тип ключа, выберите RSA.
- Для пакетов Использование ключаВыберите «Шифрование».
- Выберите Создавай.
Загрузите правила
- Выберите Структура опыта идентичности пункт меню в вашем клиенте B2C на портале Azure.
- Выберите Загрузить пользовательскую политику.
- Загрузите файлы политики, загруженные на предыдущих этапах, в следующем порядке:
- TrustFrameworkBase.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- ProfileEdit.xml
- PasswordReset.xml
- SignUpOrSigninSAML.xml
- По мере загрузки файлов Azure добавляет к каждому из них префикс B2C_1A_.
Вы успешно настроили Azure B2C в качестве поставщика идентификации SAML (SAML IDP) для реализации единого входа (SSO) в ASP.NET.
A] Использование URL-адреса метаданных SAML или файла метаданных
- В Меню настроек плагина, искать Настройки поставщика услугНиже вы найдете URL-адрес метаданных, а также возможность загрузки метаданных SAML.
- Скопируйте URL-адрес метаданных или загрузите файл метаданных, чтобы настроить его на стороне вашего поставщика идентификации.
- Вы можете ознакомиться с приведенным ниже скриншотом:
B] Загрузка метаданных вручную
- Из издания Настройки поставщика услуг В этом разделе вы можете вручную скопировать метаданные поставщика услуг, например: Идентификатор сущности SP, URL-адрес ACS, URL-адрес единого выхода.и поделитесь им со своим поставщиком идентификации для настройки.
- Вы также можете скачать сертификат SP, нажав на кнопку. Скачать сертификат SP и предоставьте его своему поставщику идентификационных данных, если это потребуется.
- Под Сертификат шифрования В этом разделе выберите соответствующий тип сертификата в соответствии с вашими потребностями.
- После выполнения вышеуказанных шагов нажмите на Сохранено применить конфигурацию.
- Вы можете ознакомиться с приведенным ниже скриншотом:
Зарегистрируйте заявку на использование системы управления идентификацией (Identity Experience Framework).
- Войти в Портал Azure B2C.
- В клиенте Azure AD B2C выберите Регистрация приложений, А затем выберите Новая регистрация.
- Для пакетов Имя, введите IdentityExperienceFramework.
- Под Поддерживаемые типы учетных записей, наведите на Учетные записи только в этом организационном каталоге.
- Под URI перенаправленияВыберите «Веб», а затем введите «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.
- Выберите Добавить область действияЗатем выберите «Сохранить и продолжить» и примите URI идентификатора приложения по умолчанию.
- Введите следующие значения, чтобы создать область действия, разрешающую выполнение пользовательских политик в вашем клиенте Azure AD B2C:
- Название области: пользовательская_имперсонализация
- Отображаемое имя согласия администратора: Доступ к IdentityExperienceFramework
- Описание согласия администратораРазрешить приложению доступ к IdentityExperienceFramework от имени вошедшего в систему пользователя.
- Выберите Добавить область действия.
Зарегистрируйте приложение ProxyIdentityExperienceFramework
- Выберите Регистрация приложений, А затем выберите Новая регистрация.
- Для пакетов Имя, введите ProxyIdentityExperienceFramework.
- Под Поддерживаемые типы учетных записей, наведите на Учетные записи только в этом организационном каталоге.
- Под URI перенаправления, используйте раскрывающийся список для выбора Публичный клиент/нативный (мобильные и настольные устройства).
- Для пакетов URI перенаправления, введите myapp://auth.
- Под Разрешения...Установите флажок «Предоставить администратору согласие на использование разрешений openid и offline_access».
- Выберите Зарегистрироваться на вебинар на украинском можно .
- Запишите ID приложения (клиента) для использования на более позднем этапе.
Далее укажите, что приложение следует рассматривать как публичный клиент.
- Под Управление, наведите на Аутентификация.
- Под Дополнительные параметры, включить Разрешить общедоступные клиентские потоки (Выберите «Да»).
- Выберите Сохранено.
Теперь предоставьте разрешения для области действия API, которую вы ранее предоставили при регистрации IdentityExperienceFramework.
- Под Управление, наведите на Разрешения API.
- Под Настроенные разрешения, наведите на Добавить разрешение.
- Выберите Мои API вкладку, затем выберите IdentityExperienceFramework Приложение.
- Под Разрешение, выберите пользователь_имперсонация область действия, которую вы определили ранее.
- Выберите Добавить разрешенияКак указано в инструкции, подождите несколько минут, прежде чем переходить к следующему шагу.
- Выберите Предоставьте согласие администратора для (имя вашего арендатора).
- Выберите свою текущую учетную запись администратора или войдите в систему с помощью учетной записи в вашем клиенте Azure AD B2C, которой назначена как минимум роль администратора облачных приложений.
- Выберите Да.
- Выберите обновление, а затем убедитесь, что в разделе отображается «Предоставлено для ...». Статус Что касается областей действия - offline_access, openid и user_impersonation. Для распространения разрешений может потребоваться несколько минут.
Зарегистрируйте приложение ASP.NET
- Выберите «Регистрация приложений», а затем «Новая регистрация».
- Введите название для приложения, например: WP-app.
- Под Поддерживаемые типы учетных записей, наведите на Учетные записи в любом организационном каталоге или любом поставщике удостоверений. Для аутентификации пользователей с помощью Azure AD B2C..
- Под URI перенаправленияВыберите «Веб», а затем введите URL-адрес ACS из... Настройки поставщика услуг вкладка плагина miniOrange ASP.NET SAML, как указано в Шаг 2B выше.
- Выберите Зарегистрироваться на вебинар на украинском можно .
- Под Управление, нажмите на Предоставьте API.
- Нажмите на Поставьте для URI идентификатора приложения, а затем нажмите СохраненоПринимая значение по умолчанию.
- После сохранения скопируйте URI идентификатора приложения и перейдите к Метаданные поставщика услуг вкладка плагина.
- Вставьте скопированное значение под Идентификатор субъекта-участника / эмитент поле, доступное на этой вкладке.
- Нажмите на Сохранить.
Создание политик единого входа (SSO)
-
На портале Azure B2C перейдите в раздел «Обзор» вашего клиента B2C и укажите имя вашего клиента.
ЗАМЕТКАЕсли ваш домен B2C — b2ctest.onmicrosoft.com, то имя вашего клиента — b2ctest.
- Введите Имя арендатора Azure B2C Ниже указаны идентификаторы приложений IdentityExperienceFramework и ProxyIdentityExperienceFramework, зарегистрированные на предыдущих этапах.
- Нажмите на Создание политик Azure B2C кнопку для загрузки политик единого входа.
- Распакуйте загруженный zip-архив. Он содержит файлы политик и сертификат (.pfx), которые вам понадобятся на следующих шагах.
Настройка и загрузка сертификатов
ВниманиеНа следующем этапе, если «Структура опыта идентичности» Если ссылка неактивна, возможно, причина в отсутствии активной подписки Azure AD B2C для данного клиента. Подробную информацию о подписке Azure AD B2C можно найти здесь. здесь Вы можете создать нового арендатора, выполнив следующие шаги. здесь.
- Войдите в Лазурный портал и перейдите к своему клиенту Azure AD B2C.
- Под Политика, наведите на Структура опыта идентичности , а затем Ключи политики.
- Выберите Добавить, А затем выберите Параметры > Загрузить.
- Введите имя как SamlIdpCert. Префикс B2C_1A_ будет автоматически добавлен к имени вашего ключа.
- С помощью элемента управления загрузкой файла загрузите сертификат, сгенерированный на предыдущих шагах, вместе с политиками SSO (tenantname-cert.pfx).
- Введите пароль сертификата в качестве имени вашего клиента и нажмите «Создать». Например, если имя вашего клиента — xyzb2c.onmicrosoft.com, введите пароль как xyzb2c.
- Вы должны увидеть новый ключ политики с именем B2C_1A_SamlIdpCert.
Создайте ключ подписи.
- На странице обзора вашего клиента Azure AD B2C в разделе Политика, наведите на Структура опыта идентичности.
- Выберите Ключи политики и затем выберите Добавить.
- Для пакетов меблировки, выберите «Сгенерировать».
- In Имя, введите TokenSigningKeyContainer.
- Для пакетов Тип ключа, выберите RSA.
- Для пакетов Использование ключаВыберите «Подпись».
- Выберите Создавай.
Создайте ключ шифрования
- На странице обзора вашего клиента Azure AD B2C в разделе Политика, наведите на Структура опыта идентичности.
- Выберите Ключи политики и затем выберите Добавить.
- Для пакетов меблировки, выберите «Сгенерировать».
- In Имя, введите TokenEncryptionKeyContainer.
- Для пакетов Тип ключа, выберите RSA.
- Для пакетов Использование ключаВыберите «Шифрование».
- Выберите Создавай.
Загрузите правила
- Выберите Структура опыта идентичности пункт меню в вашем клиенте B2C на портале Azure.
- Выберите Загрузить пользовательскую политику.
- Загрузите файлы политики, загруженные на предыдущих этапах, в следующем порядке:
- TrustFrameworkBase.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- ProfileEdit.xml
- PasswordReset.xml
- SignUpOrSigninSAML.xml
- По мере загрузки файлов Azure добавляет к каждому из них префикс B2C_1A_.
Вы успешно настроили Azure B2C в качестве поставщика идентификации SAML (SAML IDP) для реализации единого входа (SSO) в ASP.NET.
3. Настройка метаданных поставщика удостоверений AzureB2C в приложении .NET
- Нажмите на Добавить нового IDP кнопка для настройки нового поставщика идентификации.
- Под Плагин Настройки вкладка, выберите AzureB2C в качестве поставщика идентификационных данных из представленного списка.
Ниже описаны два способа настройки метаданных поставщика идентификации SAML в промежуточном программном обеспечении.
A] Загрузите метаданные, используя кнопку «Загрузить метаданные IDP»:
- Если ваш поставщик идентификационных данных предоставил вам URL-адрес метаданных или файл метаданных (только в формате .xml), то вы можете просто настроить метаданные поставщика идентификационных данных в промежуточном ПО, используя следующий код: Загрузка метаданных IDP опцию.
- Скопируйте URL-адрес метаданных или загрузите файл метаданных, чтобы настроить его на стороне вашего поставщика идентификации.
- Вы можете ознакомиться с приведенным ниже скриншотом:
- Вы можете выбрать любой из вариантов в зависимости от доступного вам формата метаданных.
B] Настройте метаданные поставщика идентификации вручную:
- После настройки вашего Поставщик удостоверений, это предоставит вам Идентификатор сущности IDP, URL-адрес единого входа IDP и Сертификат SAML X509 поля соответственно.
- Нажмите Сохранено чтобы сохранить данные вашего IDP.
- Нажмите на Добавить нового IDP кнопка для настройки нового поставщика идентификации.
- Под Плагин Настройки вкладка, выберите AzureB2C в качестве поставщика идентификационных данных из представленного списка.
Ниже описаны два способа настройки метаданных поставщика идентификации 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) файлы и введите Пароль закрытого ключа в предоставленном поле.
- После ввода необходимых данных нажмите на Сохранено для успешной загрузки и применения пользовательского сертификата.
Статьи по теме
Спасибо за ваш ответ. Мы свяжемся с вами в ближайшее время.
Что-то пошло не так. Пожалуйста, отправьте запрос ещё раз.
