AuthnRequest Definições no OAM e no SP

Este artigo lista as várias definições de OAM/SP que afetam como uma mensagem AuthnRequest é criada no OAM em um fluxo de SSO de Federação. A mensagem AuthnRequest é usada por um SP para iniciar uma operação SSO de Federação e para indicar ao IdP como a operação deve ser executada:

Protocolos

Os protocolos SAML 2.0, SAML 1.1 e OpenID 2.0 definem diferentes elementos de mensagem e regras que permitem que um administrador influencie os fluxos de SSO de Federação de maneiras diferentes, quando o SP dispara uma operação SSO:

SAML 2.0

O OAM/SP permite a personalização da mensagem SAML 2.0 AuthnRequest para os seguintes elementos:

ForceAuthn:

IsPassive

RequestedAuthnContext

NameIDPolicy

ProtocolBinding

O OAM/SP também permite que o administrador configure o servidor para:

SAML 1.1

As especificações SAML 1.1 não definem uma mensagem para o SP para enviar ao IdP quando uma operação SSO de Federação é iniciada. Como tal, não há capacidade de configurar o OAM/SP sobre como afetar o início do fluxo SSO da Federação.

OpenID 2.0

OpenID 2.0 define várias extensões que podem ser usadas pelo SP/RP para afetar a forma como a operação SSO de Federação ocorre:

Solicitação OpenID:

Extensão PAPE:

preferred_auth_policies

Extensão da IU

Preferência de Idioma

Ícone:

ForceAuthn e IsPassive

Comando WLST

O OAM/SP fornece o comando WLST configureIdPAuthnRequest() para definir:

ForceAuthn como um booliano:

IsPassive como um booliano:

Teste

Neste teste, o OAM/SP é integrado com um Parceiro SAML 2.0 IdP remoto, com a configuração do OOTB. Com base nessa configuração, quando o OAM/SP inicia um fluxo de SSO de Federação, o seguinte SAML 2.0 AuthnRequest é gerado:

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

Vamos configurar o OAM/SP para esse Parceiro IdP, para que o SP exija que o IdP refaça o desafio ao usuário, mesmo que ele já tenha sido autenticado:

  1. Informe o ambiente WLST executando:$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. Conecte-se ao servidor de Administração WLS: connect()
  3. Navegue até a ramificação Runtime do Domínio: domainRuntime()
  4. Execute o comando configureIdPAuthnRequest(): configureIdPAuthnRequest(partner="AcmeIdP", forceAuthn="true")
  5. Saia do ambiente WLST: exit()

Após as alterações, o SAML 2.0 AuthnRequest a seguir é gerado:

<samlp:AuthnRequest ForceAuthn="true" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP- POST" ID="id- E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4" Version="2.0" IssueInstant="2014-04-01T21:39:14Z" Destination="https://acme.com/saml20/sso">
   <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

Para exibir ou excluir as definições de ForceAuthn/IsPassive, execute as seguintes operações:

  1. Informe o ambiente WLST executando: $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. Conecte-se ao servidor de Administração WLS: connect()
  3. Navegue até a ramificação Runtime do Domínio: domainRuntime()
  4. Execute o comando configureIdPAuthnRequest() para exibir as definições ForceAuthn/IsPassive no parceiro configureIdPAuthnRequest(partner="AcmeIdP", displayOnly="true")
  5. Para excluir as definições ForceAuthn/IsPassive do parceiro configureIdPAuthnRequest(partner="AcmeIdP", delete="true")
  6. Saia do ambiente WLST: exit()

Método de autenticação Fed. solicitado

No artigo "Fed Authentication Method Requests in OAM / SP", discutimos como o OAM/SP pode ser configurado para solicitar um Método de Autenticação de Federação específico do IdP ao iniciar uma operação SSO de Federação, definindo elementos na mensagem de solicitação SSO.

Comando WLST

Os comandos WLST do OAM que podem ser usados são:

Isso se aplica aos protocolos SAML 2.0 e OpenID 2.0. Consulte o artigo "Fed Authentication Method Requests in OAM / SP" para obter mais informações.

Teste

Neste teste, o OAM/SP é integrado com um Parceiro SAML 2.0 IdP remoto, com a configuração do OOTB. Com base nessa configuração, quando o OAM/SP inicia um fluxo de SSO de Federação, o seguinte SAML 2.0 AuthnRequest é gerado:

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

Vamos configurar o OAM/SP desse Parceiro IdP para que o SP solicite o IdP para usar um mecanismo mapeado para o Método de Autenticação da Federação urn:oasis:names:tc:SAML:2.0:ac:classes:X509 para autenticar o usuário:

  1. Informe o ambiente WLST executando: $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. Conecte-se ao servidor de Administração WLS: connect()
  3. Navegue até a ramificação Runtime do Domínio: domainRuntime()
  4. Execute o comando setIdPPartnerRequestAuthnMethod(): setIdPPartnerRequestAuthnMethod("AcmeIdP", "urn:oasis:names:tc:SAML:2.0:ac:classes:X509")
  5. Saia do ambiente WLST: exit()

Após as alterações, o SAML 2.0 AuthnRequest a seguir é gerado:

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com /oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/>
   <samlp:RequestedAuthnContext
Comparison="minimum">
      <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
         urn:oasis:names:tc:SAML:2.0:ac:classes:X509
      </saml:AuthnContextClassRef>
   </samlp:RequestedAuthnContext> </samlp:AuthnRequest>

Formato NameID

O protocolo SAML 2.0 permite que o SP solicite ao IdP um formato NameID específico a ser usado quando a Asserção for emitida pelo IdP.

Observação: SAML 1.1 e OpenID 2.0 não fornecem esse mecanismo

Configurando o OAM

O administrador pode configurar o OAM/SP para solicitar um formato NameID no SAML 2.0 AuthnRequest via:

Console de Administração do OAM

Para configurar o formato NameID solicitado pela Console de Administração do OAM, execute as seguintes etapas:

  1. Vá para a Console de Administração do OAM: http(s)://oam-admin-host:oam-adminport/oamconsole
  2. Navegue até Federação de Identidades, Administração do Provedor de Serviços
  3. Abra o Parceiro IdP que deseja modificar
  4. Na caixa drop-down Formato de Solicitação de Autenticação NameID com um dos valores:
    • None: O formato NameID é definido como Padrão
    • Email Address: O formato NameID será definido como urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress
    • X.509 Subject: O formato NameID será definido como urn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectName
    • Windows Name Qualifier: O formato NameID será definido como urn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedName
    • Kerberos: O formato NameID será definido como urn:oasis:names:tc:SAML:2.0:nameidformat:kerberos
    • Transient: O formato NameID será definido como urn:oasis:names:tc:SAML:2.0:nameidformat:transient
    • Unspecified: O formato NameID será definido como urn:oasis:names:tc:SAML:1.1:nameidformat:unspecified
    • Custom: Nesse caso, um campo é exibido permitindo que o administrador indique o formato NameID personalizado para usar O formato NameID será definido com o formato especificado
    • Persistent: The NameID format will be set urn:oasis:names:tc:SAML:2.0:nameidformat:persistent we selected Email Address` neste exemplo
  5. Clique em Salvar

Descrição da ilustração OAM_Administration_Console.jpg

Descrição da ilustração OAM Administration Console.jpg

Comando WLST

Para configurar o formato NameID solicitado por meio do comando WLST setIdPPartnerNameIDFormat() do OAM, execute as seguintes etapas:

  1. Informe o ambiente WLST executando: $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. Conecte-se ao servidor de Administração WLS: connect()
  3. Navegue até a ramificação Runtime do Domínio: domainRuntime()
  4. Execute o comando setIdPPartnerNameIDFormat(): setIdPPartnerNameIDFormat("PARTNER", "FORMAT", customFormat="CUSTOM")
    • Substituir PARCEIRO pelo nome do Parceiro IdP
    • Substitua FORMAT por um dos seguintes:
    • orafed-none: O formato NameID será definido como Padrão
    • orafed-emailaddress: O formato NameID será definido como urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress
    • orafed-x509: O formato NameID será definido como urn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectName
    • orafed-windowsnamequalifier: O formato NameID será definido como urn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedName
    • orafed-kerberos: O formato NameID será definido como urn:oasis:names:tc:SAML:2.0:nameidformat:Kerberos
    • orafed-transient: O formato NameID será definido como urn:oasis:names:tc:SAML:2.0:nameidformat:transient
    • orafed-unspecified: O formato NameID será definido como urn:oasis:names:tc:SAML:1.1:nameidformat:unspecified
    • orafed-custom: Nesse caso, um campo é exibido permitindo que o administrador indique o formato NameID personalizado a ser usado. O formato NameID será definido como o formato especificado
      • orafed-persistent: O formato NameID será definido como urn:oasis:names:tc:SAML:2.0:nameidformat:persistent
      • customFormat precisará ser definido se FORMAT for definido como orafed-custom Um exemplo é: setIdPPartnerNameIDFormat("AcmeIdP", "orafed-emailaddress")
  5. Saia do ambiente WLST: exit()

Teste

Neste teste, o OAM/SP é integrado com um Parceiro SAML 2.0 IdP remoto, com a configuração do OOTB. Com base nessa configuração, quando o OAM/SP inicia um fluxo de SSO de Federação, o seguinte SAML 2.0 AuthnRequest é gerado:

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
<samlp:NameIDPolicy AllowCreate="true"/>
</samlp:AuthnRequest>

Após as alterações executadas pela Console de Administração do OAM ou pelo comando WLST setIdPPartnerNameIDFormat() do OAM, em que o Endereço de E-mail é solicitado como o Formato NameID, o SAML 2.0 AuthnRequest a seguir é gerado:

<samlp:AuthnRequest ForceAuthn="false"
IsPassive="false"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
<samlp:NameIDPolicy
Format="urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress" AllowCreate="true"/> </samlp:AuthnRequest>

Bind do protocolo

As especificações SAML 2.0 definem uma forma de o SP solicitar qual binding deve ser usado pelo IdP para redirecionar o usuário para o SP com a Asserção SAML 2.0: o atributo ProtocolBinding indica o binding que o IdP deve usar. Ele é definido como:

As especificações SAML 2.0 também definem maneiras diferentes de redirecionar o usuário do SP para o IdP com a mensagem SAML 2.0 AuthnRequest, pois o SP pode enviar a mensagem:

Configurando o OAM

O OAM pode ser configurado:

Observação: O binding para enviar a mensagem SAML 2.0 AuthnRequest também será usado para enviar as mensagens SAML 2.0 LogoutRequest e LogoutResponse.

Console de Administração do OAM

Para configurar o Binding de Resposta/Asserção de SSO por meio da Console de Administração do OAM, execute as seguintes etapas:

  1. Vá para a Console de Administração do OAM: http(s)://oam-admin-host:oam-adminport/oamconsole.
  2. Navegue até Federação de Identidades, Administração do Provedor de Serviços.
  3. Abra o Parceiro IdP que deseja modificar.
  4. Marque a caixa "Binding de Resposta HTTP POST SSO" para solicitar o IdP para retornar a Resposta SSO via HTTP POST; caso contrário, desmarque-a para solicitar o artefato.
  5. Clique em Salvar.

Descrição da ilustração SSO_Response_Assertion_Configuration.jpg

Comando WLST

Para configurar o Binding de Resposta/Asserção de SSO, bem como o Binding de AuthnRequest, por meio do comando WLST configureSAMLBinding() do OAM, execute as seguintes etapas:

  1. Informe o ambiente WLST executando: $IAM_ORACLE_HOME/common/bin/wlst.sh
  2. Conecte-se ao servidor de Administração WLS: connect()
  3. Navegue até a ramificação Runtime do Domínio: domainRuntime()
  4. Execute o comando configureSAMLBinding(): configureSAMLBinding("PARTNER", "PARTNER_TYPE", binding, ssoResponseBinding="httppost")
  5. Substituir PARCEIRO pelo nome do Parceiro
  6. Substitua PARTNER_TYPE pelo tipo de Parceiro (idp ou sp)
  7. Substitua a vinculação pela vinculação a ser usada para enviar as mensagens AuthnRequest e LogoutRequest/LogoutResponse (deve ser httpredirect na maioria dos casos; padrão)
  8. Especifique opcionalmente ssoResponseBinding para indicar como a Asserção de SSO deve ser enviada de volta
  9. Saia do ambiente WLST: exit()

Teste

Neste teste, o OAM/SP é integrado com um Parceiro SAML 2.0 IdP remoto, com a configuração do OOTB que solicita o HTTP-POST de IdP para enviar a Asserção de SSO. Com base nessa configuração, quando o OAM/SP inicia um fluxo de SSO de Federação, o seguinte SAML 2.0 AuthnRequest é gerado:

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.