Un fournisseur d'identité d'entreprise « SAML »
Cette rubrique fournit des informations sur les métadonnées d' SAML s et le mappage des attributs utilisateur nécessaires à la configuration d'un fournisseur d'identité SAML Enterprise.
SAML Il s'agit d'une norme XML permettant l'échange d'informations d'authentification unique entre un fournisseur d'identité, qui certifie l'identité de l'utilisateur, et un fournisseur de services, qui utilise ces informations d'identité. Par rapport à un fournisseur d'identité de type « Cloud Directory », un fournisseur d'identité d'entreprise de type « SAML » est plus complexe à configurer.
- Délègue IBM® Verify l'authentification à un fournisseur d'identité externe chargé d'authentifier les utilisateurs. Par exemple, Microsoft ADFS ou Microsoft Azure AD.
- Remplit un Verify jeton d'identification utilisateur avec les informations d'identité de l'utilisateur renvoyées.
- Fournissez le fichier de métadonnées du fournisseur d'identité SAML 2.0 au fournisseur d'identité d' SAML Enterprise.
- Récupérez le fichier de métadonnées du fournisseur de services « SAML » ( 2.0 ) auprès du fournisseur d'identité d'entreprise SAML.
Exigences des métadonnées SAML
- Le contenu des fichiers de métadonnées fournisseur de services et fournisseur d'identité doit être conforme à la spécification SAML 2.0.
- Le fichier de métadonnées du fournisseur d'identité doit contenir la clé publique de ce dernier afin de permettre au fournisseur d'identité d' SAML Enterprise de valider sa signature numérique. Les métadonnées de l' SAML doivent comporter un
<KeyDescriptor>élément. Exemple d'un élément<KeyDescriptor>pour les clés de signature :<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> - Le fichier de métadonnées service provider doit contenir au moins un élément
<md:KeyDescriptor use="signing">. Par exemple :<md:KeyDescriptor use="signing"> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <X509Data> <X509Certificate>(...signing certificate...)</X509Certificate> </X509Data> </KeyInfo> </md:KeyDescriptor> - Si le fournisseur d'identité d' SAML Enterprise utilise un certificat de racine ou un certificat d'autorité de certification intermédiaire interne, chaque certificat de la chaîne doit comporter une
<X509Certificate>section. Par exemple :<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>Mettez à jour les<md:KeyDescriptor use="signing">éléments et<md:KeyDescriptor use="encryption">dans les métadonnées de l' SAML.Remarque : le certificat figurant dans<md:KeyDescriptor use="encryption">l'élément du fichier de métadonnées du fournisseur de services peut être utilisé par le fournisseur d'identité externe SAML 2.0 pour chiffrer et envoyer les éléments d'assertion SAML2 à Verify.
SAML Mappage entre les assertions et Verify les jetons d'identification
- Le Verify jeton d'identification, qui représente un utilisateur Connect authentifié Verify .
Il stocke l'identité de l'utilisateur et ses informations d'attributs.
- Une requête « SAML » sortante vers l'application SaaS.
| La valeur de cet élément d'assertion « SAML » | est ajouté au Verify jeton d'authentification sous la forme |
|---|---|
<saml:Subject><saml:NameID> |
preferred_username |
<saml:Issuer> |
realmName, si realmName cette affirmation n'est pas explicitement incluse dans l 'assertion « SAML ».Remarque : si
<saml:Issuer> se présente sous la forme http(s) URL, le <hostname> contenu de l' URL est extrait et utilisé pour définir l'attribut realmName . |
<saml:AttributeStatement>D'autres informations d'identification de l'utilisateur peuvent être incluses dans l 'assertion « SAML ». L'élément <saml:AttributeValue> prend en charge le type de données chaîne
seulement.
<saml:Attribute Name> correspond à l'un des attributs standard suivants provenant du Verify répertoire cloud, cet attribut est ajouté au jeton Verify d'identification en tant qu'attribut standard portant le même nom :preferred_usernamegiven_namefamily_namenameoudisplayNameemailouemailAddressgroupsougroupIdsuserIDrealmNamemobile_number
Si les attributs <saml:Attribute Name> ne correspondent à aucun des attributs standard du répertoire Verify cloud, l'attribut est ajouté au Verify jeton d'identification en tant qu'attribut étendu. Les noms d'attributs étendus d'origine comportent le préfixe
ext::.
<saml:AttributeStatement> d'attributs contient les emailAddressattributs et mobile_number qui doivent être propagés vers le Verify jeton d'identification.<?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"
}