Kit de développement logiciel (SDK) - Consentement
La classe enum mip::Consent
implémente une approche simple d’utilisation qui permet aux développeurs d’applications de fournir une expérience de consentement personnalisée basée sur le point de terminaison accessible par le SDK. La notification peut informer un utilisateur des données qui seront collectées, le moyen d’obtenir les données supprimées ou toute autre information requise par la loi ou les stratégies de conformité. Une fois que l’utilisateur accorde son consentement, l’application peut continuer. Ce délégué est appelé uniquement lorsque vous tentez d’accéder aux services AD RMS (Active Directory Rights Management Services). Il n’est pas appelé lors de l’accès aux services cloud. Si votre application ne prendra pas en charge AD RMS, vous pouvez implémenter un délégué qui retourne toujours Consent.AcceptAlways
.
Implémentation
Le consentement est implémenté en étendant la classe de base mip::Consent
et en implémentant GetUserConsent
pour retourner l’une des valeurs d’énumération mip::Consent
.
L’objet dérivé de mip::Consent
est passé au constructeur de mip::FileProfile::Settings
ou mip::ProtectionProfile::Settings
.
Lorsqu’un utilisateur effectue une opération qui nécessite un consentement, le SDK appelle la méthode GetUserConsent
, en passant l’URL de destination comme paramètre. C’est dans cette méthode que l’on implémente l’affichage des informations nécessaires à l’utilisateur, ce qui lui permet de prendre une décision quant à son consentement ou non à l’utilisation du service.
Options de consentement
- AcceptAlways : Consentir et mémoriser la décision.
- Accept : Consentir une fois.
- Reject : Ne pas consentir.
Lorsque le SDK demande le consentement de l’utilisateur avec cette méthode, l’application cliente doit présenter l’URL à l’utilisateur. Les applications clientes doivent fournir certains moyens d’obtenir le consentement de l’utilisateur et de retourner l’énumération Consent appropriée qui correspond à la décision de l’utilisateur.
Exemple d’implémentation
consent_delegate_impl.h
class ConsentDelegateImpl final : public mip::ConsentDelegate {
public:
ConsentDelegateImpl() = default;
virtual mip::Consent GetUserConsent(const std::string& url) override;
};
consent_delegate_impl.cpp
Lorsque le kit de développement logiciel (SDK) requiert le consentement, la méthode GetUserConsent
est appelée par le kit de développement logiciel (SDK) et l’URL est transmise en tant que paramètre. Dans l’exemple ci-dessous, l’utilisateur est averti que le kit de développement logiciel (SDK) se connecte à cette URL fournie et fournit à l’utilisateur une option sur la ligne de commande. En fonction du choix de l’utilisateur, l’utilisateur accepte ou rejette le consentement et ceci est transmis au kit de développement logiciel (SDK). Si l’utilisateur refuse de donner son consentement, l’application lève une exception et aucun appel n’est effectué au service de protection.
Consent ConsentDelegateImpl::GetUserConsent(const string& url) {
//Print the consent URL, ask user to choose
std::cout << "SDK will connect to: " << url << std::endl;
std::cout << "1) Accept Always" << std::endl;
std::cout << "2) Accept" << std::endl;
std::cout << "3) Reject" << std::endl;
std::cout << "Select an option: ";
char input;
std::cin >> input;
switch (input)
{
case '1':
return Consent::AcceptAlways;
break;
case '2':
return Consent::Accept;
break;
case '3':
return Consent::Reject;
break;
default:
return Consent::Reject;
}
}
Lors des tests ou du développement, ou lors de l’utilisation des services cloud uniquement, un ConsentDelegate
basique peut être implémenté.
Consent ConsentDelegateImpl::GetUserConsent(const string& url) {
return Consent::AcceptAlways;
}
Toutefois, dans le code de production, l’utilisateur peut être tenu de présenter un choix de consentement, selon les exigences régionales ou commerciales et les réglementations.