A resposta SAML para SSO baseado em usuário deve conter elementos de asserção específicos para que a Alibaba Cloud verifique a identidade do usuário.
Contexto
Em um fluxo de SSO baseado em SAML 2.0, após o usuário fazer login no provedor de identidade (IdP), o IdP gera uma resposta de autenticação com uma asserção SAML baseada na vinculação HTTP-POST. O navegador ou aplicativo encaminha automaticamente essa resposta para a Alibaba Cloud, que utiliza a asserção para verificar a identidade do usuário. Se a asserção não incluir os elementos obrigatórios, o SSO falhará.
Resposta SAML
O IdP deve enviar uma resposta SAML à Alibaba Cloud com os seguintes elementos obrigatórios.
<saml2p:Response>
<saml2:Issuer>...</saml2:Issuer>
<saml2p:Status>
...
</saml2p:Status>
<saml2:Assertion>
<saml2:Issuer>...</saml2:Issuer>
<ds:Signature>
...
</ds:Signature>
<saml2:Subject>
<saml2:NameID>${NameID}</saml2:NameID>
<saml2:SubjectConfirmation>
...
</saml2:SubjectConfirmation>
</saml2:Subject>
<saml2:Conditions>
<saml2:AudienceRestriction>
<saml2:Audience>${Audience}</saml2:Audience>
</saml2:AudienceRestriction>
</saml2:Conditions>
<saml2:AuthnStatement>
...
</saml2:AuthnStatement>
</saml2:Assertion>
</saml2p:Response>
Elementos da asserção SAML
-
General elements of the SAML 2.0 protocol
A especificação SAML 2.0 fornece todos os detalhes do protocolo.
Elemento
Descrição
IssuerO valor de
Issuerdeve corresponder aoEntityIDno arquivo de metadados carregado nas configurações de SSO baseado em usuário da Alibaba Cloud.SignatureA asserção SAML deve ser assinada para evitar adulterações. O elemento
Signaturee seus filhos devem conter o valor da assinatura, o algoritmo de assinatura e informações relacionadas.SubjectO elemento
Subjectdeve conter os seguintes elementos:-
Exatamente um elemento
NameID, que identifica um usuário RAM na sua conta Alibaba Cloud. As seções sobre o elemento NameID e exemplos de NameID abaixo descrevem os requisitos de formato. -
Exatamente um elemento
SubjectConfirmationque contenha um elementoSubjectConfirmationData. O elementoSubjectConfirmationDatadeve ter os seguintes atributos:-
NotOnOrAfter: período de validade da asserção SAML. -
Recipient: a Alibaba Cloud verifica este valor para confirmar o destinatário pretendido. O valor deve serhttps://signin-intl.aliyun.com/saml/SSO.
Exemplo do elemento
Subject:<Subject> <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">Alice@example.onaliyun.com</NameID> <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <SubjectConfirmationData NotOnOrAfter="2019-01-01T00:01:00.000Z" Recipient="https://signin-intl.aliyun.com/saml/SSO"/> </SubjectConfirmation> </Subject> -
ConditionsO elemento
Conditionsdeve conter um elementoAudienceRestrictioncom um ou mais elementosAudience. Pelo menos um elementoAudiencedeve ter o valorhttps://signin-intl.aliyun.com/${accountId}/saml/SSO, onde${accountId}é o ID da conta Alibaba Cloud.Exemplo do elemento
Conditions:<Conditions> <AudienceRestriction> <Audience>https://signin-intl.aliyun.com/${accountId}/saml/SSO</Audience> </AudienceRestriction> </Conditions> -
-
NameID element
A Alibaba Cloud usa o User Principal Name (UPN) para localizar usuários RAM. A asserção SAML do IdP deve conter o UPN do usuário RAM no elemento
NameID.No IdP, mapeie o campo correspondente ao UPN do usuário RAM para o elemento
NameID.O valor de
NameIDdeve usar um dos seguintes formatos:Use o Domain Alias como sufixo para o elemento
NameIDno formato<username>@<domain_alias>. Nesse formato,<username>é o nome de usuário de um usuário RAM e<domain_alias>é o sufixo de logon personalizado. Crie e verifique um sufixo de logon personalizado.-
Use o Auxiliary Domain Name como sufixo para o elemento
NameIDno formato<username>@<auxiliary_domain>. Nesse formato,<username>representa o nome de usuário de um usuário RAM e<auxiliary_domain>corresponde ao sufixo de logon auxiliar. Configure o SAML para o SP da Alibaba Cloud para SSO baseado em usuário.NotaSe você configurar um alias de domínio e um domínio auxiliar simultaneamente, o domínio auxiliar será ignorado. Nesse caso, use apenas o alias de domínio no elemento
NameID. -
Use o Default Domain como sufixo para o elemento
NameID. O formato é<username>@<default_domain>, onde<username>é o nome do usuário RAM e<default_domain>é o sufixo de logon padrão. Gerencie o nome de domínio de logon para um usuário RAM.NotaO sufixo de logon padrão permanece válido para
NameIDmesmo que você defina um sufixo de logon personalizado ou auxiliar.
-
NameID examples
O nome de usuário RAM é
Alicee o sufixo de logon padrão éexample.onaliyun.com.Se o sufixo de logon personalizado for
example.com, o valor deNameIDseráAlice@example.onaliyun.comouAlice@example.com.Se nenhum sufixo de logon personalizado estiver configurado e o sufixo de logon auxiliar for
example.net, o valor deNameIDpoderá serAlice@example.onaliyun.comouAlice@example.net.Se o sufixo de logon personalizado for
example.come o sufixo de logon auxiliar forexample.net, o valor deNameIDseráAlice@example.onaliyun.comouAlice@example.com. Nesse cenário, o sufixo de logon auxiliar não terá efeito.