Perfis de Confiabilidade RCTS
Esta página reflete agora o REFEDS Assurance Framework (RAF) v2.0, publicado a 5 de dezembro de 2023, substituindo os perfis anteriormente baseados na RAF v1.0.
A informação da versão anterior mantém-se disponível, por motivos de histórico e para instituições com processos de conformidade já registados contra essa versão, em Perfis de Confiabilidade RCTS - v1 (arquivo).
Numa federação de identidade, o Fornecedor de Serviço (SP) confia a gestão da identidade digital dos seus utilizadores ao Fornecedor de Identidade (IdP) da organização a que pertencem. O Fornecedor de Serviço precisa de saber o grau de confiança que pode depositar nessa identidade, proporcional à criticidade dos serviços e dados que disponibiliza, de forma a determinar o nível de risco aceitável. Este documento define um conjunto de regras que permite à Federação de Identidade RCTS validar e afirmar essa confiança, de forma consistente entre todos os seus Membros.
Os componentes que definem a qualidade da identidade digital em termos de processos de acreditação, verificação de identidade, gestão de Credenciais e qualidade de atributos baseiam-se em três referências normativas:
- REFEDS Assurance Framework v2.0 [RAF] - a norma principal, publicada pela comunidade internacional REFEDS, que define os níveis de garantia de identidade (IAP low, medium, high) e os perfis de assurance Cappuccino e Espresso.
- Regulamento de Execução (UE) 2015/1502 da Comissão [eIDAS-LoA] - a legislação europeia que define os níveis de garantia eIDAS (Baixo, Substancial, Elevado) usados por meios de identificação eletrónica reconhecidos entre Estados-Membros, como o Cartão de Cidadão ou a Chave Móvel Digital.
- Entity Authentication Assurance Framework [ITU-T X.1254 09/2020] - uma recomendação técnica internacional da ITU-T sobre a robustez do processo de autenticação em si, usada como referência de apoio.
Os componentes encontram-se divididos da seguinte forma:
- Identificadores: requisitos inerentes ao processo de atribuição de um identificador único e permanente que representa uma pessoa física.
- Verificação de Identidade e Gestão de Credenciais: requisitos inerentes ao processo de identificação e credenciação dos indivíduos, atribuição de credenciais e respetiva renovação e substituição, correspondendo ao nível de garantia de identidade (IAP low, medium ou high) definido pela RAF v2.0.
- Qualidade dos Atributos: requisitos relativos à atribuição de determinados níveis de qualidade e atualização dos atributos transmitidos pela organização.
Os requisitos da secção de Autenticação nos documentos definem a robustez do processo de autenticação em si, um conceito distinto da garantia de identidade, de forma compatível com:
- REFEDS Single Factor Authentication Profile [REFEDS-SFA] - requisitos para autenticação de fator único.
- REFEDS Multi-Factor Authentication Profile [REFEDS-MFA] - requisitos para autenticação multifator.
- NIST Digital Identity Guidelines: Authentication and Lifecycle Management [NIST 800-63B] - guia técnico do NIST sobre níveis de garantia de autenticador.
Atualmente existem quatro perfis de confiabilidade, que formam um conjunto ordenado de exigência crescente: quem cumpre um perfil mais elevado cumpre automaticamente todos os perfis abaixo dele. Cada perfil é descrito em detalhe nas secções seguintes.
- RCTS-P0 - nível mínimo, comum a todos os Membros da Federação.
- RCTS-P1 - identidade verificada com documento aparentemente autêntico.
- RCTS-P2 - identidade verificada com documento validado por fonte autorizada, com autenticação multifator.
- RCTS-P3 - nível mais exigente, com verificação via eIDAS, indicado para o acesso a serviços críticos ou altamente confidenciais.

Legenda
- ■ Perfil de confiabilidade atribuído
- ■ Perfil desce para RCTS-P1 por falta de MFA na sessão
Os perfis RCTS-P2 e RCTS-P3 exigem Autenticação Multifator (MFA) obrigatória. Sem MFA numa sessão, o utilizador é sinalizado apenas como RCTS-P1, independentemente do método de verificação de identidade usado na credenciação.
A tabela comparativa na secção Como Escolher o Perfil, ajudam a identificar qual o perfil indicado para cada grupo de utilizadores da instituição. Note-se que uma instituição não se candidata a um único perfil: os seus utilizadores podem ter níveis de confiança diferentes consoante o processo de identificação e o método de autenticação a que têm acesso, pelo que a mesma instituição pode, e normalmente deve, ter mais do que um perfil ativo em simultâneo (ver Analisar e Classificar Utilizadores).
Além do documento individual de cada perfil (disponível na secção "Links" de cada um), disponibilizamos também um Documento Consolidado que reúne, num único ficheiro, o detalhe normativo completo de todos os perfis. É este o documento de referência a consultar para uma leitura exaustiva dos requisitos, ou em caso de dúvida sobre a interpretação de algum critério.
Consulta o Documento Consolidado, na secção "Como Escolher o Perfil".
Perfil RCTS-P0
O Perfil de Confiabilidade RCTSaai-P0 significa o seguinte:
- Individuo é afiliado a um membro da Federação de Identidade RCTS;
- O individuo é uma pessoa física e não um robot ou uma peça de software;
- O individuo tem um identificador único e permanente;
- Os atributos/Informações divulgadas podem ser auto-asserções; e
- O sistema de gestão de identidade do membro cumpre os requisitos RCTS-P0.
Processo de Verificação da Conformidade
- As provas de conformidade são OBRIGATORIAMENTE parte da Declaração de Práticas de Gestão de Identidade, que DEVE descrever como a organização cumpre os requisitos do perfil.
- A organização Membro declara conformidade por autoauditoria, submetendo a Declaração à equipa de Operação da Federação.
- A organização Membro DEVE confirmar anualmente que a Declaração se mantém atual, e TEM DE a atualizar antes de alterar o processo ou a tecnologia de gestão de identidade.
- A Equipa de Gestão da Federação PODE exigir uma auditoria adicional.
Links
Perfil RCTS - P1
O Perfil de Confiabilidade RCTS-P1 significa o seguinte:
- O perfil é uma extensão do RCTS-P0;
- O individuo é afiliado a um membro da Federação de Identidade RCTS;
- A organização membro identificou/verificou o individuo através de um documento de identidade aparentemente autêntico;
- O individuo tem um identificador único e permanente;
- Atributos/Informações associadas à conta do utilizador são da responsabilidade da organização Membro.
Processo de Verificação da Conformidade
- As provas de conformidade são OBRIGATORIAMENTE parte da Declaração de Práticas de Gestão de Identidade, que DEVE descrever como a organização cumpre os requisitos do perfil.
- A auditoria da Declaração inclui uma ou mais reuniões, nas quais a equipa de Operação da Federação confirma que a organização Membro compreendeu os requisitos do perfil, resultando numa Avaliação de Perfil de Confiabilidade.
- A organização Membro DEVE confirmar anualmente que a Declaração se mantém atual, e TEM DE a atualizar antes de alterar o processo ou a tecnologia de gestão de identidade.
- A Equipa de Gestão da Federação PODE exigir uma auditoria adicional.
Links
- Perfil de Confiabilidade RCTS-P1
- Declaração de Práticas de Gestão de Identidade v2
- Avaliação de Perfil de Confiabilidade RCTS-P1
Perfil RCTS - P2
O Perfil de Confiabilidade RCTS-P2 significa o seguinte:
- O perfil é uma extensão do RCTS-P1;
- O individuo é afiliado a um membro da Federação de Identidade RCTS;
- A organização membro identificou e verificou o individuo através de um documento de identidade validado por fonte autorizada;
- O individuo tem um identificador único e permanente;
- Os atributos/Informações associadas à conta do utilizador são da responsabilidade da organização Membro;
- A Autenticação Multifator é obrigatória neste perfil; um utilizador que não recorra a MFA numa sessão é sinalizado apenas como RCTS-P1.
Processo de Verificação da Conformidade
- As provas de conformidade são OBRIGATORIAMENTE parte da Declaração de Práticas de Gestão de Identidade, que DEVE descrever como a organização cumpre os requisitos do perfil.
- A auditoria da Declaração inclui uma ou mais reuniões, nas quais a equipa de Operação da Federação confirma que a organização Membro compreendeu os requisitos do perfil, resultando numa Avaliação de Perfil de Confiabilidade.
- A organização Membro DEVE confirmar anualmente que a Declaração se mantém atual, e TEM DE a atualizar antes de alterar o processo ou a tecnologia de gestão de identidade.
- A Equipa de Gestão da Federação PODE exigir uma auditoria adicional.
Links
- Perfil de Confiabilidade RCTS-P2
- Declaração de Práticas de Gestão de Identidade v2
- Avaliação de Perfil de Confiabilidade RCTS-P2
Perfil RCTS - P3
O Perfil de Confiabilidade RCTS-P3 significa o seguinte:
- O perfil é uma extensão do RCTS-P2;
- O individuo é afiliado a um membro da Federação de Identidade RCTS;
- A organização membro identificou e confirmou o individuo através de um sistema eIDAS de nível de confiança Substancial/Elevado, ou credenciais equivalentes (Chave Móvel Digital, Cartão de Cidadão);
- O individuo tem um identificador único e permanente;
- Atributos/Informações associadas à conta do utilizador são da responsabilidade da organização Membro;
- A Autenticação Multifator é obrigatória.
Processo de Verificação da Conformidade
- As provas de conformidade são OBRIGATORIAMENTE parte da Declaração de Práticas de Gestão de Identidade, que DEVE descrever como a organização cumpre os requisitos do perfil.
- A auditoria da Declaração inclui uma ou mais reuniões, nas quais a equipa de Operação da Federação confirma que a organização Membro compreendeu os requisitos do perfil, resultando numa Avaliação de Perfil de Confiabilidade.
- A organização Membro DEVE confirmar anualmente que a Declaração se mantém atual, e TEM DE a atualizar antes de alterar o processo ou a tecnologia de gestão de identidade.
- A Equipa de Gestão da Federação PODE exigir uma auditoria adicional.
Links
- Perfil de Confiabilidade RCTS-P3
- Declaração de Práticas de Gestão de Identidade v2
- Avaliação de Perfil de Confiabilidade RCTS-P3
Como Escolher o Perfil
Se ainda não sabes qual perfil se aplica à tua instituição, esta secção ajuda a decidir, e o documento consolidado abaixo tem o detalhe normativo completo de todos os perfis num único ficheiro.
Visão Geral Comparativa dos Perfis
| Critério | RCTS-P0 | RCTS-P1 | RCTS-P2 | RCTS-P3 |
|---|---|---|---|---|
| É extensão de | - (nível mínimo comum a todos os Membros) | RCTS-P0 | RCTS-P0 + RCTS-P1 | RCTS-P0 + RCTS-P1 + RCTS-P2 |
| Verificação de identidade | Auto-asserção (sem evidência documental) | Documento de identidade aparentemente autêntico | Documento de identidade validado por fonte autorizada | Sistema eIDAS de nível de confiança Substancial ou Elevado |
| Autenticação mínima exigida | Fator único | Fator único | Multifator (obrigatório) | Multifator (obrigatório) |
| Nível IAP aproximado (RAF v2.0) | low (auto-afirmada) | low + medium (verificada com documento) | low + medium + high (com MFA; verificada com documento validado) | low + medium + high (com MFA; via equivalência eIDAS, Apêndice A.2 da RAF v2.0) |
| Perfil de assurance RAF | - (não atinge Cappuccino) | Cappuccino | Cappuccino e Espresso (com MFA) | Cappuccino / Espresso (com MFA) |
| Processo de verificação de conformidade | Autoauditoria pela própria organização | Auditoria pela equipa de Operação da Federação, com uma ou mais reuniões | Auditoria pela equipa de Operação da Federação, com uma ou mais reuniões | Auditoria pela equipa de Operação da Federação, com uma ou mais reuniões |
| Caso de uso típico | Auto-registo num portal web | Matrícula de um estudante | Registo de um funcionário | Acesso a serviços críticos ou altamente confidenciais |
Casos de Uso
RCTS-P0
- Processo de inscrição na universidade.
- Inscrição realizada no portal web via auto-registo, com verificação por confirmação de contacto (e-mail, telefone, etc.).
- Autenticação com fator único.
RCTS-P1
- Processo de matrícula de um estudante.
- Identificação pela exibição de um documento de identidade aparentemente autêntico.
- Autenticação com fator único.
RCTS-P2
- Processo de registo de um funcionário.
- Identificação através da apresentação de um documento de identidade, com verificação posterior através do NIF e outros documentos.
- Autenticação multifator.
RCTS-P3
- Acesso a serviços críticos ou altamente confidenciais, onde é essencial a verificação da identidade dos acessos.
- Identificação verificada através de outras credenciais, como a Chave Móvel Digital ou o Cartão de Cidadão.
- Autenticação multifator.
Representação dos Valores dos Perfis
Todos os perfis de confiabilidade de identidade da Federação RCTS, e os valores dos componentes de confiabilidade (Identificadores, Verificação de Identidade, Gestão de Credenciais e Qualidade dos Atributos) a eles associados, são expressos através do atributo SAML 2.0 [eduPerson] eduPersonAssurance, ou por meio de uma declaração OIDC [REFEDS OIDCre] eduperson_assurance.
Em conformidade com a RAF v2.0, sempre que forem afirmados valores de IAP baseados em processo (low/medium/high), o Fornecedor de Identidade DEVE também afirmar o claim https://refeds.org/assurance/version/2, para sinalizar que os critérios normativos da versão 2.0, e não da versão 1.0, foram cumpridos.
Perfil RCTS - P0
| Componente de Confiabilidade | Valores |
|---|---|
| Versão do Framework | https://refeds.org/assurance, https://refeds.org/assurance/version/2 |
| Identificadores | https://refeds.org/assurance/ID/unique, https://refeds.org/assurance/ID/eppn-unique-no-reassign [2] |
| IAP | https://refeds.org/assurance/IAP/low |
| Perfil Assurance | - |
| Qualidade dos Atributos [1] | Não cumpre; ou Atualização em 1 Mês: https://refeds.org/assurance/ATP/ePA-1m ouAtualização em 1 Dia: https://refeds.org/assurance/ATP/ePA-1d |
| Perfil RCTS | https://rctsfederation.fccn.pt/policy/assurance/RCTS-P0 |
Perfil RCTS - P1
| Componente de Confiabilidade | Valores |
|---|---|
| Versão do Framework | https://refeds.org/assurance, https://refeds.org/assurance/version/2 |
| Identificadores | https://refeds.org/assurance/ID/unique, https://refeds.org/assurance/ID/eppn-unique-no-reassign [2] |
| IAP | https://refeds.org/assurance/IAP/low, https://refeds.org/assurance/IAP/medium,https://refeds.org/assurance/IAP/local-enterprise [3] |
| Perfil Assurance | https://refeds.org/assurance/profile/cappuccino |
| Qualidade dos Atributos [1] | Não cumpre; ou Atualização em 1 Mês: https://refeds.org/assurance/ATP/ePA-1m ouAtualização em 1 Dia: https://refeds.org/assurance/ATP/ePA-1d |
| Perfil RCTS | https://rctsfederation.fccn.pt/policy/assurance/RCTS-P0, https://rctsfederation.fccn.pt/policy/assurance/RCTS-P1 |
Perfil RCTS - P2 (multifator)
| Componente de Confiabilidade | Valores |
|---|---|
| Versão do Framework | https://refeds.org/assurance, https://refeds.org/assurance/version/2 |
| Identificadores | https://refeds.org/assurance/ID/unique, https://refeds.org/assurance/ID/eppn-unique-no-reassign [2] |
| IAP | https://refeds.org/assurance/IAP/low, https://refeds.org/assurance/IAP/medium, https://refeds.org/assurance/IAP/high,https://refeds.org/assurance/IAP/local-enterprise [3] |
| Perfil Assurance | https://refeds.org/assurance/profile/cappuccino, https://refeds.org/assurance/profile/espresso |
| Qualidade dos Atributos [1] | Não cumpre; ou Atualização em 1 Mês: https://refeds.org/assurance/ATP/ePA-1m ouAtualização em 1 Dia: https://refeds.org/assurance/ATP/ePA-1d |
| Perfil RCTS | https://rctsfederation.fccn.pt/policy/assurance/RCTS-P0, https://rctsfederation.fccn.pt/policy/assurance/RCTS-P1, https://rctsfederation.fccn.pt/policy/assurance/RCTS-P2 |
Nota: sem autenticação multifator, o utilizador não cumpre RCTS-P2 e é sinalizado apenas como RCTS-P1.
Perfil RCTS - P3 (multifator)
| Componente de Confiabilidade | Valores |
|---|---|
| Versão do Framework | https://refeds.org/assurance, https://refeds.org/assurance/version/2 |
| Identificadores | https://refeds.org/assurance/ID/unique, https://refeds.org/assurance/ID/eppn-unique-no-reassign [2] |
| IAP | https://refeds.org/assurance/IAP/low, https://refeds.org/assurance/IAP/medium, https://refeds.org/assurance/IAP/high,https://refeds.org/assurance/IAP/local-enterprise [3] |
| Perfil Assurance | https://refeds.org/assurance/profile/cappuccino, https://refeds.org/assurance/profile/espresso |
| Qualidade dos Atributos [1] | Não cumpre; ou Atualização em 1 Mês: https://refeds.org/assurance/ATP/ePA-1m ouAtualização em 1 Dia: https://refeds.org/assurance/ATP/ePA-1d |
| Perfil RCTS | https://rctsfederation.fccn.pt/policy/assurance/RCTS-P0, https://rctsfederation.fccn.pt/policy/assurance/RCTS-P1, https://rctsfederation.fccn.pt/policy/assurance/RCTS-P2, https://rctsfederation.fccn.pt/policy/assurance/RCTS-P3 |
Nota: sem autenticação multifator, o utilizador não cumpre RCTS-P3 e é sinalizado apenas como RCTS-P1.
- [1] Se o Fornecedor de Identidade não cumpre os requisitos do componente "Qualidade dos Atributos", não deve ser adicionado valor.
- [2] Claim adicional, afirmado apenas quando o eduPersonPrincipalName é usado como identificador.
- [3] Claim opcional, que pode ser adicionalmente afirmado quando o mesmo processo de verificação de identidade e gestão de credenciais é também considerado, pela organização, suficiente para o acesso aos seus sistemas internos críticos. Aplicável apenas a partir do nível IAP medium (perfis RCTS-P1, RCTS-P2 e RCTS-P3).
Analisar e Classificar Utilizadores
Uma instituição pode ter utilizadores com vários níveis de confiança. Por exemplo, se só os funcionários têm acesso à autenticação Multifator, então apenas este conjunto de utilizadores pode candidatar-se ao perfil RCTS-P2 (com MFA) ou RCTS-P3.
As instituições, após a análise de cada um dos perfis de confiabilidade, têm de identificar, de acordo com os requisitos preenchidos pelos seus utilizadores, os perfis a que pretendem candidatar-se.
A instituição pode optar por guardar informação do nível de confiança do utilizador no respetivo Repositório (LDAP, AD, etc.). Por exemplo:
- Criar atributo
eduPersonAssuranceno LDAP; ou - Criar ou reutilizar Grupo(s) que espelham o Perfil (ex.: reutilizar o Grupo "Funcionários").
Após o processo de verificação de conformidade realizado pela equipa de Operação da Federação, será necessário configurar o Fornecedor de Identidade para libertar o atributo eduPersonAssurance, incluindo o claim version/2. Ver a secção Configurar o Fornecedor de Identidade, mais abaixo, para um exemplo de configuração.
Configurar o Fornecedor de Identidade
Exemplo de configuração do atributo eduPersonAssurance com base num atributo que suporta os perfis no LDAP.
Este exemplo foi atualizado para incluir o claim `version/2`, obrigatório na RAF v2.0, e para corrigir a lista de perfis reconhecidos (RCTS-P1, RCTS-P2 e RCTS-P3) e os claims em falta na afirmação de RCTS-P3 com MFA (`IAP/medium` e `profile/cappuccino`, cumulativos com `IAP/high` e `profile/espresso`).
Ficheiro: /opt/shibboleth-idp/conf/attribute-resolver-connectors.xml (adicionar os novos atributos e valores ao DataConnector "staticAttributes" já existente)
<DataConnector id="staticAttributes" xsi:type="Static">
<!-- Valores estáticos RAF (REFEDS Assurance Framework), utilizados em conjunto com o atributo filteredLDAPEduPersonAssurance -->
<Attribute id="refedsAssuranceFramework">
<Value>https://refeds.org/assurance</Value>
<Value>https://refeds.org/assurance/version/2</Value>
<Value>https://refeds.org/assurance/ID/unique</Value>
<Value>https://refeds.org/assurance/ID/eppn-unique-no-reassign</Value>
<Value>https://refeds.org/assurance/ATP/ePA-1m</Value>
</Attribute>
<!-- RAF (REFEDS Assurance Framework) e eduPersonAssurance -->
<!-- Utilizados em conjunto com o atributo filteredLDAPEduPersonAssurance -->
<!-- Devem estar aqui representados os perfis para os quais a instituição se candidatou e para os quais foi realizado o processo de verificação de conformidade -->
<Attribute id="allowedLDAPEduPersonAssurance">
<Value>https://rctsfederation.fccn.pt/policy/assurance/RCTS-P1</Value>
<Value>https://rctsfederation.fccn.pt/policy/assurance/RCTS-P2</Value>
<Value>https://rctsfederation.fccn.pt/policy/assurance/RCTS-P3</Value>
</Attribute>
<!-- Utilizado em conjunto com o atributo eduPersonAssurance -->
<Attribute id="assuranceLevel0">
<Value>https://rctsfederation.fccn.pt/policy/assurance/RCTS-P0</Value>
<Value>https://refeds.org/assurance/IAP/low</Value>
</Attribute>
</DataConnector>
Ficheiro: /opt/shibboleth-idp/conf/attribute-resolver-rctsaai-core.xml
<!-- filteredLDAPEduPersonAssurance verifica se o utilizador tem AL1, AL2 ou AL3 no LDAP -->
<!-- Utilizado em conjunto com o atributo eduPersonAssurance -->
<!-- Se tem AL1 - Envia AL1, rafMedium e rafCappuccino -->
<!-- Se tem AL2 - Só liberta [AL1, AL2, rafMedium, rafHigh, rafCappuccino e rafEspresso] se o serviço pede REFEDS MFA; caso contrário liberta [AL1, rafMedium e rafCappuccino] -->
<!-- Se tem AL3 - Só liberta [AL1, AL2, AL3, rafMedium, rafHigh, rafCappuccino e rafEspresso] se o serviço pede REFEDS MFA; caso contrário liberta [AL1, rafMedium e rafCappuccino] -->
<!-- NOTA IMPORTANTE: esta configuração é apenas um exemplo. A instituição deve garantir que só liberta valores RAF para os quais foi aprovada -->
<AttributeDefinition id="filteredLDAPEduPersonAssurance" xsi:type="ScriptedAttribute">
<InputDataConnector ref="myLDAP" attributeNames="eduPersonAssurance"/>
<InputDataConnector ref="staticAttributes" attributeNames="allowedLDAPEduPersonAssurance"/>
<Script><![CDATA[
logger = Java.type("org.slf4j.LoggerFactory").getLogger("net.shibboleth.idp.attribute.resolver.eppnbuilder");
mfaPrincipalName = "https://refeds.org/profile/mfa";
al3Assurance = "https://rctsfederation.fccn.pt/policy/assurance/RCTS-P3"
al2Assurance = "https://rctsfederation.fccn.pt/policy/assurance/RCTS-P2"
al1Assurance = "https://rctsfederation.fccn.pt/policy/assurance/RCTS-P1"
rafMedium = "https://refeds.org/assurance/IAP/medium"
rafHigh = "https://refeds.org/assurance/IAP/high"
rafCappuccino = "https://refeds.org/assurance/profile/cappuccino"
rafEspresso = "https://refeds.org/assurance/profile/espresso"
try {
value = eduPersonAssurance.getValues().get(0);
// Verificar que o valor atribuído ao utilizador se encontra dentro dos valores que a instituição pode processar (allowedLDAPEduPersonAssurance)
if (allowedLDAPEduPersonAssurance.getValues().contains(value))
{
// Se tem AL1 - Envia AL1, rafMedium e rafCappuccino
if (value == al1Assurance)
{
filteredLDAPEduPersonAssurance.addValue(value);
filteredLDAPEduPersonAssurance.addValue(rafMedium);
filteredLDAPEduPersonAssurance.addValue(rafCappuccino);
}
// Se tem AL2 - Só liberta [AL1, AL2, rafMedium, rafHigh, rafCappuccino e rafEspresso] se o serviço pede REFEDS MFA; caso contrário liberta [AL1, rafMedium e rafCappuccino]
if (value == al2Assurance)
{
// Verifica se o SP pediu REFEDS MFA
if (profileContext)
{
authenticationContext = profileContext.getSubcontext("net.shibboleth.idp.authn.context.AuthenticationContext");
if(authenticationContext)
{
requestedPrincipalContext = authenticationContext.getSubcontext("net.shibboleth.idp.authn.context.RequestedPrincipalContext");
if(requestedPrincipalContext)
{
matchingPrincipal = requestedPrincipalContext.getMatchingPrincipal();
if (matchingPrincipal && matchingPrincipal.getName() == mfaPrincipalName)
{
filteredLDAPEduPersonAssurance.addValue(al1Assurance);
filteredLDAPEduPersonAssurance.addValue(value);
filteredLDAPEduPersonAssurance.addValue(rafMedium);
filteredLDAPEduPersonAssurance.addValue(rafHigh);
filteredLDAPEduPersonAssurance.addValue(rafCappuccino);
filteredLDAPEduPersonAssurance.addValue(rafEspresso);
}else{
filteredLDAPEduPersonAssurance.addValue(al1Assurance);
filteredLDAPEduPersonAssurance.addValue(rafMedium);
filteredLDAPEduPersonAssurance.addValue(rafCappuccino);
}
}
}
}
}
// Se tem AL3 - Só liberta [AL1, AL2, AL3, rafMedium, rafHigh, rafCappuccino e rafEspresso] se o serviço pede REFEDS MFA; caso contrário liberta [AL1, rafMedium e rafCappuccino]
if (value == al3Assurance)
{
// Verifica se o SP pediu REFEDS MFA
if (profileContext)
{
authenticationContext = profileContext.getSubcontext("net.shibboleth.idp.authn.context.AuthenticationContext");
if(authenticationContext)
{
requestedPrincipalContext = authenticationContext.getSubcontext("net.shibboleth.idp.authn.context.RequestedPrincipalContext");
if(requestedPrincipalContext)
{
matchingPrincipal = requestedPrincipalContext.getMatchingPrincipal();
if (matchingPrincipal && matchingPrincipal.getName() == mfaPrincipalName)
{
filteredLDAPEduPersonAssurance.addValue(al1Assurance);
filteredLDAPEduPersonAssurance.addValue(al2Assurance);
filteredLDAPEduPersonAssurance.addValue(value);
filteredLDAPEduPersonAssurance.addValue(rafMedium);
filteredLDAPEduPersonAssurance.addValue(rafHigh);
filteredLDAPEduPersonAssurance.addValue(rafCappuccino);
filteredLDAPEduPersonAssurance.addValue(rafEspresso);
}else{
filteredLDAPEduPersonAssurance.addValue(al1Assurance);
filteredLDAPEduPersonAssurance.addValue(rafMedium);
filteredLDAPEduPersonAssurance.addValue(rafCappuccino);
}
}
}
}
}
}
} catch(err) {
logger.info("eduPersonAssurance not set in LDAP.");
}
]]>
</Script>
</AttributeDefinition>
<!-- eduPersonAssurance - Envia os valores base da RAF mais o Perfil RCTS-P0 (refedsAssuranceFramework e assuranceLevel0), em conjunto com o resultado do filteredLDAPEduPersonAssurance -->
<!-- NOTA: a instituição tem de estar aprovada para, pelo menos, RCTS-P1 para poder usar este exemplo -->
<AttributeDefinition xsi:type="Simple" id="eduPersonAssurance">
<InputAttributeDefinition ref="filteredLDAPEduPersonAssurance" />
<InputDataConnector ref="staticAttributes" attributeNames="refedsAssuranceFramework assuranceLevel0"/>
<AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:eduPersonAssurance" encodeType="false" />
<AttributeEncoder xsi:type="SAML2String" name="urn:oid:1.3.6.1.4.1.5923.1.1.1.11" friendlyName="eduPersonAssurance" encodeType="false" />
</AttributeDefinition>