Guia para configurar o SSO SAML do Umbraco usando o Keycloak como IdP
Visão geral
O plugin Umbraco SAML Single Sign-On (SSO) permite habilitar o Single Sign-On SAML para seus aplicativos Umbraco. Com o Single Sign-On, você pode usar apenas uma senha para acessar seus aplicativos e serviços Umbraco . Nosso plugin é compatível com todos os provedores de identidade compatíveis com SAML . Aqui, apresentaremos um guia passo a passo para configurar o Single Sign-On (SSO) entre o Umbraco e o Keycloak, considerando o Keycloak como IdP.
Selecione sua versão do umbraco para configurar o SSO com:
Pré-requisitos: Download e instalação
- Instalar da loja NuGet
- Instalação manual
- Instalar da loja NuGet
- Instalação manual
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login -Versão 9.2.3
> dotnet adicionar pacote miniOrange.Umbraco.SAML.SSO.Login --versão 9.2.3
- Baixar Middleware Umbraco SAML de logon único (SSO).
- Para configurar o middleware, você precisará adicionar os namespaces, serviços e middlewares abaixo em seu projeto. inicialização.cs Arquivo (marcado em verde), abaixo segue um exemplo.
Inclua apenas a seção destacada abaixo no inicialização.cs arquivo de seu aplicativo.
using miniOrange.saml;
using System.Reflection;
namespace Application
{
public class Startup
{
// Add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddUmbraco(_env, _config)
.AddBackOffice()
.AddWebsite()
.AddComposers()
.Build();
services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseInstallerEndpoints();
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
}
}
}
- Execute o aplicativo quando a configuração estiver concluída.
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login -Versão 10.2.3
> dotnet adicionar pacote miniOrange.Umbraco.SAML.SSO.Login --versão 10.2.3
- Baixar Middleware Umbraco SAML de logon único (SSO).
- Para configurar o middleware, você precisará adicionar os namespaces, serviços e middlewares abaixo em seu projeto. inicialização.cs Arquivo (marcado em verde), abaixo segue um exemplo.
Inclua apenas a seção destacada abaixo no inicialização.cs arquivo de seu aplicativo.
using miniOrange.saml;
using System.Reflection;
namespace Application
{
public class Startup
{
// Add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddUmbraco(_env, _config)
.AddBackOffice()
.AddWebsite()
.AddComposers()
.Build();
services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseInstallerEndpoints();
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
}
}
}
- Execute o aplicativo quando a configuração estiver concluída.
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login -Versão 11.2.3
> dotnet adicionar pacote miniOrange.Umbraco.SAML.SSO.Login --versão 11.2.3
- Baixar Middleware Umbraco SAML de logon único (SSO).
- Para configurar o middleware, você precisará adicionar os namespaces, serviços e middlewares abaixo em seu projeto. programa.cs Arquivo (marcado em verde), abaixo segue um exemplo.
Inclua apenas a seção destacada abaixo no programa.cs arquivo de seu aplicativo.
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- Execute o aplicativo quando a configuração estiver concluída.
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login -Versão 12.2.3
> dotnet adicionar pacote miniOrange.Umbraco.SAML.SSO.Login --versão 12.2.3
- Baixar Middleware Umbraco SAML de logon único (SSO).
- Para configurar o middleware, você precisará adicionar os namespaces, serviços e middlewares abaixo em seu projeto. programa.cs Arquivo (marcado em verde), abaixo segue um exemplo.
Inclua apenas a seção destacada abaixo no programa.cs arquivo de seu aplicativo.
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- Execute o aplicativo quando a configuração estiver concluída.
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login -Versão 13.2.3
> dotnet adicionar pacote miniOrange.Umbraco.SAML.SSO.Login --versão 13.2.3
- Baixar Middleware Umbraco SAML de logon único (SSO).
- Para configurar o middleware, você precisará adicionar os namespaces, serviços e middlewares abaixo em seu projeto. programa.cs Arquivo (marcado em verde), abaixo segue um exemplo.
Inclua apenas a seção destacada abaixo no programa.cs arquivo de seu aplicativo.
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- Execute o aplicativo quando a configuração estiver concluída.
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login -Versão 14.2.3
> dotnet adicionar pacote miniOrange.Umbraco.SAML.SSO.Login --versão 14.2.3
- Baixar Middleware Umbraco SAML de logon único (SSO).
- Para configurar o middleware, você precisará adicionar os namespaces, serviços e middlewares abaixo em seu projeto. programa.cs Arquivo (marcado em verde), abaixo segue um exemplo.
Inclua apenas a seção destacada abaixo no programa.cs arquivo de seu aplicativo.
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- Execute o aplicativo quando a configuração estiver concluída.
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login -Versão 15.2.4
> dotnet adicionar pacote miniOrange.Umbraco.SAML.SSO.Login --versão 15.2.4
- Baixar Middleware Umbraco SAML de logon único (SSO).
- Para configurar o middleware, você precisará adicionar os namespaces, serviços e middlewares abaixo em seu projeto. programa.cs Arquivo (marcado em verde), abaixo segue um exemplo.
Inclua apenas a seção destacada abaixo no programa.cs arquivo de seu aplicativo.
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- Execute o aplicativo quando a configuração estiver concluída.
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login -Versão 16.2.4
> dotnet adicionar pacote miniOrange.Umbraco.SAML.SSO.Login --versão 16.2.4
- Baixar Middleware Umbraco SAML de logon único (SSO).
- Para configurar o middleware, você precisará adicionar os namespaces, serviços e middlewares abaixo em seu projeto. programa.cs Arquivo (marcado em verde), abaixo segue um exemplo.
Inclua apenas a seção destacada abaixo no programa.cs arquivo de seu aplicativo.
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- Execute o aplicativo quando a configuração estiver concluída.
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login -Versão 17.2.4
> dotnet adicionar pacote miniOrange.Umbraco.SAML.SSO.Login --versão 17.2.4
- Baixar Middleware Umbraco SAML de logon único (SSO).
- Para configurar o middleware, você precisará adicionar os namespaces, serviços e middlewares abaixo em seu projeto. programa.cs Arquivo (marcado em verde), abaixo segue um exemplo.
Inclua apenas a seção destacada abaixo no programa.cs arquivo de seu aplicativo.
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- Execute o aplicativo quando a configuração estiver concluída.
PM> NuGet\Install-Package miniOrange.Umbraco.SAML.SSO.Login -Versão 18.0.0
> dotnet adicionar pacote miniOrange.Umbraco.SAML.SSO.Login --versão 18.0.0
- Baixar Middleware Umbraco SAML de logon único (SSO).
- Para configurar o middleware, você precisará adicionar os namespaces, serviços e middlewares abaixo em seu projeto. programa.cs Arquivo (marcado em verde), abaixo segue um exemplo.
Inclua apenas a seção destacada abaixo no programa.cs arquivo de seu aplicativo.
using miniOrange.saml;
using System.Reflection;
WebApplicationBuilder builder = WebApplication.CreateBuilder(args);
builder.CreateUmbracoBuilder()
.AddBackOffice()
.AddWebsite()
.AddDeliveryApi()
.AddComposers()
.Build();
// Add services to the container.
builder.Services.AddminiOrangeServices(Assembly.GetExecutingAssembly());
WebApplication app = builder.Build();
await app.BootUmbracoAsync();
app.UseUmbraco()
.WithMiddleware(u =>
{
u.UseBackOffice();
u.UseWebsite();
u.AppBuilder.UseminiOrangeSAMLSSOMiddleware();
})
.WithEndpoints(u =>
{
u.UseBackOfficeEndpoints();
u.UseWebsiteEndpoints();
});
await app.RunAsync();
- Execute o aplicativo quando a configuração estiver concluída.
Etapas de configuração
Guia passo a passo para SSO SAML no Umbraco usando o Keycloak como provedor de identidade.
1. Acesse o painel de controle do plugin SAML do Umbraco.
- Após a integração, abra seu navegador e navegue até o painel do conector com o URL abaixo:
https://<umbraco-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.
2. Fornecer metadados do aplicativo Umbraco ao provedor de identidade Keycloak
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çosAbaixo disso, você 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 único e compartilhe-o com seu provedor de identidade para configuração.
- Você pode consultar a captura de tela abaixo:
Etapas para configurar o Keycloak IdP
- Em sua Keycloak Administrador console, selecione o reino que você deseja usar.
- Clique em Clientes no menu à esquerda e clique em Criar cliente botão para criar um novo cliente/aplicativo.
- Selecionar SAML as Tipo de cliente, entrar SP-EntityID / Emissor como o ID do cliente do Metadados do Provedor de Serviços Na aba do plugin, insira Nome da sua aplicação e insira Descrição.
- Clique no Seguinte botão.
- Forneça os detalhes conforme mencionado abaixo:
| URL raiz | Deixe em branco ou forneça URL base da guia Metadados do Provedor de Serviços |
| URIs de redirecionamento válidos | O URL do ACS (Serviço de Asserção ao Consumidor) na aba Metadados do Provedor de Serviços do plugin |
- Clique em Economize botão.
- De acordo com o relatório Configurações guia sob Recursos SAML seção, configure o Keycloak fornecendo os detalhes necessários:
| Forçar vinculação POST | OFF |
| Formato de ID do nome da força | OFF |
| Formato de ID do nome |
- De acordo com o relatório As chaves guia, desabilite o Assinatura do cliente necessária alternancia.
- Clique no Economize botão.
- In Avançado guia, sob Configuração de endpoint SAML de granulação fina, insira os seguintes detalhes:
| URL de vinculação POST do serviço de consumidor de asserção | O URL do ACS (Serviço de Asserção ao Consumidor) na aba Metadados do Provedor de Serviços do plugin |
| URL de vinculação de redirecionamento do serviço de logout (Opcional) | O URL de logout único na aba Metadados do Provedor de Serviços do plugin |
- Clique em Economize botão.
Adicionar mapeadores
- Acessar Guia Mapeadores e clique em Adicionar embutido botão.
- Selecione as caixas de seleção de X500 dadoNome, Sobrenome X500 e E-mail X500 atributos.
- Clique em Adicionar Selecionado botão. Você verá os mapeamentos adicionados abaixo.
- In Escopos do cliente guia, clique no seu aplicativo.
- Clique em Adicionar mapeador predefinido.
- Selecione as caixas de seleção de X500 dadoNome, Sobrenome X500 e E-mail X500 atributos.
- Clique em Adicione botão.
- Você verá os mapeamentos adicionados abaixo.
- De acordo com o relatório Escopos do cliente guia, clique no seu aplicativo.
- Clique em Adicionar mapeador predefinido.
- Selecione as caixas de seleção de X500 dadoNome, Sobrenome X500 e E-mail X500 atributos.
- Clique no Adicione botão.
- Você verá os mapeamentos adicionados abaixo.
Baixar arquivo de configuração
- Acessar Configurações do Reino, clique em Metadados do Provedor de Identidade SAML 2.0 mencionados como Endpoints no Guia geral.
- Anote o URL e mantenha-o à mão. Isso lhe fornecerá a Pontos finais necessário para configurar o plugin.
- Acessar Configurações do Reino, clique em Metadados do Provedor de Identidade SAML 2.0 mencionados como Endpoints no Guia geral.
- Anote o URL e mantenha-o à mão. Isso lhe fornecerá a Pontos finais necessário para configurar o plugin.
- Acessar Configurações do Reino, clique em Metadados do Provedor de Identidade SAML 2.0 mencionados como Endpoints no Geral aba.
- Anote o URL e mantenha-o à mão. Isso lhe fornecerá a Pontos finais necessário para configurar o plugin.
Você configurou com sucesso o Keycloak como provedor de identidade SAML (IdP) para implementar o Single Sign-On (SSO) do Umbraco.
3. Configurar metadados do provedor de identidade Keycloak no aplicativo Umbraco
- Clique no Adicionar novo IDP botão para configurar um novo Provedor de Identidade.
- Sob o Configurações de Plugin guia, selecione Manto-chave 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 lhe forneceu o URL ou o arquivo de metadados (somente no formato .xml), você pode 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-lhe 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, uma janela semelhante à mostrada abaixo será exibida.
- 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 Abra a aba para ver o que deu errado.
- Você pode compartilhar o arquivo de log conosco em umbracosupport@xecurify.com e nossa equipe entrará em contato com você para resolver seu problema.
Tipo de login do Umbraco
- Em seguida, selecione o Tipo de login na lista suspensa no lado direito da página Configurações do Provedor de Identidade.
- Você pode escolher entre BackOffice, Vogal, ou Atributo personalizado baseado em.
- Observação: O Atributo personalizado baseado em O tipo de login está disponível em Premium e Empreendimento versões.
5. Mapeamento de Atributos
- O mapeamento de atributos, o mapeamento de funções e a restrição de domínio estão disponíveis no Premium e Empreendimento versões do middleware.
6. 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://<umbraco-base-url>/?ssoaction=login
- Por exemplo, você pode usá-lo como:
<a href="https://<umbraco-base-url>/?ssoaction=login">Log in</a>
7. Configurações de logout
- Use a seguinte URL como um link para seu aplicativo de onde você deseja executar o SLO:
https://<umbraco-base-url>/?ssoaction=logout
- Por exemplo, você pode usá-lo como:
<a href="https://<umbraco-base-url>/?ssoaction=logout">Log out</a>
Artigos Relacionados
Obrigado pela sua resposta. Entraremos em contato em breve.
Algo deu errado. Envie sua consulta novamente.
