Guia para configurar o SSO SAML do ASP.NET Core usando o Shibboleth como 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 shibboleth considerando shibboleth 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 Shibboleth 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 do aplicativo .NET ao provedor de identidade Shibboleth
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:
-
Em conf/idp.properties, descomente e defina 'idp.encryption.optional' como true.
por exemplo, idp.encryption.optional = true
- In conf/metadata-providers.xml, configure o Provedor de Serviços assim
<MetadataProvider xmlns:samlmd="urn:oasis:names:tc:SAML:2.0:metadata"
id="miniOrangeInLineEntity" xsi:type="InlineMetadataProvider" sortKey="1">
<samlmd:EntityDescriptor ID="entity" entityID="<SP-EntityID / Issuer from Service Provider Info tab in plugin.>"
validUntil="2020-09-06T04:13:32Z">
<samlmd:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true"
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<samlmd:NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
</samlmd:NameIDFormat>
<samlmd:AssertionConsumerServiceBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="<ACS (AssertionConsumerService) URL from Step1 of the plugin under Identity Provider Tab.>"
index="1" />
</samlmd:SPSSODescriptor>
</samlmd:EntityDescriptor>
</MetadataProvider>
- In conf/saml-nameid.propriedades, descomente e defina o padrão NomeID as Email como isso.
idp.nameid.saml2.default=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
- In conf/saml-nameid-xml, procure por shibboleth.SAML2NameIDGenerators. Descomente o bean shibboleth.SAML2AttributeSourcedGenerator e comente todos os outros beans de referência.
<!-- SAML 2 NameID Generation -->
<util:list id="shibboleth.SAML2NameIDGenerators">
<!--<ref bean="shibboleth.SAML2TransientGenerator" /> -->
<!--<ref bean="shibboleth.SAML2PersistentGenerator" /> -->
<bean parent="shibboleth.SAML2AttributeSourcedGenerator"
p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
p:attributeSourceIds="#{ {'email'} }" />
</util:list>
- Certifique-se de ter definido AttributeDefinition em conf/attribute-resolver.xml.
<!-- Note: AttributeDefinitionid must be same as what you provided in attributeSourceIds in conf/saml-nameid.xml -->
<resolver:AttributeDefinitionxsi:type="ad:Simple" id="email" sourceAttributeID="mail">
<resolver:Dependency ref="ldapConnector" />
<resolver:AttributeEncoderxsi:type="enc:SAML2String" name="email" friendlyName="email" />
</resolver:AttributeDefinition>
<resolver:DataConnector id="ldapConnector"
xsi:type="dc:LDAPDirectory"
ldapURL="%{idp.authn.LDAP.ldapURL}"
baseDN="%{idp.authn.LDAP.baseDN}"
principal="%{idp.authn.LDAP.bindDN}"
principalCredential="%{idp.authn.LDAP.bindDNCredential}">
<dc:FilterTemplate>
<!-- Define you User Search Filter here -->
<![CDATA[(&(objectclass=*) (cn=$requestContext.principalName)) ]]>
</dc:FilterTemplate>
<dc:ReturnAttributes>*</dc:ReturnAttributes>
</resolver:DataConnector>
- Certifique-se de ter AttributeFilterPolicy definido em conf/attribute-filter.xml.
<afp:AttributeFilterPolicy id="ldapAttributes">
<afp:PolicyRequirementRulexsi:type="basic:ANY"/>
<afp:AttributeRuleattributeID="email">
<afp:PermitValueRulexsi:type="basic:ANY"/>
</afp:AttributeRule>
</afp:AttributeFilterPolicy>
- Reinicie o servidor Shibboleth.
- Você precisa configurar esses endpoints no middleware SAML do ASP.NET.
| ID da entidade IDP | https://<your_domain>/idp/shibboleth |
| URL de login único | https://<your_domain>/idp/profile/SAML2/Redirect/SSO |
| URL de logout único | https://<your_domain>/idp/shibboleth |
| Certificado X.509 | O certificado de chave pública do seu servidor Shibboleth |
- Você configurou com sucesso o Shibboleth como SAML IdP (Provedor de Identidade) para obter login SSO do Shibboleth no seu aplicativo 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:
-
Em conf/idp.properties, descomente e defina 'idp.encryption.optional' como true.
por exemplo, idp.encryption.optional = true
- In conf/metadata-providers.xml, configure o Provedor de Serviços assim
<MetadataProvider xmlns:samlmd="urn:oasis:names:tc:SAML:2.0:metadata"
id="miniOrangeInLineEntity" xsi:type="InlineMetadataProvider" sortKey="1">
<samlmd:EntityDescriptor ID="entity" entityID="<SP-EntityID / Issuer from Service Provider Info tab in plugin.>"
validUntil="2020-09-06T04:13:32Z">
<samlmd:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true"
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<samlmd:NameIDFormat>
urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
</samlmd:NameIDFormat>
<samlmd:AssertionConsumerServiceBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="<ACS (AssertionConsumerService) URL from Step1 of the plugin under Identity Provider Tab.>"
index="1" />
</samlmd:SPSSODescriptor>
</samlmd:EntityDescriptor>
</MetadataProvider>
- In conf/saml-nameid.propriedades, descomente e defina o padrão NomeID as Email como isso.
idp.nameid.saml2.default=urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
- In conf/saml-nameid-xml, procure por shibboleth.SAML2NameIDGenerators. Descomente o bean shibboleth.SAML2AttributeSourcedGenerator e comente todos os outros beans de referência.
<!-- SAML 2 NameID Generation -->
<util:list id="shibboleth.SAML2NameIDGenerators">
<!--<ref bean="shibboleth.SAML2TransientGenerator" /> -->
<!--<ref bean="shibboleth.SAML2PersistentGenerator" /> -->
<bean parent="shibboleth.SAML2AttributeSourcedGenerator"
p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
p:attributeSourceIds="#{ {'email'} }" />
</util:list>
- Certifique-se de ter definido AttributeDefinition em conf/attribute-resolver.xml.
<!-- Note: AttributeDefinitionid must be same as what you provided in attributeSourceIds in conf/saml-nameid.xml -->
<resolver:AttributeDefinitionxsi:type="ad:Simple" id="email" sourceAttributeID="mail">
<resolver:Dependency ref="ldapConnector" />
<resolver:AttributeEncoderxsi:type="enc:SAML2String" name="email" friendlyName="email" />
</resolver:AttributeDefinition>
<resolver:DataConnector id="ldapConnector"
xsi:type="dc:LDAPDirectory"
ldapURL="%{idp.authn.LDAP.ldapURL}"
baseDN="%{idp.authn.LDAP.baseDN}"
principal="%{idp.authn.LDAP.bindDN}"
principalCredential="%{idp.authn.LDAP.bindDNCredential}">
<dc:FilterTemplate>
<!-- Define you User Search Filter here -->
<![CDATA[(&(objectclass=*) (cn=$requestContext.principalName)) ]]>
</dc:FilterTemplate>
<dc:ReturnAttributes>*</dc:ReturnAttributes>
</resolver:DataConnector>
- Certifique-se de ter AttributeFilterPolicy definido em conf/attribute-filter.xml.
<afp:AttributeFilterPolicy id="ldapAttributes">
<afp:PolicyRequirementRulexsi:type="basic:ANY"/>
<afp:AttributeRuleattributeID="email">
<afp:PermitValueRulexsi:type="basic:ANY"/>
</afp:AttributeRule>
</afp:AttributeFilterPolicy>
- Reinicie o servidor Shibboleth.
- Você precisa configurar esses endpoints no middleware SAML do ASP.NET.
| ID da entidade IDP | https://<your_domain>/idp/shibboleth |
| URL de login único | https://<your_domain>/idp/profile/SAML2/Redirect/SSO |
| URL de logout único | https://<your_domain>/idp/shibboleth |
| Certificado X.509 | O certificado de chave pública do seu servidor Shibboleth |
- Você configurou com sucesso o Shibboleth como SAML IdP (Provedor de Identidade) para obter login SSO do Shibboleth no seu aplicativo ASP.NET.
3. Configurar metadados do provedor de identidade Shibboleth no aplicativo .NET
- Clique no Adicionar novo IDP botão para configurar um novo Provedor de Identidade.
- Sob o Configurações de Plugin guia, selecione shibboleth 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 shibboleth 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.
