---
schema_version: "1"
id: 05e13566f3d630ed310a495a8bc061210dd0a2e9e7cd358fc7008a66821a7e3a
title: Single Sign-On in Legacy Packages
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/marketing-cloud/guides/mc-app-development/single-sign-on.md
canonical_url: https://developer.salesforce.com/docs/marketing/marketing-cloud/guide/single-sign-on.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 4fa4c8dac796cbbcb69841c9bcee6d831070d54593d430be52ad1920ea82728a
products:
  - Marketing Cloud Engagement APIs and Programmatic Languages
  - Marketing Cloud
---
# Single Sign-On in Legacy Packages

**note:** The ability to create legacy packages was deprecated in August 2019. All new packages are enhanced packages.

Marketing Cloud Engagement provides the authentication context of the logged-in user and account using a JSON Web Token (JWT). The single sign-on (SSO) flow uses a JWT-based version of the IDP-Initiated Form Post SAML 2.0 flow. JWT transfers claims between two parties using JavaScript Object Notation (JSON) that is Base64URL encoded and signed using the HMAC SHA-256 algorithm.

When your application is called, Marketing Cloud Engagement posts the encoded JWT to the login endpoint defined in the installed package. The JWT lets your application know which account and user is calling the API.

![Marketing Cloud Engagement posting encoded JWT to your app.](https://developer.salesforce.com/docs/media/images/sso.png)

## Client Libraries

The following libraries provide support for generating a JWT (JSON Web Token):

- Ruby: [ruby-jwt](https://github.com/progrium/ruby-jwt) (by progrium)
- Python: [pyjwt](https://github.com/progrium/pyjwt) (by progrium)
- Java: [jsontoken](https://code.google.com/p/jsontoken/)
- node.js: [node-jwt-simple](https://github.com/hokaccha/node-jwt-simple) (by hokacca)
- PHP: [jwt](https://github.com/luciferous/jwt) (by luciferous)
- .NET: [jwt](https://github.com/johnsheehan/jwt) (by johnsheehan)

If none of these libraries suits your needs, create your own. Details of the JWT format are in the [draft JWT specification](http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html).
