Um provedor de identidade empresarial do SAML
Este tópico fornece informações sobre os metadados do ` SAML ` e o mapeamento de atributos de usuário necessários para configurar um provedor de identidade do ` SAML Enterprise`.
SAML é um padrão XML para a troca de informações de autenticação única entre um provedor de identidade, que verifica a identidade do usuário, e um provedor de serviços, que utiliza essas informações de identidade. Em comparação com um provedor de identidade do Cloud Directory, um provedor de identidade do SAML Enterprise é mais complicado de configurar.
- Delega IBM® Verify a autenticação a um provedor de identidade externo que autentica os usuários. Por exemplo, Microsoft ADFS ou Microsoft Azure AD.
- Preenche um Verify token de credenciais do usuário com as informações de identidade do usuário retornadas.
- Forneça o arquivo de metadados do provedor de identidade SAML 2.0 ao provedor de identidade SAML Enterprise.
- Obtenha o arquivo de metadados do provedor de serviços SAML 2.0 do provedor de identidade SAML Enterprise.
Requisitos de metadados SAML
- O conteúdo dos arquivos de metadados do provedor de serviços e do provedor de identidade deve estar em conformidade com a especificação SAML 2.0.
- O arquivo de metadados do provedor de identidade deve conter a chave pública do provedor de identidade para permitir que o provedor de identidade do SAML Enterprise valide sua assinatura digital. Os metadados do ` SAML ` devem conter um
<KeyDescriptor>elemento `. Exemplo de um elemento<KeyDescriptor>para chaves de assinatura:<md:KeyDescriptor use="signing"> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Data> <X509Certificate>idp.example.com SSO key</X509Certificate> </X509Data> </KeyInfo> </md:KeyDescriptor> - O arquivo de metadados do provedor de serviços deve conter pelo menos um elemento
<md:KeyDescriptor use="signing">. Por Exemplo:<md:KeyDescriptor use="signing"> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Data> <X509Certificate>(...signing certificate...)</X509Certificate> </X509Data> </KeyInfo> </md:KeyDescriptor> - Se o provedor de identidade do SAML Enterprise estiver utilizando um certificado de CA raiz ou intermediário interno, cada certificado da cadeia precisa conter uma
<X509Certificate>stanza. Por Exemplo:<KeyDescriptor use="signing"> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Data> <X509Certificate>...root CA base64 encoded public certificate...</X509Certificate> <X509Certificate>...intermediate CA base64 encoded public certificate...</X509Certificate> <X509Certificate>...signer base64 encoded public certificate ...</X509Certificate> </X509Data> </KeyInfo> </KeyDescriptor>Atualize os<md:KeyDescriptor use="signing">elementos e<md:KeyDescriptor use="encryption">nos metadados do SAML.Nota: O certificado no<md:KeyDescriptor use="encryption">elemento do arquivo de metadados do provedor de serviços pode ser utilizado pelo provedor de identidade externo SAML 2.0 para criptografar e enviar os elementos de asserção SAML2 para Verify.
SAML mapeamento entre asserções e Verify tokens de credenciais
- O Verify token de credencial, que representa um usuário autenticado do Verify Connect.
Ele armazena a identidade do usuário e suas informações sobre o atributo.
- Uma solicitação de saída do SAML para o aplicativo SaaS.
| O valor deste elemento de afirmação ` SAML ` | É incluído no Verify token de credencial como |
|---|---|
<saml:Subject><saml:NameID> |
preferred_username |
<saml:Issuer> |
realmName, se realmName a reivindicação não estiver explicitamente incluída na asserção SAML.Nota: Se
<saml:Issuer> estiver no formato http(s) URL, o <hostname> no URL é extraído e usado para definir o realmName atributo. |
<saml:AttributeStatement>Outras informações de identidade do usuário podem ser incluídas na asserção ` SAML `. O
elemento <saml:AttributeValue> suporta somente o tipo de dados
de sequência.
<saml:Attribute Name> corresponder a um dos seguintes atributos padrão do diretório Verify na nuvem, o atributo é adicionado ao token Verify de credenciais como um atributo padrão com o mesmo nome:preferred_usernamegiven_namefamily_namenameoudisplayNameemailouemailAddressgroupsougroupIdsuserIDrealmNamemobile_number
Se os <saml:Attribute Name> atributos não corresponderem a nenhum dos atributos padrão do diretório Verify na nuvem, o atributo é adicionado ao Verify token de credenciais como um atributo estendido. Os atributos estendidos têm um prefixo ext:: nos nomes de atributos originais.
<saml:AttributeStatement> de atributos contém os atributos emailAddresse mobile_number a serem propagados para o Verify token de credenciais.<?xml version="1.0"?>
<samlp:Response xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
ID="FIMRSP_549f7c46-014a-195f-b377-f24678dbf88a"
IssueInstant="2014-12-16T19:42:25Z" Version="2.0">
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion ID="Assertion-uuid549f74ad-014a-120d-a67b-f24678dbf88a"
IssueInstant="2014-12-16T19:42:23Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
https://idp.example.com/SAML</saml:Issuer>
<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">testuser
</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2014-12-16T19:43:23Z"
Recipient="https://sp.iam.ibmcloud.com/SAML"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2014-12-16T19:41:23Z" NotOnOrAfter="2014-12-16T19:43:23Z">
<saml:AudienceRestriction>
<saml:Audience>https://sp.iam.ibmcloud.com/SAML</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2014-12-16T19:42:23Z"
SessionIndex="uuid549ad19a-014a-1451-8e4d-998e0731058a"
SessionNotOnOrAfter="2014-12-16T20:42:21Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
<saml:AttributeStatement>
<saml:Attribute Name="emailAddress"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xsi:type="xs:string">testuser@idp.example.com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="mobile_number"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
<saml:AttributeValue xsi:type="xs:string">01234556789</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>
{
"preferred_username":"testuser",
"realmName": "idp.example.com",
"email":"testuser@idp.example.com",
"ext:mobileNumber": "01234556789"
}