Guia para configurar o SSO SAML do ASP.NET Core usando o Azure B2C como provedor de identidade (IdP).
Visão geral
Middleware de logon único (SSO) SAML do ASP.NET Core dá a capacidade de habilitar Logon único SAML para seus aplicativos ASP.NET Core. Usando o Single Sign-On, você pode usar apenas uma senha para acessar seu Aplicação principal ASP.NET e serviços. Nosso middleware é compatível com todos os Provedores de identidade compatíveis com SAML. Aqui, veremos um guia passo a passo para configurar o Single Sign-On (SSO) entre ASP.NET Core e AzureB2C considerando AzureB2C como IdP.
Suporte de plataforma: O middleware SAML do ASP.NET Core é compatível com o ASP.NET Core 2.0 e versões superiores. Ele suporta todas as plataformas ASP.NET Core, incluindo Windows, Linux e macOS.
- Trial
- Empreendimento
Pré-requisitos: Download e instalação
- Versão .NET 5 e superior
- Versão .NET Core 2.1 e .NET Core 3.1
- Framework .NET
PM> NuGet\Install-Package miniOrange.SAML.SSO
> dotnet adicionar pacote miniOrange.SAML.SSO
Observação: Para integrar o middleware miniOrange ASP.NET SAML SSO em seu aplicativo, você precisará adicionar os namespaces, serviços e middleware abaixo em seu projeto. Abaixo está um exemplo de implementação para referência.
Inclua apenas a seção destacada abaixo no Programa.cs arquivo de seu aplicativo.
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 adicionar pacote miniOrange.SAML.SSO
Observação: Para integrar o middleware miniOrange ASP.NET SAML SSO em sua aplicação, você precisará adicionar os namespaces, serviços e middlewares abaixo ao seu projeto. Veja um exemplo a seguir.
Inclua apenas a seção destacada abaixo no Programa.cs arquivo de seu aplicativo.
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();
});
}
}
Pré-requisitos: Download e instalação
- Versão .NET 5 e superior
- Versão .NET Core 2.1 e .NET Core 3.1
- Framework .NET
- Entre para http://portal.miniorange.com/ e navegue para o Downloads guia. A partir daí, localize o plugin que você comprou e clique em Baixe Plugin Para baixar o arquivo zip do plugin.
- Extraia o arquivo zip baixado em seu computador e coloque o pacote NuGet (arquivo .nupkg) em uma pasta como "C:\miniOrangePackages".
- Execute o seguinte comando no terminal do Visual Studio para adicioná-lo como uma fonte de pacote:
dotnet nuget add source C:\miniOrangePackages--name miniOrangePackage
- Abra seu projeto no terminal:
cd C:\Path\To\YourProject
- Instale o pacote em seu projeto usando o comando abaixo:
dotnet add package miniOrange.SAML.SSO --source miniOrangePackage
OR
- Após colocar o pacote NuGet (arquivo .nupkg) em uma pasta local, em vez de usar o terminal, você também pode instalá-lo usando o Visual Studio seguindo os passos abaixo:
- Abra seu aplicativo .NET no Visual Studio e clique em Ferramentas na barra de navegação superior e navegue até Gerenciador de Pacotes NuGet → Gerenciar Pacotes NuGet para a Solução.
- Uma nova janela será aberta; clique em ícone de engrenagem Ao lado do menu suspenso Origem do pacote.
- Uma janela pop-up será aberta; selecione Fontes de Pacotes No painel de navegação à esquerda, clique no sinal de mais (+). (+) ícone, insira um nome Para a origem do pacote, forneça o caminho da pasta onde você colocou o pacote NuGet. fonte campo e clique em Atualizar e, finalmente, clique em OK Para salvar as alterações, conforme mostrado na imagem.
- Após fechar a janela pop-up, selecione a fonte do pacote recém-adicionada na lista. Fonte do pacote suspenso.
- Agora, clique no botão Explorar guia, pesquise por miniOrange.SAML.SSOSelecione o pacote nos resultados e clique em Instalar.
- Observação: Para integrar o middleware miniOrange ASP.NET SAML SSO em seu aplicativo, você precisará adicionar os namespaces, serviços e middleware abaixo em seu projeto. Abaixo está um exemplo de implementação para referência.
Inclua apenas a seção destacada abaixo no Programa.cs arquivo de seu aplicativo.
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();
- Entre para http://portal.miniorange.com/ e navegue para o Downloads guia. A partir daí, localize o plugin que você comprou e clique em Baixe Plugin Para baixar o arquivo zip do plugin.
- Extraia o arquivo zip baixado em seu computador e coloque o pacote NuGet (arquivo .nupkg) em uma pasta como "C:\miniOrangePackages".
- Execute o seguinte comando no terminal do Visual Studio para adicioná-lo como uma fonte de pacote:
dotnet nuget add source C:\miniOrangePackages--name miniOrangePackage
- Abra seu projeto no terminal:
cd C:\Path\To\YourProject
- Instale o pacote em seu projeto usando o comando abaixo:
dotnet add package miniOrange.SAML.SSO --source miniOrangePackage
OR
- Após colocar o pacote NuGet (arquivo .nupkg) em uma pasta local, em vez de usar o terminal, você também pode instalá-lo usando o Visual Studio seguindo os passos abaixo:
- Abra seu aplicativo .NET no Visual Studio e clique em Ferramentas na barra de navegação superior e navegue até Gerenciador de Pacotes NuGet → Gerenciar Pacotes NuGet para a Solução.
- Uma nova janela será aberta; clique em ícone de engrenagem Ao lado do menu suspenso Origem do pacote.
- Uma janela pop-up será aberta; selecione Fontes de Pacotes No painel de navegação à esquerda, clique no sinal de mais (+). (+) ícone, insira um nome Para a origem do pacote, forneça o caminho da pasta onde você colocou o pacote NuGet. fonte campo e clique em Atualizar e, finalmente, clique em OK Para salvar as alterações, conforme mostrado na imagem.
- Após fechar a janela pop-up, selecione a fonte do pacote recém-adicionada na lista. Fonte do pacote suspenso.
- Agora, clique no botão Explorar guia, pesquise por miniOrange.SAML.SSOSelecione o pacote nos resultados e clique em Instalar.
- Observação: Para integrar o middleware miniOrange ASP.NET SAML SSO em seu aplicativo, você precisará adicionar os namespaces, serviços e middleware abaixo em seu projeto. Abaixo está um exemplo de implementação para referência.
Inclua apenas a seção destacada abaixo no Programa.cs arquivo de seu aplicativo.
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();
});
}
}
Etapas de configuração
Guia passo a passo para SSO SAML em ASP.NET Core usando o Azure B2C como provedor de identidade.
1. Acesse o painel do plugin .NET SAML
- Após a integração, abra seu navegador e navegue até o painel do conector com o URL abaixo:
http(s)<your-dotnet-application-base-url>?ssoaction=config
- Se a página de registro ou de login aparecer, você adicionou com sucesso o middleware miniOrange SAML SSO ao seu aplicativo.
- Registre-se ou faça login com sua conta clicando em Registrar-se botão para configurar o middleware.
- Após o registro bem-sucedido, você receberá uma chave de licença de teste no seu endereço de e-mail registrado.
- Para ativar o middleware, você pode:
- Introduzir o chave de licença recebido por e-mail no campo de entrada fornecido.
- Carregue o arquivo de licença que você baixou clicando em Clique aqui botão.
OR
- Em seguida, marque a caixa “Li as condições acima e desejo ativar o middleware” e clique no botão Ativar licença botão.
- Após a integração, abra seu navegador e navegue até o painel do conector com o URL abaixo:
http(s)<your-dotnet-application-base-url>?ssoaction=config
- Se a página de login aparecer, significa que você adicionou com sucesso o middleware miniOrange SAML SSO à sua aplicação.
- Faça login com sua conta miniOrange licenciada para configurar o middleware.
- Após o login, o Configuração da Conta O painel de controle será aberto. Insira a chave de licença para ativar o plugin, que você receberá após fazer login. portal.miniorange.com e navegando para Gerenciar licença → Chaves de licença.
- Em seguida, marque a caixa. "Li as duas condições acima e desejo ativar o plugin.", e clique no botão Ativar licença botão.
2. Fornecer metadados de aplicativos .NET ao provedor de identidade do Azure B2C
Abaixo, detalhamos duas maneiras de obter os metadados do provedor de serviços SAML para configurar em seu provedor de identidade.
A] Usando URL de metadados SAML ou arquivo de metadados
- De acordo com o relatório Menu de configurações do plugin, olhe para Configurações do provedor de serviços. Abaixo, você pode encontrar o URL dos metadados, bem como a opção para baixar os metadados SAML.
- Copie o URL dos metadados ou baixe o arquivo de metadados para configurá-lo no seu provedor de identidade.
- Você pode consultar a captura de tela abaixo:
B] Carregando metadados manualmente
- De Configurações do provedor de serviços seção, você pode copiar manualmente os metadados do provedor de serviços como ID da entidade SP, URL do ACS, URL de logout único e compartilhe-o com seu provedor de identidade para configuração.
- Você pode consultar a captura de tela abaixo:
Registre o aplicativo Identity Experience Framework
- Logar em Portal B2C do Azure.
- No locatário do Azure AD B2C, selecione Registros de aplicativosE, em seguida, selecione Novo registro.
- Para Nome, digite IdentityExperienceFramework.
- Debaixo Tipos de conta suportados, selecione Contas somente neste diretório organizacional.
- Debaixo URI de redirecionamentoSelecione Web e, em seguida, insira "https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com", onde your-tenant-name é o nome de domínio do seu locatário do Azure AD B2C.
ObservaçãoNa etapa seguinte, se o 'Permissões' Se a seção não estiver visível, pode ser que você não tenha uma assinatura ativa do AzureAD B2C para esse locatário. Você pode encontrar os detalhes sobre a assinatura do AzureAD B2C aqui. e você pode criar um novo inquilino seguindo os passos aqui..
- Debaixo Permissões, Selecione o Conceder consentimento de administrador para permissões openid e offline_access Caixa de seleção.
- Clique em Registrar-se.
- Grave o ID do aplicativo (cliente) para uso em uma etapa posterior.
Registre o aplicativo Identity Experience Framework
- Debaixo Gerenciar, selecione Expor uma API.
- Selecionar Adicionar um escopo, selecione Salvar e continue para aceitar o URI do ID do aplicativo padrão.
- Insira os seguintes valores para criar um escopo que permita a execução de políticas personalizadas no seu locatário do Azure AD B2C:
- Nome do escopo: personificação_do_usuário
- Nome de exibição do consentimento do administrador: Acessar o IdentityExperienceFramework
- Descrição do consentimento do administradorPermitir que o aplicativo acesse o IdentityExperienceFramework em nome do usuário conectado.
- Selecionar Adicionar escopo.
Registre o aplicativo ProxyIdentityExperienceFramework
- Selecionar Registros de aplicativosE, em seguida, selecione Novo registro.
- Para Nome, digite ProxyIdentityExperienceFramework.
- Debaixo Tipos de conta suportados, selecione Contas somente neste diretório organizacional.
- Debaixo URI de redirecionamento, use o menu suspenso para selecionar Cliente público/nativo (móvel e desktop).
- Para URI de redirecionamento, digite myapp://auth.
- Debaixo Permissões, marque a caixa de seleção Conceder consentimento do administrador para permissões openid e offline_access.
- Selecionar Registrar-se.
- Grave o ID do aplicativo (cliente) para uso em uma etapa posterior.
Em seguida, especifique que o aplicativo deve ser tratado como um cliente público
- Debaixo Gerenciar, selecione Autenticação.
- Debaixo Configurações avançadas, habilitar Permitir fluxos de clientes públicos (selecione Sim).
- Selecionar Economize.
Agora, conceda permissões para o escopo da API que você expôs anteriormente no registro do IdentityExperienceFramework
- Debaixo Gerenciar, selecione Permissões de API.
- Debaixo Permissões configuradas, selecione Adicione uma permissão.
- Selecione os Minhas APIs guia e selecione o Estrutura de experiência de identidade aplicação.
- Debaixo Permissão, Selecione o personificação do usuário escopo que você definiu anteriormente.
- Selecionar Adicionar permissões. Conforme as instruções, aguarde alguns minutos antes de prosseguir para a próxima etapa.
- Selecionar Conceder consentimento administrativo para (nome do seu inquilino).
- Selecione sua conta de administrador conectada no momento ou entre com uma conta no seu locatário do Azure AD B2C que tenha recebido pelo menos a função de administrador de aplicativo em nuvem.
- Selecionar Sim.
- Selecionar revisar, e então verifique se "Concedido para ..." aparece em Status para os escopos - offline_access, openid e user_impersonation. Pode levar alguns minutos para que as permissões sejam propagadas.
Registre o aplicativo ASP.NET
- Selecione Registros de aplicativos e, em seguida, selecione Novo registro.
- Insira um nome para o aplicativo, como por exemplo: WP-app.
- Debaixo Tipos de conta suportados, selecione Contas em qualquer diretório organizacional ou provedor de identidade. Para autenticação de usuários com o Azure AD B2C.
- Debaixo URI de redirecionamento, selecione Web e insira o URL do ACS do Configurações do provedor de serviços guia do plugin miniOrange ASP.NET SAML, conforme mencionado em Etapa 2B acima.
- Selecionar Registrar-se.
- Debaixo Gerenciar, clique em Expor uma API.
- Clique em Conjunto para o ID do aplicativo URI e clique em Economize, aceitando o valor padrão.
- Depois de salvo, copie o URI do ID do aplicativo e navegue até o Metadados do Provedor de Serviços aba do plugin.
- Cole o valor copiado sob o ID da Entidade SP / Emissor campo fornecido nesta aba.
- Clique em Salvar.
Gerar políticas de SSO
-
No nosso portal Azure B2C, navegue até a seção Visão geral do seu locatário B2C e registre o nome do seu locatário.
NOTASe o seu domínio B2C for b2ctest.onmicrosoft.com, então o nome do seu locatário será b2ctest.
- Digite seu Nome do locatário do Azure B2C Abaixo, juntamente com o ID do aplicativo para os aplicativos IdentityExperienceFramework e ProxyIdentityExperienceFramework, conforme registrados nas etapas acima.
- Clique no Gerar políticas do Azure B2C botão para baixar as políticas de SSO.
- Extraia o arquivo zip baixado. Ele contém os arquivos de política e o certificado (.pfx), que você precisará nas etapas seguintes.
Configurar e carregar certificados
ObservaçãoNa etapa seguinte, se o 'Estrutura de Experiência de Identidade' Se não for clicável, pode ser que você não tenha uma assinatura ativa do Azure AD B2C para esse locatário. Você pode encontrar os detalhes sobre a assinatura do Azure AD B2C aqui. e você pode criar um novo inquilino seguindo os passos aqui..
- Entre no Portal do Azure e navegue até seu locatário do Azure AD B2C.
- Debaixo Políticas internas, selecione Estrutura de Experiência de Identidade e depois Chaves de política.
- Selecionar AdicioneE, em seguida, selecione Opções > Upload.
- Insira o nome como SamlIdpCert. O prefixo B2C_1A_ será adicionado automaticamente ao nome da sua chave.
- Usando o controle de upload de arquivo, carregue o certificado que foi gerado nas etapas acima, juntamente com as políticas de SSO (tenantname-cert.pfx).
- Insira a senha do certificado como o nome do seu locatário e clique em Criar. Por exemplo, se o nome do seu locatário for xyzb2c.onmicrosoft.com, insira a senha como xyzb2c.
- Você poderá ver uma nova chave de política com o nome B2C_1A_SamlIdpCert.
Crie a chave de assinatura
- Na página de visão geral do seu locatário do Azure AD B2C, em Políticas internas, selecione Estrutura de Experiência de Identidade.
- Selecionar Chaves de Política e depois selecione Adicione.
- Para Opções, escolha Gerar.
- In Nome, digite TokenSigningKeyContainer.
- Para Tipo de chave, selecione RSA.
- Para Uso da chave, selecione Assinatura.
- Selecionar Criar.
Crie a chave de criptografia
- Na página de visão geral do seu locatário do Azure AD B2C, em Políticas internas, selecione Estrutura de Experiência de Identidade.
- Selecionar Chaves de Política e depois selecione Adicione.
- Para Opções, escolha Gerar.
- In Nome, digite TokenEncryptionKeyContainer.
- Para Tipo de chave, selecione RSA.
- Para Uso da chave, selecione Criptografia.
- Selecionar Criar.
Carregar as políticas
- Selecione os Estrutura de Experiência de Identidade item de menu no seu locatário B2C no portal do Azure.
- Selecionar Carregar política personalizada.
- Seguindo a seguinte ordem, carregue os arquivos de política baixados nas etapas acima:
- TrustFrameworkBase.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- ProfileEdit.xml
- PasswordReset.xml
- SignUpOrSigninSAML.xml
- Conforme você carrega os arquivos, o Azure adiciona o prefixo B2C_1A_ a cada um.
Você configurou com sucesso o Azure B2C como provedor de identidade SAML (IdP) para implementar o Single Sign-On (SSO) do ASP.NET.
A] Usando URL de metadados SAML ou arquivo de metadados
- De acordo com o relatório Menu de configurações do plugin, olhe para Configurações do provedor de serviços. Abaixo, você pode encontrar o URL dos metadados, bem como a opção para baixar os metadados SAML.
- Copie o URL dos metadados ou baixe o arquivo de metadados para configurá-lo no seu provedor de identidade.
- Você pode consultar a captura de tela abaixo:
B] Carregando metadados manualmente
- De Configurações do provedor de serviços Na seção, você pode copiar manualmente os metadados do provedor de serviços, como por exemplo ID da entidade SP, URL do ACS, URL de logout únicoE compartilhe-o com seu provedor de identidade para configuração.
- Você também pode baixar o Certificado SP clicando em Baixar Certificado SP e forneça-o ao seu provedor de identidade, se necessário.
- Sob o Certificado de criptografia Na seção correspondente, selecione o tipo de certificado apropriado de acordo com sua necessidade.
- Após concluir as etapas acima, clique em Economize para aplicar a configuração.
- Você pode consultar a captura de tela abaixo:
Registre o aplicativo Identity Experience Framework
- Logar em Portal B2C do Azure.
- No locatário do Azure AD B2C, selecione Registros de aplicativosE, em seguida, selecione Novo registro.
- Para Nome, digite IdentityExperienceFramework.
- Debaixo Tipos de conta suportados, selecione Contas somente neste diretório organizacional.
- Debaixo URI de redirecionamentoSelecione Web e, em seguida, insira "https://your-tenant-name.b2clogin.com/your-tenant-name.onmicrosoft.com", onde your-tenant-name é o nome de domínio do seu locatário do Azure AD B2C.
ObservaçãoNa etapa seguinte, se o 'Permissões' Se a seção não estiver visível, pode ser que você não tenha uma assinatura ativa do AzureAD B2C para esse locatário. Você pode encontrar os detalhes sobre a assinatura do AzureAD B2C aqui. e você pode criar um novo inquilino seguindo os passos aqui..
- Debaixo Permissões, Selecione o Conceder consentimento de administrador para permissões openid e offline_access Caixa de seleção.
- Clique em Registrar-se.
- Grave o ID do aplicativo (cliente) para uso em uma etapa posterior.
Registre o aplicativo Identity Experience Framework
- Debaixo Gerenciar, selecione Expor uma API.
- Selecionar Adicionar um escopo, selecione Salvar e continue para aceitar o URI do ID do aplicativo padrão.
- Insira os seguintes valores para criar um escopo que permita a execução de políticas personalizadas no seu locatário do Azure AD B2C:
- Nome do escopo: personificação_do_usuário
- Nome de exibição do consentimento do administrador: Acessar o IdentityExperienceFramework
- Descrição do consentimento do administradorPermitir que o aplicativo acesse o IdentityExperienceFramework em nome do usuário conectado.
- Selecionar Adicionar escopo.
Registre o aplicativo ProxyIdentityExperienceFramework
- Selecionar Registros de aplicativosE, em seguida, selecione Novo registro.
- Para Nome, digite ProxyIdentityExperienceFramework.
- Debaixo Tipos de conta suportados, selecione Contas somente neste diretório organizacional.
- Debaixo URI de redirecionamento, use o menu suspenso para selecionar Cliente público/nativo (móvel e desktop).
- Para URI de redirecionamento, digite myapp://auth.
- Debaixo Permissões, marque a caixa de seleção Conceder consentimento do administrador para permissões openid e offline_access.
- Selecionar Registrar-se.
- Grave o ID do aplicativo (cliente) para uso em uma etapa posterior.
Em seguida, especifique que o aplicativo deve ser tratado como um cliente público
- Debaixo Gerenciar, selecione Autenticação.
- Debaixo Configurações avançadas, habilitar Permitir fluxos de clientes públicos (selecione Sim).
- Selecionar Economize.
Agora, conceda permissões para o escopo da API que você expôs anteriormente no registro do IdentityExperienceFramework
- Debaixo Gerenciar, selecione Permissões de API.
- Debaixo Permissões configuradas, selecione Adicione uma permissão.
- Selecione os Minhas APIs guia e selecione o Estrutura de experiência de identidade aplicação.
- Debaixo Permissão, Selecione o personificação do usuário escopo que você definiu anteriormente.
- Selecionar Adicionar permissões. Conforme as instruções, aguarde alguns minutos antes de prosseguir para a próxima etapa.
- Selecionar Conceder consentimento administrativo para (nome do seu inquilino).
- Selecione sua conta de administrador conectada no momento ou entre com uma conta no seu locatário do Azure AD B2C que tenha recebido pelo menos a função de administrador de aplicativo em nuvem.
- Selecionar Sim.
- Selecionar revisar, e então verifique se "Concedido para ..." aparece em Status para os escopos - offline_access, openid e user_impersonation. Pode levar alguns minutos para que as permissões sejam propagadas.
Registre o aplicativo ASP.NET
- Selecione Registros de aplicativos e, em seguida, selecione Novo registro.
- Insira um nome para o aplicativo, como por exemplo: WP-app.
- Debaixo Tipos de conta suportados, selecione Contas em qualquer diretório organizacional ou provedor de identidade. Para autenticação de usuários com o Azure AD B2C.
- Debaixo URI de redirecionamento, selecione Web e insira o URL do ACS do Configurações do provedor de serviços guia do plugin miniOrange ASP.NET SAML, conforme mencionado em Etapa 2B acima.
- Selecionar Registrar-se.
- Debaixo Gerenciar, clique em Expor uma API.
- Clique em Conjunto para o ID do aplicativo URI e clique em Economize, aceitando o valor padrão.
- Depois de salvo, copie o URI do ID do aplicativo e navegue até o Metadados do Provedor de Serviços aba do plugin.
- Cole o valor copiado sob o ID da Entidade SP / Emissor campo fornecido nesta aba.
- Clique em Salvar.
Gerar políticas de SSO
-
No nosso portal Azure B2C, navegue até a seção Visão geral do seu locatário B2C e registre o nome do seu locatário.
NOTASe o seu domínio B2C for b2ctest.onmicrosoft.com, então o nome do seu locatário será b2ctest.
- Digite seu Nome do locatário do Azure B2C Abaixo, juntamente com o ID do aplicativo para os aplicativos IdentityExperienceFramework e ProxyIdentityExperienceFramework, conforme registrados nas etapas acima.
- Clique no Gerar políticas do Azure B2C botão para baixar as políticas de SSO.
- Extraia o arquivo zip baixado. Ele contém os arquivos de política e o certificado (.pfx), que você precisará nas etapas seguintes.
Configurar e carregar certificados
ObservaçãoNa etapa seguinte, se o 'Estrutura de Experiência de Identidade' Se não for clicável, pode ser que você não tenha uma assinatura ativa do Azure AD B2C para esse locatário. Você pode encontrar os detalhes sobre a assinatura do Azure AD B2C aqui. e você pode criar um novo inquilino seguindo os passos aqui..
- Entre no Portal do Azure e navegue até seu locatário do Azure AD B2C.
- Debaixo Políticas internas, selecione Estrutura de Experiência de Identidade e depois Chaves de política.
- Selecionar AdicioneE, em seguida, selecione Opções > Upload.
- Insira o nome como SamlIdpCert. O prefixo B2C_1A_ será adicionado automaticamente ao nome da sua chave.
- Usando o controle de upload de arquivo, carregue o certificado que foi gerado nas etapas acima, juntamente com as políticas de SSO (tenantname-cert.pfx).
- Insira a senha do certificado como o nome do seu locatário e clique em Criar. Por exemplo, se o nome do seu locatário for xyzb2c.onmicrosoft.com, insira a senha como xyzb2c.
- Você poderá ver uma nova chave de política com o nome B2C_1A_SamlIdpCert.
Crie a chave de assinatura
- Na página de visão geral do seu locatário do Azure AD B2C, em Políticas internas, selecione Estrutura de Experiência de Identidade.
- Selecionar Chaves de Política e depois selecione Adicione.
- Para Opções, escolha Gerar.
- In Nome, digite TokenSigningKeyContainer.
- Para Tipo de chave, selecione RSA.
- Para Uso da chave, selecione Assinatura.
- Selecionar Criar.
Crie a chave de criptografia
- Na página de visão geral do seu locatário do Azure AD B2C, em Políticas internas, selecione Estrutura de Experiência de Identidade.
- Selecionar Chaves de Política e depois selecione Adicione.
- Para Opções, escolha Gerar.
- In Nome, digite TokenEncryptionKeyContainer.
- Para Tipo de chave, selecione RSA.
- Para Uso da chave, selecione Criptografia.
- Selecionar Criar.
Carregar as políticas
- Selecione os Estrutura de Experiência de Identidade item de menu no seu locatário B2C no portal do Azure.
- Selecionar Carregar política personalizada.
- Seguindo a seguinte ordem, carregue os arquivos de política baixados nas etapas acima:
- TrustFrameworkBase.xml
- TrustFrameworkExtensions.xml
- SignUpOrSignin.xml
- ProfileEdit.xml
- PasswordReset.xml
- SignUpOrSigninSAML.xml
- Conforme você carrega os arquivos, o Azure adiciona o prefixo B2C_1A_ a cada um.
Você configurou com sucesso o Azure B2C como provedor de identidade SAML (IdP) para implementar o Single Sign-On (SSO) do ASP.NET.
3. Configurar metadados do provedor de identidade Azure B2C em um aplicativo .NET
- Clique no Adicionar novo IDP botão para configurar um novo Provedor de Identidade.
- Sob o Configurações de Plugin guia, selecione AzureB2C como seu provedor de identidade na lista exibida.
Há duas maneiras detalhadas abaixo com as quais você pode configurar os metadados do seu Provedor de Identidade SAML no middleware.
A] Carregar metadados usando o botão Carregar metadados do IDP:
- Se o seu provedor de identidade tiver fornecido a URL de metadados ou o arquivo de metadados (somente formato .xml), você poderá simplesmente configurar os metadados do provedor de identidade no middleware usando o Carregar metadados do IDP opção.
- Copie o URL dos metadados ou baixe o arquivo de metadados para configurá-lo no seu provedor de identidade.
- Você pode consultar a captura de tela abaixo:
- Você pode escolher qualquer uma das opções de acordo com o formato de metadados disponível.
B] Configure os metadados do provedor de identidade manualmente:
- Depois de configurar seu Provedor de Identidade, ele irá fornecer a você ID da entidade IDP, URL de logon único do IDP e Certificado SAML X509 campos respectivamente.
- Clique Economize para salvar seus dados de IDP.
- Clique no Adicionar novo IDP botão para configurar um novo Provedor de Identidade.
- Sob o Configurações de Plugin guia, selecione AzureB2C como seu provedor de identidade da lista exibida.
Há duas maneiras detalhadas abaixo com as quais você pode configurar os metadados do seu Provedor de Identidade SAML no middleware.
A] Carregar metadados usando o botão Carregar metadados do IDP:
- Se o seu provedor de identidade tiver fornecido a URL de metadados ou o arquivo de metadados (somente formato .xml), você poderá simplesmente configurar os metadados do provedor de identidade no middleware usando o Carregar metadados do IDP opção.
- Copie o URL dos metadados ou baixe o arquivo de metadados para configurá-lo no seu provedor de identidade.
- Você pode consultar a captura de tela abaixo:
- Você pode escolher qualquer uma das opções de acordo com o formato de metadados disponível.
B] Configure os metadados do provedor de identidade manualmente:
- Depois de configurar seu Provedor de Identidade, ele irá fornecer a você ID da entidade IDP, URL de logon único do IDP e Certificado SAML X509 campos respectivamente.
- Clique Economize para salvar seus dados de IDP.
4. Testando SAML SSO
- Após carregar os detalhes dos metadados, navegue até Configurações do Provedor de Identidade seção. Passe o mouse sobre o Selecionar ações menu suspenso e clique em Configuração de Teste.
- A captura de tela abaixo mostra um resultado bem-sucedido. Clique em Integração SSO para continuar com a integração do SSO.
- Se você estiver enfrentando algum erro no middleware, será exibida uma janela semelhante à abaixo.
- Para solucionar o erro, siga os passos abaixo:
- Debaixo Resolução de problemas guia, ative a alternância para receber os logs do plugin.
- Uma vez habilitado, você poderá recuperar os logs do plugin navegando até Configurações de Plugin guia e clicando em Configuração de Teste.
- Faça o download do arquivo de log do Resolução de problemas aba para ver o que deu errado.
- Você pode compartilhar o arquivo de log conosco em aspnetsupport@xecurify.com e nossa equipe entrará em contato com você para resolver seu problema.
- Após carregar os detalhes dos metadados, navegue até Configurações do Provedor de Identidade seção. Passe o mouse sobre o Selecionar ações menu suspenso e clique em Configuração de Teste.
- A captura de tela abaixo mostra um resultado de teste bem-sucedido. Clique em clique aqui para concluir as etapas restantes de integração do SSO.
- Se você estiver enfrentando algum erro no middleware, clique em guia de solução de problemas botão.
- Para solucionar o erro, siga os passos abaixo:
- Na aba Solução de Problemas, ative a opção para receber os registros do plugin e reproduzir o problema.
- Faça o download do arquivo de registro clicando em Baixar arquivo de registro botão para ver o que deu errado.
- Você pode compartilhar o arquivo de log conosco em aspnetsupport@xecurify.com e nossa equipe entrará em contato com você para resolver seu problema.
5. Mapeamento de Atributos
- Depois de testar a configuração, mapeie os atributos do seu aplicativo com os atributos do Provedor de Identidade (IdP).
- No menu à esquerda do miniOrange ASP.NET SAML SSO Middleware, clique em Mapeamento de atributos/funções aba conforme mostrado na imagem.
- Se você quiser passar atributos adicionais do seu IdP, insira o Nome do Atributo e o Valor do Atributo correspondente em Mapeamento de atributos personalizados.
- Observação: Todos os atributos mapeados serão armazenados na sessão para que você possa acessá-los em seu aplicativo.
- Depois que os atributos forem mapeados, clique em Salvar mapeamento de atributos para aplicar alterações.
- Após testar a configuração, mapeie os atributos do seu aplicativo com os atributos do Provedor de Identidade (IdP).
- No menu à esquerda do miniOrange ASP.NET SAML SSO Middleware, clique em Mapeamento de atributos/funções aba conforme mostrado na imagem.
- Mapeie o necessário Atributos do IdP (tais como Nome de usuário, E-mail, Nome e Sobrenome) recebidos na resposta SAML em seus respectivos campos.
- ObservaçãoTodos os atributos mapeados serão armazenados na sessão para que você possa acessá-los em sua aplicação.
- Depois que os atributos forem mapeados, clique em Salvar mapeamento de atributos para aplicar alterações.
Mapeamento de atributos personalizados
- Se você quiser passar atributos adicionais do seu IdP, insira o Nome do Atributo e o Valor do Atributo correspondente em Mapeamento de atributos personalizados.
- De Valor do atributo (Reivindicação) No menu suspenso, selecione uma das declarações recebidas nos resultados da Configuração de Teste. Por exemplo: NameID.
- Essas declarações correspondem aos atributos enviados pelo seu Provedor de Identidade (IdP).
- Essas declarações correspondem aos atributos enviados pelo seu Provedor de Identidade (IdP).
- De acordo com o relatório Nome do Atributo No campo, insira o nome do atributo conforme você deseja que ele apareça ou seja usado em sua aplicação .NET.
- Você pode adicionar vários mapeamentos se seu aplicativo exigir vários atributos, clicando em + botão.
- Após definir todos os mapeamentos necessários, clique em Salvar mapeamento de atributos para armazenar a configuração.
- O plugin agora traduzirá as declarações SSO recebidas do seu Provedor de Identidade (IdP) para os nomes de atributos personalizados definidos aqui.
Mapeamento de Funções
- De acordo com o relatório Mapeamento de Funções seção, insira o Nome do Atributo do Grupo exatamente como configurado em seu provedor de identidade para obter as informações do grupo de usuários.
- Introduzir o Nome do papel recebido do Provedor de Identidade e mapeá-lo para o apropriado. Valor da função No campo Valor da função, insira as funções definidas em sua aplicação .NET.
- Por exemplo: mapeie o grupo IdP Group1 ou Group10 recebido no atributo UserGroups para a função correspondente configurada em seu aplicativo .NET.
- Após adicionar os mapeamentos necessários, clique em Salvar mapeamento de funções Para salvar a configuração com sucesso.
Restrição de domínio
- Essa funcionalidade pode ser usada para restringir o acesso do usuário ao site com base no domínio do atributo "Email" mapeado.
- De acordo com o relatório Atributo de e-mail No campo, insira o nome do atributo que contém o endereço de e-mail do usuário, conforme recebido do seu Provedor de Identidade (IdP).
- De acordo com o relatório Nome de domínio No campo, insira o(s) domínio(s) que deseja permitir ou restringir, separados por vírgulas caso esteja adicionando vários domínios.
- permitir que o Alternar restrição Com base na sua necessidade de configurar o acesso por meio de listas negras ou brancas.
- Após concluir a configuração, clique em Salvar domínios Para salvar as configurações com sucesso.
6. Código de Integração
- Estas etapas permitem que você recupere as informações do usuário SSO em seu aplicativo na forma de declarações de usuário.
- Você também pode olhar o tour de configuração para entender como a integração SSO funcionaria em seu aplicativo middleware asp.net.
- Basta copiar e colar esse trecho de código onde você quiser acessar os atributos do usuário.
- Observação: Com o middleware de teste, os detalhes do usuário autenticado são armazenados em declarações de usuário usando a Autenticação de Cookie .NET padrão. O suporte para definir declarações de usuário usando autenticação baseada em cabeçalho, sessão e JWT está disponível em nosso plugin premium.
- Você também pode copiar o código de integração abaixo:
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;
}
- Esses passos permitem que você recupere as informações do usuário SSO em seu aplicativo na forma de declarações de usuário.
- Basta copiar e colar o trecho de código onde você quiser acessar os atributos do usuário.
- Você também pode copiar o código de integração abaixo:
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. Configurações de login
- Passe o mouse sobre Selecionar ações e clique em Copiar link SSO.
- Use o seguinte URL como um link no aplicativo de onde você deseja executar o SSO:
https://<asp.net-middleware-base-url>/?ssoaction=login
- Por exemplo, você pode usá-lo como:
<a href="https://<asp.net-middleware-base-url>/?ssoaction=login">Log
in</a>
- Passe o mouse sobre Selecionar ações e clique em Copiar link SSO.
- Use o seguinte URL como um link no aplicativo de onde você deseja executar o SSO:
https://<asp.net-middleware-base-url>/?ssoaction=login
- Por exemplo, você pode usá-lo como:
<a href="https://<asp.net-middleware-base-url>/?ssoaction=login">Log
in</a>
8. Configurações de logout
- Use a seguinte URL como um link para seu aplicativo de onde você deseja executar o SLO:
https://<asp.net-middleware-base-url>/?ssoaction=logout
- Por exemplo, você pode usá-lo como:
<a href="https://<asp.net-middleware-base-url>/?ssoaction=logout">Log
out</a>
- Use a seguinte URL como um link para seu aplicativo de onde você deseja executar o SLO:
https://<asp.net-middleware-base-url>/?ssoaction=logout
- Por exemplo, você pode usá-lo como:
<a href="https://<asp.net-middleware-base-url>/?ssoaction=logout">Log
out</a>
Configurações avançadas
Se você deseja aplicar as Configurações Avançadas, navegue até... Configurações avançadas aba.
Redirecionamento automático para o IdP
- permitir que o Redirecionamento automático para o IdP Ativar botão para redirecionar automaticamente os usuários para o provedor de identidade configurado durante o login.
- Selecione o IdP para o qual deseja redirecionar os usuários a partir do URL específico em IDP padrão suspenso.
- Escolha o Tipo de redirecionamento as Restrito or Público com base em sua exigência.
- Caso necessário, insira os URLs que devem ser excluídos do redirecionamento no campo "Excluir URLs", separados por vírgulas.
- Clique em Economize para armazenar a configuração com sucesso.
Desativar o painel de administração
- permitir que o Desativar o painel de administração Desative a opção para ocultar o painel de administração do miniOrange e clique em Salvar para aplicar as alterações.
Informações do certificado
- Acesse a seção Informações do Certificado e selecione o Tipo de Certificado desejado (Certificado de assinatura ou certificado de criptografia).
- Clique em Regenerar certificado Se você deseja gerar um novo certificado.
- Em seguida, clique em Solicitar novo certificado para aplicar o certificado atualizado.
Carregar certificado personalizado
- Navegue até a Carregar certificado personalizado seção e selecione o Tipo de Certificado necessário (Certificado de assinatura ou certificado de criptografia).
- Clique em Escolher Ficheiro para fazer o upload do Chave pública (.crt) e Chave privada (.pfx) arquivos e insira o Senha da chave privada no campo fornecido.
- Após fornecer os detalhes necessários, clique em Economize Para carregar e aplicar o certificado personalizado com sucesso.
Artigos Relacionados
Obrigado pela sua resposta. Entraremos em contato em breve.
Algo deu errado. Envie sua consulta novamente.
