accueilforumsdevenir membreEnglish
   
découvrir le programme travailler avec Orange accédez aux APIs Orange développer avec Orange support technique actu & événements

identifiant

mot de passe




 


La Personal Profile API alpha fait partie de la suite des Personal APIs.
Elle permet aux clients Orange France d'accéder à leur informations de profil depuis votre site Web (adresse, n° de téléphone, etc.).

Les informations de profil sont accessibles une fois que le client a été informé et a donné son consentement et concerne les utilisateurs inscrits sur le site www.orange.fr
 
Les informations peuvent être recherchées et extraites une fois l'utilisateur authentifié par Orange via l'Authentication API.

Utilisez cette API pour intégrer le profil d'information à votre application.
 

 

Actuellement, l'API est en mode alpha et fait partie de la suite alpha des Personal APIs.
Cela signifie que vous pouvez l'utiliser GRATUITEMENT mais qu'il existe quelques restrictions de service (comme vous devez vous y attendre).
Cela signifie aussi qu'elle est dans les premiers stades de développement. Nous avons besoin de vos avis !


N'hésitez pas, utilisez l'API alpha et dites nous ce que vous en pensez.


  qu'est-ce c'est et quelles sont ses fonctionnalités ?

  avant de démarrer

  quelles informations de profil peuvent-elles être recherchées et extraites ?

  rechercher et extraire des informations de profil



 dites-nous ce que vous en pensez

 partagez vos idées

 obtenez de l'aide


envoyez-nous un e-mail


autres Personal APIs

 Authentication API
 Personal Calendar API
 Personal Contacts API
 Personal Messages API
 Personal Photos API

Qu'est-ce que c'est et quelles sont ses fonctionnalités ?


La Personal Profile API fournit à votre application un accès en temps réel aux informations de profil des clients d'Orange France, vous permettant ainsi de rechercher et d'extraire des données telles que le nom, l'e-mail, l'adresse, le numéro de téléphone, etc. avec leur permission.

L'API offre un accès sécurisé et contrôlé au profil de l'utilisateur.


Le diagramme ci-dessous illustre comment cette API peut être intégrée à un site Web :
 


En un mot, la Personal Profile API vous permet :
 Rechercher et extraire les informations de profil des clients d'Orange France.


(haut de page)

avant de démarrer


Pour commencer à tester cette API, assurez-vous d'avoir lu et compris la section sur les Personal APIs (alpha)


Vous remarquerez qu'il est nécessaire de suivre les étapes suivantes : 

étape 1 - devenir membre d'Orange Partner
étape 2 - accéder à l'administrator web interface


Ensuite, une fois dans l'administrator web interface, vous pourrez vous inscrire à la Personal Profile API.


en savoir plus sur l'administrator web interface


(haut de page)

quelles informations de profil peuvent-elles être recherchées et extraites ? 
 

Les informations de profil peuvent être obtenues en utilisant l'Authentication API.

Les données peuvent être utilisées pour préremplir automatiquement des formulaires, simplifiant ainsi l'expérience utilisateur et les interactions sur votre site Web.


Les informations de profil suivantes peuvent être recherchées et extraites :

 nom
 prénom
 genre (Mlle, Mme, M)
 adresse e-mail
 adresse postale
 code postal
 localité
 pays
 date de naissance
 numéro de portable *
 numéro de téléphone fixe *
 numéro de fax *
 type d'utilisateur (Internet, mobile, Internet et mobile, utilisateur inscrit non abonné) *


* L'accès à ces données requiert une autorisation préalable d'Orange. Veuillez nous contacter si vous avez besoin de cette information.


Quelques informations à retenir :

 Tous les attributs n'ayant pas nécessairement été remplis par les utilisateurs,  Orange ne garantit pas la disponibilité de tous les attributs.

 Un utilisateur devra toujours donner son consentement pour la transmission de ses données personnelles par Orange (via la fonctionnalité respect de la vie privée).


Notez que si vous utilisez déjà l'Authentication API à une fin différente (par ex. pour rechercher et extraire un jeton d'utilisateur pour appeler d'autres Personal APIs et/ou déléguer l'authentification de l'utilisateur Orange à la plateforme Orange), vous devez simplement ajouter un paramètre supplémentaire dans les requêtes d'authentification que vous envoyez à Orange en utilisant l'Authentication API.


(haut de page)

extraire des informations de profil  
 

Pour rechercher et extraire des informations de profil, vous devez procéder comme suit :

 envoyer une requête d'authentification à Orange
 extraire l'identifiant de l'utilisateur (identifiant du nom) contenu dans la réponse d'authentification


envoyer une requête d'authentification à Orange 
 

La requête d'authentification est envoyée au fournisseur d'identité d'Orange via le navigateur, sur la base d'une redirection HTTP 302.

Veuillez noter que la requête SAML doit être compressée au format ZIP à l'aide de DEFLATE puis envoyée comme paramètre d'URL encodé en Base64.


Dans la requête SAML, vous devez ajouter un paramètre doté d'une valeur indiquant les données que vous souhaitez rechercher et extraire (il s'agit d'un masque binaire sur une liste de données prédéfinie). Dans l'exemple ci-dessous, la valeur « AttributeConsumingServiceIndex=18 » renverra le nom d'affichage et l'adresse e-mail de l'utilisateur.


Ci-dessous, un exemple de requête d'authentification SAML :
 

HTTP redirection from user's browser to Orange:


[IDP_SingleSignOnURL]?SAMLRequest=jZAxT8MwFIR3foXlPcROo9i1kkgRXSrBQhEDC3LNa2qpsVO
%2FZ1T%2BPRYsjKx3p%2B9O10%2BZzuEZrhmQ2G25BBx4TsFEix5Ns
AugIWcO09Ojae6FWVOk6OKFs%2F1u4O8b3Wmw7WkDWyWV6JrGu
Ua59tQdO6u2wNlElPwxEzzEgHnxYT5A%2BvQO9uEDbgOXmrNXSOhjGHhpK
GDEXFwkG6hIQuhKNJXQL7IzUplWvnE23vU%2FsfSfzRYREpUCPp6JVlPXyxeu1
TzHvv6lFFz994nxGw%3D%3D">http://idp/sso?SAMLRequest=jZAxT8Mw
FIR3foXlPcROo9i1kkgRXSrBQhEDC3LNa2qpsVO%2FZ1T%2BPRYsjKx3p%
2B9O10%2BZzuEZrhmQ2G25BBx4TsFEix5NsAugIWcO09Ojae6FWVOk6OKFs%
2F1u4O8b3Wmw7WkDWyWV6JrGuUa59tQdO6u2wNlElPwxEzzEgHnxYT5A%
2BvQO9uEDbgOXmrNXSOhjGHhpKGDEXFwkG6hIQuhKNJXQL7IzUplWvnE23vU%
2FsfSfzRYREpUCPp6JVlPXyxeu1TzHvv6lFFz994nxGw%3D%3D


Decoded SAML request:

<AuthnRequest xmlns="urn:oasis:names:tc:SAML:2.0:protocol"
  ID="_3868ea4f3e97170622cc27c4f6b6a79e"
  AttributeConsumingServiceIndex="18"
  Version="2.0"
  IssueInstant="2008-02-08T16:17:41Z">
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">[SERVICE_ID]</Issuer>
</AuthnRequest>



Ci-dessous, un exemple de code PHP utilisé pour générer et envoyer la requête:
 

<?php
     function randomhex($length)
     {
          $key = "";
          for ( $i=0; $i < $length; $i++ )
          {
               $key .= dechex( rand(0,15) );
          }
          return $key;
     }

     ## Metadata
     require_once("idpMetadata.php");
     $issuer = "[SERVICE_ID]";
     $idpTargetUrl = $idpMetadata['[IDP_ID]']['SingleSignOnUrl'];

     ## Dynamic data of the SAML request
     $id = randomhex(32);
     $issueInstant = gmdate("Y-m-d\TH:i:s\Z");
    $attributeConsumingServiceIndex = 18; #this is an example

     ## <AuthnRequest>
          $authnRequest =
               "<AuthnRequest xmlns=\"urn:oasis:names:tc:SAML:2.0:protocol\" " .
               "ID=\"_" . $id . "\" " .
               "Version=\"2.0\" " .
               "IssueInstant=\"" . $issueInstant . "\" " .
              AttributeConsumingServiceIndex=\"" . $attributeConsumingServiceIndex . "\">\n" .
               "<Issuer xmlns=\"urn:oasis:names:tc:SAML:2.0:assertion\">" .
               $issuer . "</Issuer>\n" .
               "<NameIDPolicy " .
               "AllowCreate=\"true\"/>" .
     "</AuthnRequest>";

     ## HTTP-Redirect Binding
     $encodedAuthnRequest = urlencode( base64_encode( gzdeflate( $authnRequest ) ));
     $redirectUrl = $idpTargetUrl . "?SAMLRequest=" . $encodedAuthnRequest;

     ## Redirect
     Header("Location: ".$redirectUrl);
?>

"idpMetadata.php" configuration file (used in previous code example):
<?php
# The partner SP must store the metadata to communicate with Orange identity provider.
    $idpMetadata = array(
     "[IDP_ID]" =>
  array( "SingleSignOnUrl" =>"[IDP_SingleSignOnURL]",
             "certificate" =>"[IDP_Certificate]" )    );
?>


Extraire les données de l'utilisateur contenues dans la réponse d'authentification
 

Pour rechercher et extraire les données de l'utilisateur contenues dans la réponse SAML, vous devez simplement :

 décoder la réponse SAML en Base64 reçue dans la requête HTTP POST
 analyser la réponse SAML (document XML) pour trouver les attributs.


vous rechercherez et extrairez un attribut en utilisant l'expression XPATH suivante :


/samlp:Response/saml:Assertion/saml:AttributeStatement/saml:Attribute
[@Name='Attribute Name']/saml:AttributeValue (using the following namespaces :
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" and
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol")


Ci-dessous, un exemple de réponse d'authentification SAML :
 

Decoded SAML response:

<Response xmlns="urn:oasis:names:tc:SAML:2.0:protocol"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xs="http://www.w3.org/2001/XMLSchema" ID="_nS4RnQwSEXneSTLMVlq" Version="2.0" 
          IssueInstant="2008-02-08T16:18:22Z"
          Destination="[SERVICE_RETURN_URL]"
          InResponseTo="_3868ea4f3e97170622cc27c4f6b6a79e">
          <Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">http://idp</Issuer>
          <Status>
                    <StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
          </Status>
          <Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion" ID="_B2TAbq1C3KnpSeSO4Yf"
                    Version="2.0" IssueInstant="2008-02-08T16:18:22Z">
                    <Issuer>[IDP_ID]</Issuer>
          <Subject>
                    <NameID Format="urn:oasis:names:tc:SAML:2.0:nameidformat:transient">
                              5kQkvXaqjONx4d70jC5L
                    </NameID>
                    <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
                              <SubjectConfirmationData
                                        Recipient="[SERVICE_RETURN_URL]"
                                        NotOnOrAfter="2008-02-08T16:33:22Z"
                                        InResponseTo="_3868ea4f3e97170622cc27c4f6b6a79e" />
                    </SubjectConfirmation>
          </Subject>
          <Conditions>
                    <AudienceRestriction>
                              <Audience>[SERVICE_ID]</Audience>
                    </AudienceRestriction>
          </Conditions>
          <AuthnStatement AuthnInstant="2008-02-08T16:18:22Z">
                    <AuthnContext>
                              <AuthnContextClassRef>
        urn:oasis:names:tc:SAML:2.0:ac:classes:Password</AuthnContextClassRef>
                              </AuthnContext>
                    </AuthnStatement>
          <AttributeStatement>
                    <Attribute Name="displayname"
                              NameFormat="urn:oasis:names:tc:SAML:2.0:profiles:attribute:basic">
                              <AttributeValue xsi:type="xs:string">Claude Bertau</AttributeValue>
                    </Attribute>
                    <Attribute Name="emailaddress"
                              NameFormat="urn:oasis:names:tc:SAML:2.0:profiles:attribute:basic">
                              <AttributeValue xsi:type="xs:string">claude.bertau@orange.fr</AttributeValue>
                    </Attribute>
               </AttributeStatement>
          </Assertion>
     </Response>



Ci-dessous, un exemple de code PHP pour traiter la réponse :
 

<?php


     # Decode the Response
$encodedAuthnResponse = $_POST['SAMLResponse'];
$authnResponse = @base64_decode($encodedAuthnResponse);


# Get some useful data from XML
$xml = simplexml_load_string($authnResponse);


# Profile attributes
$user_info = array();
if ($xml->{'Assertion'}->{'AttributeStatement'} &&
                    $xml->{'Assertion'}->{'AttributeStatement'}->{'Attribute'}) {
                    foreach ($xml->{'Assertion'}->{'AttributeStatement'}->{'Attribute'} as $attribute) {
     $key = $attribute['Name'];
     $user_info["$key"] = (string)$attribute->{'AttributeValue'};
                    }
}


?>


<HTML>
<BODY>
     Attributes :  <?php var_dump($user_info) ?>
</BODY>
</HTML>


Mise en correspondance des noms d'attributs et des données de profil d'utilisateur :
 

données de profil d'utilisateur correspondantes nom d'attribut
genre gender
nom d'affichage displayname
prénom givenname
nom surname
adresse e-mail emailaddress
adresse streetaddress
code postal postalcode
localité locality
pays country
date de naissance dateofbirth
numéro de téléphone portable mobilephone
numéro de téléphone fixe homephone
numéro de fax facsimile
type d'utilisateur
(Internet, mobile, Internetetmobile,
utilisateur inscrit non abonné)
usertype


(haut de page)

Et voilà !


Maintenant, jetez un œil aux API individuellement et dites-nous ce que vous en pensez...
envoyez-nous un e-mail


autres Personal APIs

 Authentication API
 Personal Calendar API
 Personal Contacts API
 Personal Messages API
 Personal Photos API


(haut de page)