Notes de version de la mise à jour 2 de OpenSSO d'Oracle

Chapitre 4 Utilisation du Fedlet de OpenSSO d'Oracle

Cette section donne les informations suivantes sur le Fedlet de OpenSSO d'Oracle :

A propos du Fedlet de OpenSSO d'Oracle

Le Fedlet de OpenSSO d'Oracle est une implémentation du fournisseur de services léger (SP) qui peut être déployée avec une application du fournisseur de services Java ou .NET, permettant à l'application de communiquer avec un fournisseur d'identités (IDP) comme la mise à jour 2 de OpenSSO d'Oracle à l'aide du protocole SAMLv2. Le Fedlet est disponible en deux versions, selon la plate-forme que vous utilisez :

Dans la mise à jour 2 de OpenSSO 8.0 d'Oracle, le Fedlet est acessible comme suit :

Exigences pour le Fedlet OpenSSO d'Oracle

Le Fedlet a besoin de :

Configuration du Fedlet de OpenSSO d'Oracle

Cette section décrit la première configuration du Fedlet avec une application de fournisseur de services :

Après avoir terminé la première configuration du Fedlet, passez à n'importe quelle autre configuration que vous souhaitez effectuer. Plusieurs points à prendre en compte :

ProcedurePour configurer le Fedlet Java

  1. Du côté du fournisseur d'identités, générez les métadonnées XML pour le fournisseur d'identités et enregistrez ces métadonnées dans un fichier nommé idp.xml.

    Pour la mise à jour 2 de OpenSSO 8.0 d'Oracle, utilisez exportmetadata.jsp. Par exemple :

    http://opensso-idp.example.com:8080/opensso/saml2/jsp/exportmetadata.jsp
  2. Du côté du fournisseur de services, décompressez le fichier ZIP Fedlet (si nécessaire).

  3. Créez le répertoire de base du Fedlet, qui correspond au répertoire où le Fedlet lit ses métadonnées, son cercle de confiance et les fichiers de propriétés de configuration.

    L'emplacement par défaut est le sous-répertoire du Fedlet sous le répertoire personnel de l'utilisateur qui exécute le conteneur Web du Fedlet (indiqué par la propriété JVM user.home). Par exemple, si ce répertoire personnel est /home/webservd, le répertoire de base du Fedlet est :

    /home/webservd/fedlet

    Pour modifier le répertoire de base par défaut du Fedlet, paramétrez la valeur de la propriété d'exécution de JVM com.sun.identity.fedlet.home à l'emplacement désiré. Par exemple :

    -Dcom.sun.identity.fedlet.home=/export/fedlet/conf

    Le Fedlet lit alors ses métadonnées, son cercle de confiance et les fichiers de configuration à partir du répertoire /export/fedlet/conf.

  4. Copiez les fichiers suivants depuis le répertoire java/conf du Fedlet Java dans le répertoire de base du Fedlet :

    • sp.xml-template

    • sp-extended.xml-template

    • idp-extended.xml-template

    • fedlet.cot-template

  5. Dans le répertoire de base du Fedlet, renommez les fichiers que vous avez copiés et supprimez -template de chaque nom.

  6. Dans les fichiers que vous avez copiés et renommés dans le répertoire de base du Fedlet, remplacez les balises tel qu'indiqué dans le tableau suivant :

    Balise 

    Remplacer par 

    FEDLET_COT

    Nom du cercle de confiance (COT) dont le fournisseur d'identités distant et l'application du fournisseur de services du Fedlet Java sont membres. 

    FEDLET_ENTITY_ID

    Identifiant (nom) de l'application du fournisseur de services du Fedlet Java. Par exemple : fedletsp

    FEDLET_PROTOCOL

    Protocole du conteneur Web pour l'application du fournisseur de services du Fedlet Java (par exemple, fedlet.war). Par exemple : https

    FEDLET_HOST

    Nom d'hôte du conteneur Web pour l'application du fournisseur de services du Fedlet Java (par exemple, fedlet.war). Par exemple : fedlet-host.example.com

    FEDLET_PORT

    Numéro de port du conteneur Web pour l'application du fournisseur de services du Fedlet Java (par exemple, fedlet.war). Par exemple : 80

    FEDLET_DEPLOY_URI

    URL de l'application du fournisseur de services du Fedlet Java. Par exemple : http://fedletsp.example.com/myFedletApp

    IDP_ENTITY_ID

    Identifiant (nom) du fournisseur d'identités distant. Par exemple : openssoidp

    Note : si le fournisseur de services du Fedlet ou l'identifiant de l'entité du fournisseur d'identités contient un signe de pourcentage (%) ou une virgule (,), vous devez supprimer le caractère avant de le remplacer dans le fichier fedlet.cot. Par exemple, modifiez ”%” en ”%25" et ”," en ”%2C”.

  7. Copiez le fichier FedletConfiguration.properties depuis le répertoire java/conf du Fedlet Java dans le répertoire de base du Fedlet.

  8. Copiez le fichier XML de métadonnées standard du fournisseur d'identités (de l'étape 1) dans le répertoire de base du Fedlet. Ce fichier doit être nommé idp.xml.

  9. Importez le fichier de métadonnées XML du Fedlet Java (sp.xml) dans le fournisseur d'identités.

    Pour la mise à jour 2 de OpenSSO d'Oracle, utilisez le flux de travail Enregistrer le fournisseur de services distant sous Tâches courantes dans la console d'administration OpenSSO 8.0 pour importer les métadonnées du fournisseur de services du Fedlet Java et pour ajouter le fournisseur de services dans un cercle de confiance.

Étapes suivantes

Selon vos besoins, continuez et procédez à n'importe quelle configuration supplémentaire pour le Fedlet Java.

ProcedurePour configurer le Fedlet .NET

  1. Du côté du fournisseur d'identités, générez les métadonnées XML pour le fournisseur d'identités et enregistrez ces métadonnées dans un fichier nommé idp.xml.

    Pour la mise à jour 2 de OpenSSO 8.0 d'Oracle, utilisez exportmetadata.jsp. Par exemple :

    http://opensso-idp.example.com:8080/opensso/saml2/jsp/exportmetadata.jsp
  2. Du côté du fournisseur de services, décompressez le fichier ZIP Fedlet (si nécessaire).

  3. Copiez les fichiers suivants depuis le dossier asp.net/conf du Fedlet .NET dans le dossier App_Data de votre application :

    • sp.xml-template

    • sp-extended.xml-template

    • idp-extended.xml-template

    • fedlet.cot-template

  4. Dans le dossier App_Data, renommez les fichiers que vous avez copiés et supprimez -template de chaque nom.

  5. Dans les fichiers que vous avez copiés et renommés dans le dossier App_Data, remplacez les balises tel qu'indiqué dans le tableau suivant :

    Balise 

    Remplacer par 

    FEDLET_COT

    Nom du cercle de confiance (COT) dont le fournisseur d'identités distant et l'application du fournisseur de services du Fedlet .NET sont membres. 

    FEDLET_ENTITY_ID

    Identifiant (nom) de l'application du fournisseur de services du Fedlet .NET. Par exemple : fedletsp

    FEDLET_DEPLOY_URI

    URL de l'application du fournisseur de services du Fedlet .NET. Par exemple : http://fedletsp.example.com/myFedletApp

    IDP_ENTITY_ID

    Identifiant (nom) du fournisseur d'identités distant. Par exemple : openssoidp

  6. Copiez le fichier XML de métadonnées standard du fournisseur d'identités (de l'étape 1) dans le dossier App_Data de votre application. Ce fichier doit être nommé idp.xml.

  7. Copiez les fichiers Fedlet.dll et Fedlet.dll.config du dossier asp.net/bin du Fedlet .NET dans le dossier corbeille de l'application.

  8. Importez le fichier de métadonnées XML du Fedlet .NET (sp.xml) dans le fournisseur d'identités.

    Pour la mise à jour 2 de OpenSSO d'Oracle, utilisez le flux de travail Enregistrer le fournisseur de services distant sous Tâches courantes dans la console d'administration OpenSSO 8.0 pour importer les métadonnées du fournisseur de services du Fedlet .NET et pour ajouter le fournisseur de services dans un cercle de confiance.

Étapes suivantes

Selon vos besoins, continuez et procédez à n'importe quelle configuration supplémentaire pour le Fedlet .NET.

Nouvelles fonctions du Fedlet dans la mise à jour 2 de OpenSSO 8.0

La mise à jour 2 de OpenSSO d'Oracle comprend les nouvelles fonctions suivantes pour le Fedlet :

Informations sur la version du Fedlet (CR 6941387)

Le Fedlet de OpenSSO d'Oracle comprend des informations sur la version. Après avoir extrait les fichiers dans le pack du Fedlet (fichier ZIP), déterminez la version du Fedlet en consultant l'un des fichiers suivants :

Chiffrement et déchiffrement de mots de passe du Fedlet Java (CR 6930477)

Le Fedlet Java fournit fedletEncode.jsp dans le fichier fedlet.war pour chiffrer les mots de passe storepass et keypass. Par défaut, une clé de chiffrement différente est générée pour chaque Fedlet. Pour modifier cette clé de chiffrement, paramétrez la propriété am.encryption.pwd dans le fichier FederationConfig.properties du Fedlet.

Prise en charge de la signature et du chiffrement par le Fedlet Java

Le Fedlet Java prend en charge la vérification des signatures XML et le déchiffrement des éléments chiffrés assertion et NameID ainsi que leurs attributs correspondants.

ProcedurePour configurer le Fedlet Java pour la signature et le chiffrement

  1. Créez un fichier keystore nommé keystore.jks à l'aide de l'utilitaire keytool.

  2. Ajoutez la clé privée (et le certificat public le cas échéant) utilisée pour la signature et la clé privée (et le certificat public le cas échéant) utilisée pour le chiffrement dans le fichier keystore.jks.

  3. Créez un fichier .storepass.

  4. Ajoutez le mot de passe au fichier .storepass. Pour chiffrer le mot de passe, utilisez fedletEncode.jsp.

  5. Créez un fichier .keypass.

  6. Ajoutez le mot de passe au fichier .keypass. Pour chiffrer le mot de passe, utilisez fedletEncode.jsp.

  7. Si vous utilisez des mots de passe en texte clair, commentez la ligne suivante dans le fichier FederationConfig.properties :

    com.sun.identity.saml.xmlsig.passwordDecoder=
        com.sun.identity.fedlet.FedletEncodeDecode
  8. Paramétrez le chemin d'accès complet pour les attributs suivants dans le fichier FederationConfig.properties , où path correspond au chemin d'accès complet vers le fichier respectif :

    com.sun.identity.saml.xmlsig.keystore=path/keystore.jks
    com.sun.identity.saml.xmlsig.storepass=path/.storepass
    com.sun.identity.saml.xmlsig.keypass=path/.keypass
  9. Utilisez keytool pour exporter le certificat de signature. Par exemple :

    keytool -export -keystore keystore.jks -rfc -alias test

    L'outil vous invite à saisir le mot de passe utilisé pour accéder à keystore.jks , puis génère le certificat.

  10. Si vous avez besoin d'un certificat de chiffrement, utilisez keytool pour l'exporter, tel qu'indiqué dans l'étape précédente. (Ou utilisez le même certificat pour la signature et le chiffrement.)

  11. Créez un bloc XML KeyDescriptor et ajoutez-y le certificat de chiffrement. Par exemple, notez la balise use="signing" de l'élément KeyDescriptor :

    <KeyDescriptor use="signing">
          <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <ds:X509Data>
              <ds:X509Certificate>
    MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
    bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
    ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
    CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
    BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
    AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of\+
    RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
    Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
    QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
    cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
    /FfwWigmrW0Y0Q==
              </ds:X509Certificate>
            </ds:X509Data>
          </ds:KeyInfo>
    </KeyDescriptor>
  12. Créez un autre bloc XML KeyDescriptor et ajoutez-y le certificat de chiffrement. Par exemple, notez la balise use="encryption" de l'élément KeyDescriptor :

    <KeyDescriptor use="encryption">
          <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
            <X509Data>
              <X509Certificate>
    MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
    bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
    ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
    CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
    BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
    AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of\+
    RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
    Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
    QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
    cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
    /FfwWigmrW0Y0Q==
              </X509Certificate>
            </X509Data>
          </KeyInfo>
    <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc">
      <KeySize xmlns="http://www.w3.org/2001/04/xmlenc#">128</KeySize>
    </EncryptionMethod>
    </KeyDescriptor>
  13. Dans le fichier sp.xml du Fedlet Java, ajoutez les blocs XML avec les certificats de signature et de chiffrement sous l'élément SPSSODescriptor . Pour obtenir un échantillon de l'élément SPSSODescriptor, consultez l'Exemple 4–1.

    L'attribut AuthnRequestsSigned est paramétré à true, configurant ainsi le Fedlet Java pour qu'il signe toutes les requêtes d'authentification.

  14. Dans le fichier sp-extended.xml du Fedlet Java, paramétrez les valeurs pour les documents suivants :

    • signingCertAlias contient l'alias du certificat de signature XML dans le keystore.

    • encryptionCertAlias contient l'alias du certificat de chiffrement XML dans le keystore.

  15. Pour appliquer ce que le fournisseur de services du Fedlet Java chiffre, paramétrez les attributs suivants dans le fichier sp-extended.xml à true:

    • wantAssertionEncrypted

    • wantNameIDEncrypted

    • wantAttributeEncrypted

  16. Pour appliquer ce que le fournisseur de services du Fedlet Java signe et veut voir signé, paramétrez les attributs suivants à true:

    • wantAuthnRequestsSigned dans le fichier idp.xml indique au Fedlet quoi signer.

    • AuthnRequestsSigned et WantAssertionsSigned dans le fichier sp.xml indique au fournisseur d'identités ce que le Fedlet prévoit de signer.

    • wantArtifactResponseSigned dans le fichier sp-extended.xml indique au Fedlet quoi signer.

    • wantPOSTResponseSigned dans le fichier sp-extended.xml

    • wantLogoutRequestSigned dans le fichier sp-extended.xml

    • wantLogoutResponseSigned dans le fichier sp-extended.xml

    Si le fournisseur d'identités a besoin d'une signature pour des messages particuliers, paramétrez les attributs respectifs à true dans le fichier idp-extended.xml . Par exemple, wantLogoutRequestSigned et wantLogoutResponseSigned.


    Remarque –

    Si vous paramétrez des attributs dans le fichier sp-extended.xml, transmettez ces informations à l'administrateur du fournisseur d'identités, de façon à ce que les modifications nécessaires de configuration puissent être apportées dans le fournisseur d'identités.


  17. Redémarrez le conteneur Web du Fedlet Java.

  18. Importez le fichier sp.xml du Fedlet Java dans le fournisseur d'identités.


Exemple 4–1 Exemple d'élément SPSSODescriptor du Fedlet Java

<EntityDescriptor entityID="fedlet"
xmlns="urn:oasis:names:tc:SAML:2.0:metadata">

<SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="false"
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<b><KeyDescriptor use="signing">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>
MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of\+
RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
/FfwWigmrW0Y0Q==
          </ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>

</KeyDescriptor></b>
<b><KeyDescriptor use="encryption">
      <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
        <X509Data>
          <X509Certificate>
MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of\+
RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
/FfwWigmrW0Y0Q==
          </X509Certificate>
        </X509Data>
      </KeyInfo>

<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc">
<KeySize xmlns="http://www.w3.org/2001/04/xmlenc#">128</KeySize>
</EncryptionMethod>
</KeyDescriptor></b>
<NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat
><AssertionConsumerService index="1"
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="http://server.sun.com:7070/fedlet/fedletapplication"/>
</SPSSODescriptor>
</EntityDescriptor>

Prise en charge des requêtes d'attributs du Fedlet Java (CR 6930476)

Le Fedlet Java prend en charge la requête d'attribut SAMLv2 pour demander au fournisseur d'identités tel que la mise à jour 2 de OpenSSO 8.0 d'Oracle des valeurs d'attributs d'identités spécifiques. Vous pouvez configurer le Fedlet de façon à ce qu'il signe la requête et la chiffre. La signature est obligatoire pour émettre une requête de Fedlet, mais le chiffrement est facultatif.

ProcedurePour configurer le Fedlet Java pour une requête d'attribut

  1. Activez la signature XML pour signer la requête d'attribut, tel que décrit dans Prise en charge de la signature et du chiffrement par le Fedlet Java.

  2. Ajoutez le certificat généré à l'étape précédente à l'élément RoleDescriptor dans le fichier sp.xml du Fedlet. Dans l'exemple suivant, il existe deux balises KeyDescriptor dans lesquelles vous collez le certificat. L'une sert à la signature, et l'autre au chiffrement. Si vous n'activez pas le chiffrement, la balise KeyDescriptor use="encryption" n'est pas nécessaire.

    <RoleDescriptor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:query="urn:oasis:names:tc:SAML:metadata:ext:query"
          xsi:type="query:AttributeQueryDescriptorType"
          protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
      <KeyDescriptor use="signing">
          <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <ds:X509Data>
              <ds:X509Certificate>
                --certificate--
              </ds:X509Certificate>
            </ds:X509Data>
          </ds:KeyInfo>
      </KeyDescriptor>
      <KeyDescriptor use="encryption">
          <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <ds:X509Data>
              <ds:X509Certificate>
                --certificate--
              </ds:X509Certificate>
            </ds:X509Data>
          </ds:KeyInfo>
        <EncryptionMethod
    Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc">
    <xenc:KeySize
    xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">128</xenc:KeySize>
        </EncryptionMethod>
      </KeyDescriptor>
    </RoleDescriptor>
  3. Dans le fichier sp-extended.xml du Fedlet Java, indiquez la valeur de l'attribut signingCertAlias et, s'il est configuré, de l'attribut encryptionCertAlias.

    Si vous prévoyez de configurer le fournisseur d'identités de façon à ce qu'il chiffre l'assertion, chiffrez également l'élément NameID. Ainsi, la valeur de l'attribut wantNameIDEncrypted doit être paramétrée à true. Ajoutez le code XML à l'élément AttributeQueryConfig. Par exemple :

    <Attribute name="signingCertAlias">
          <Value>test</Value>
    </Attribute>
    <Attribute name="encryptionCertAlias">
          <Value>test</Value>
    </Attribute>
    <Attribute name="wantNameIDEncrypted">
          <Value>true</Value>
    </Attribute>

    Dans cet exemple, test est l'alias de l'exemple de clé.

  4. Importez le fichier de métadonnées du Fedlet Java (sp.xml) dans le fournisseur d'identités.

    Procédez également aux étapes de configuration supplémentaires dans le fournisseur d'identités pour prendre en charge la requête d'attribut pour le Fedlet.

Chiffrement et déchiffrement des requêtes et réponses du Fedlet .NET (CR 6939005)

Le Fedlet .NET peut chiffrer les requêtes XML sortantes et déchiffrer les réponses entrantes pour les éléments NameID, Attribute et Assertion.

ProcedurePour configurer le Fedlet .NET pour le chiffrement et le déchiffrement des requêtes et réponses

  1. Importez votre certificat X.509 dans le dossier Personnel dans le compte Ordinateur local à l'aide de la capture de certificats pour la console de gestion Microsoft. Pour utiliser cette capture, consultez l'article suivant de Microsoft :

    http://msdn.microsoft.com/en-us/library/ms788967.aspx

  2. Donnez un nom convivial à ce certificat en consultant la boîte de dialogue Propriétés et en saisissant une valeur. (Enregistrez cette valeur pour l'étape 4.)

  3. Paramétrez les autorisations appropriées pour permettre l'accès en lecture au certificat pour le compte utilisateur utilisé par le serveur d'information Internet (IIS) tel que décrit dans l'article de Microsoft. Par exemple :

    1. Dans la capture des certificats, naviguez jusqu'à Action, Toutes les tâches, puis vers Gérer les clés privées.

    2. Indiquez Permettre les autorisations de lecture pour le compte utilisateur exécutant IIS (en général, le SERVICE RESEAU).

  4. Dans le fichier de métadonnées étendues du Fedlet .NET (sp-extended.xml ), indiquez le nom convivial indiqué à l'étape 2 comme valeur de l'attribut encryptionCertAlias. Par exemple :

    <Attribute name="encryptionCertAlias">
    <Value>MyFedlet</Value>
  5. Dans le fichier de métadonnées du fournisseur de services du Fedlet .NET (sp.xml ), ajoutez le KeyDescriptor pour la clé de chiffrement.

    Utilisez la capture des certificats pour la console de gestion Microsoft utilisée précédemment pour exporter la clé publique de votre certificat en codage Base64 pour l'inclure dans le bloc XML KeyDescriptor. Ce KeyDescriptor doit être le premier élément enfant au sein du SPSSODescriptor. Par exemple :

    <KeyDescriptor use="encryption">
               <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                 <ds:X509Data>
                   <ds:X509Certificate>
    MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
    bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
    ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
    CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
    BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
    AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of\+
    RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
    Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
    QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
    cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
    /FfwWigmrW0Y0Q==
                   </ds:X509Certificate>
                 </ds:X509Data>
               </ds:KeyInfo>
               <EncryptionMethod
    Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc">
               <KeySize
    xmlns="http://www.w3.org/2001/04/xmlenc#">128</KeySize>
               </EncryptionMethod>
    </KeyDescriptor>
  6. Redémarrez le pool d'applications associé à votre application .NET.

Étapes suivantes

Pour tester cette configuration, utilisez l'exemple d'application. Paramétrez également les attributs suivants pour qu'ils chiffrent les requêtes et déchiffrent les réponses avec le fournisseur d'identités, avec les modifications appropriées apportées aux métadonnées configurées :

Signature des requêtes et réponses du Fedlet .NET (CR 6928530)

Le Fedlet .NET prend en charge la signature des requêtes XML sortantes telles que les requêtes Authn et les requêtes de déconnexion.

ProcedurePour configurer le Fedlet .NET pour signer les requêtes et les réponses :

  1. Importez votre certificat X.509 dans le dossier Personnel dans le compte Ordinateur local à l'aide de la capture de certificats pour la console de gestion Microsoft. Pour utiliser cette capture, consultez l'article suivant de Microsoft :

    http://msdn.microsoft.com/en-us/library/ms788967.aspx

  2. Donnez un nom convivial à ce certificat en consultant la boîte de dialogue Propriétés et en saisissant une valeur. (Enregistrez cette valeur pour l'étape 4.)

  3. Paramétrez les autorisations appropriées pour permettre l'accès en lecture au certificat pour le compte utilisateur utilisé par le serveur d'information Internet (IIS) tel que décrit dans l'article de Microsoft. Par exemple :

    1. Dans la capture des certificats, naviguez jusqu'à Action, Toutes les tâches, puis vers Gérer les clés privées.

    2. Indiquez Permettre les autorisations de lecture pour le compte utilisateur exécutant IIS (en général, le SERVICE RESEAU).

  4. Dans le fichier de métadonnées étendues du Fedlet .NET (sp-extended.xml ), indiquez le nom convivial indiqué à l'étape 2 comme valeur de l'attribut signingCertAlias. Par exemple :

    <Attribute name="signingCertAlias">
    <Value>MyFedlet</Value>
  5. Dans le fichier de métadonnées du fournisseur de services du Fedlet .NET (sp.xml ), ajoutez le KeyDescriptor pour la clé de signature.

    Utilisez la capture des certificats pour la console de gestion Microsoft utilisée précédemment pour exporter la clé publique de votre certificat en codage Base64 pour l'inclure dans le bloc XML KeyDescriptor. Ce KeyDescriptor doit être le premier élément enfant au sein du SPSSODescriptor. Par exemple :

    <KeyDescriptor use="signing">
                 <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                    <ds:X509Data>
                       <ds:X509Certificate>
    MIICQDCCAakCBEeNB0swDQYJKoZIhvcNAQEEBQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
    bGlmb3JuaWExFDASBgNVBAcTC1NhbnRhIENsYXJhMQwwCgYDVQQKEwNTdW4xEDAOBgNVBAsTB09w
    ZW5TU08xDTALBgNVBAMTBHRlc3QwHhcNMDgwMTE1MTkxOTM5WhcNMTgwMTEyMTkxOTM5WjBnMQsw
    CQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEUMBIGA1UEBxMLU2FudGEgQ2xhcmExDDAK
    BgNVBAoTA1N1bjEQMA4GA1UECxMHT3BlblNTTzENMAsGA1UEAxMEdGVzdDCBnzANBgkqhkiG9w0B
    AQEFAAOBjQAwgYkCgYEArSQc/U75GB2AtKhbGS5piiLkmJzqEsp64rDxbMJ+xDrye0EN/q1U5Of\+
    RkDsaN/igkAvV1cuXEgTL6RlafFPcUX7QxDhZBhsYF9pbwtMzi4A4su9hnxIhURebGEmxKW9qJNY
    Js0Vo5+IgjxuEWnjnnVgHTs1+mq5QYTA7E6ZyL8CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB3Pw/U
    QzPKTPTYi9upbFXlrAKMwtFf2OW4yvGWWvlcwcNSZJmTJ8ARvVYOMEVNbsT4OFcfu2/PeYoAdiDA
    cGy/F2Zuj8XJJpuQRSE6PtQqBuDEHjjmOQJ0rV/r8mO1ZCtHRhpZ5zYRjhRC9eCbjx9VrFax0JDC
    /FfwWigmrW0Y0Q==
                       </ds:X509Certificate>
                    </ds:X509Data>
                 </ds:KeyInfo>
    </KeyDescriptor>
  6. Redémarrez le pool d'applications associé à votre application .NET.

Déconnexion unique du Fedlet .NET (CR 6928528 et CR 6930472)

Le Fedlet .NET prend en charge à la fois la déconnexion unique initiée par le fournisseur d'identités et par le fournisseur de services. Pour implémenter la déconnexion unique, l'exemple d'application du Fedlet .NET comprend les fichiers logout.aspx et spinitiatedslo.aspx dans le dossier asp.net/SampleApp. Pour voir comment la fonction de déconnexion unique du Fedlet fonctionne, déployez l'exemple d'application du Fedlet .NET.

ProcedurePour configurer une application de fournisseur de services du Fedlet .NET pour la déconnexion unique :

  1. Si vous n'avez pas configuré le Fedlet .NET, suivez les étapes du fichier Lisezmoi.

  2. Copiez les fichiers logout.aspx et spinitiatedslo.aspx dans le contenu public de votre application .NET.

  3. Apportez les modifications suivantes aux fichiers de configuration pour votre application :

    • Dans le fichier sp.xml, veillez à ce que le chemin d'accès au fichier logout.aspx pointe vers l'emplacement correct du fichier pour votre application.

    • Dans le fichier idp.xml (ou lors de la configuration du fournisseur d'identités), veillez à ce que le chemin d'accès au fichier spinitiatedslo.aspx pointe vers l'emplacement correct du fichier pour votre application.

  4. Si vous souhaitez que la requête de déconnexion et la réponse de déconnexion soient signées, paramétrez les attributs suivants à true dans les fichiers sp-extended.xml et idp-extended.xml :

    • wantLogoutRequestSigned

    • wantLogoutResponseSigned

  5. Importez le fichier de métadonnées du fournisseur de services du Fedlet (sp.xml) dans le fournisseur d'identités.

    Informez également l'administrateur du fournisseur d'identités que vous avez configuré la déconnexion unique pour le fournisseur de services du Fedlet, pour que toute modification supplémentaire nécessaire puisse être apportée à la configuration du fournisseur d'identités.

Connexion unique initiée par le fournisseur de services du Fedlet .NET (CR 6928525)

Le Fedlet .NET prend en charge la connexion unique (SSO) initiée par le fournisseur de services SAMLv2. De plus, la prise en charge des artefacts est nécessaire pour permettre au Fedlet .NET de recevoir un artefact, puis de le résoudre via SOAP avec le service de résolution des artefacts du fournisseur d'identités.

L'exemple d'application du Fedlet .NET indique comment configurer la connexion unique. Une fois que les artefacts nécessaires sont installés sur votre application, un URI spécifique est nécessaire pour recevoir le POST HTTP contenant la réponse SAMLv2 après authentification réussie par le fournisseur d'identités. L'exemple de code suivant indique comment récupérer ces informations dans une application .NET :


Exemple 4–2 Exemple de code pour récupérer la AuthnResponse dans une application du Fedlet .NET

AuthnResponse authnResponse = null;
try
{
      ServiceProviderUtility spu = new ServiceProviderUtility(Context);
      authnResponse = spu.GetAuthnResponse(Context);
}
catch (Saml2Exception se)
{
      // invalid AuthnResponse received
}
catch (ServiceProviderUtilityException spue)
{
      // issues with deployment (reading metadata)
}

Si votre application reçoit la réponse SAMLv2, l'objet authnResponse sera renseigné avec les informations sur l'assertion. L'exemple d'application indique comment récupérer les attributs et les informations sur le sujet à partir de cet objet.

Prise en charge par le Fedlet .NET de plusieurs fournisseurs d'identités et du service de détection (CR 6928524)

Le Fedlet .NET prend en charge plusieurs fournisseurs d'identités et le service de détection de fournisseur d'identités.

Dans certains déploiements, vous voudrez peut-être configurer le Fedlet .NET avec plusieurs fournisseurs d'identités tels que la mise à jour 2 de OpenSSO 8.0 d'Oracle. Effectuez la tâche suivante pour chaque fournisseur d'identités supplémentaire que vous voulez ajouter.

ProcedurePour configurer le Fedlet .NET pour plusieurs fournisseurs d'identités

  1. Obtenez le fichier de métadonnées XML auprès du fournisseur d'identités supplémentaire.

  2. Nommez le fichier de métadonnées du fournisseur d'identités supplémentaire idp n.xml, où n correspond au fournisseur d'identités que vous ajoutez. Par exemple, nommez le fichier du deuxième fournisseur d'identités idp2.xml, le troisième idp3.xml, etc. Cette procédure utilise idp2.xml comme nom de fichier.

  3. Copiez le fichier idp2.xml de l'étape 2 dans le dossier App_Data de votre application.

  4. Ajoutez ce nouveau fournisseur d'identités au cercle de confiance du Fedlet .NET.

    Pour ajouter le nouveau fournisseur d'identités à un cercle de confiance existant :

    Dans le fichier fedlet.cot du dossier App_Data de votre application, ajoutez l'identifiant de l'entité du nouveau fournisseur d'identités (indiqué par l'attribut entityID dans le fichier de métadonnées idp2.xml) à la valeur de l'attribut sun-fm-trusted-providers, en utilisant une virgule (,) comme séparateur.

    Pour ajouter le nouveau fournisseur d'identités à un nouveau cercle de confiance :

    1. Créez un nouveau fichier nommé fedlet2.cot dans le dossier App_Data de votre application. Utilisez le fedlet.cot existant comme modèle, mais modifiez la valeur de l'attribut cot-name pour lui donner le nom du nouveau cercle de confiance (par exemple, cot2). Indiquez à la fois le nouvel identifiant du fournisseur d'identités et l'identifiant de l'entité du Fedlet comme valeur de l'attribut sun-fm-trusted-providers, en séparant les deux identifiants par une virgule (,).

    2. Dans le fichier sp-extended.xml, ajoutez le nom du nouveau cercle de confiance à valeur de l'attribut cotlist. Par exemple, pour un cercle de confiance nommé cot2 :

      <Attribute name="cotlist">
      <Value>saml2cot</Value>
      <Value>cot2</Value>
      </Attribute>
  5. Dans le dossier App_Data de votre application, créez un nouveau fichier idp2-extended.xml comme métadonnées étendues pour le nouveau fournisseur d'identités. Utilisez le fichier idp-extended.xml existant comme modèle, mais modifiez le entityID pour indiquer l'identifiant d'entité du nouveau fournisseur d'identités. Modifiez la valeur de l'attribut cotlist pour indiquer le nom du cercle de confiance, si un nouveau cercle de confiance est créé pour le fournisseur d'identités. Veillez à ce que le fournisseur d'identités supplémentaire soit une identité distante.

  6. Redémarrez le pool d'applications associé à votre application du Fedlet .NET.

  7. Le fichier XML de métadonnées du Fedlet (sp.xml) doit être importé dans le fournisseur d'identités supplémentaire et ajouté au même cercle de confiance comme entité de fournisseur d'identités. Importez le fichier sp.xml dans le fournisseur d'identités, ou donnez le fichier à l'administrateur de votre fournisseur d'identités pour qu'il l'importe.

Prise en charge par le Fedlet .NET du service de détection du fournisseur d'identités (CR 6928524)

Dans ce scénario, le Fedlet .NET est configuré avec plusieurs fournisseurs d'identités dans un cercle de confiance et vous voulez configurer le Fedlet pour qu'il utilise le service de détection du fournisseur d'identités afin de déterminer le fournisseur favori.

Le service de détection doit être configuré pour les fournisseurs d'identités que vous utilisez avec le Fedlet .NET. Pour en savoir plus sur la configuration du service de détection du fournisseur d'identités dans la mise à jour 2 de OpenSSO 8.0 d'Oracle, consultez la collection de documentation suivante : http://docs.sun.com/coll/1767.1.

ProcedurePour configureer le Fedlet .NET pour qu'il utilise le service de détection du fournisseur d'identités :

  1. Dans le fichier fedlet.cot du Fedlet .NET, paramétrez la propriété sun-fm-saml2-readerservice-url sur l'URL du service lecture de SAMLv2. Par exemple :

    sun-fm-saml2-readerservice-url=http://discovery.common.com/opensso/saml2reader
  2. Redémarrez le pool d'applications associé à votre application du Fedlet .NET.

Problèmes généraux et solutions pour le Fedlet de OpenSSO d'Oracle

A développer

Erratum dans la documentation

La référence à l'API Java du Fedlet est disponible dans la référence à l'API Java de la mise à jour 2 de OpenSSO 8.0 d'Oracle dans la collection de documentation suivante : http://docs.sun.com/coll/1767.1


Remarque –

La méthode getPolicyDecisionForFedlet n'est pas prise en charge dans la version de la mise à jour 2 de OpenSSO 8.0.