---
schema_version: "1"
id: 5b64aee65989e18a0f40bb09757ebbef971026f4102e7d348e84c62e71459334
title: AuthProvider
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_authproviders.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_authproviders.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 11c93c018b7a344e2dd6d2112046e8f57908539725c31d5f8288c6e14768a62e
description: Represents an authentication provider (auth provider). An auth provider lets users log in to Salesforce from an external service provider such as Facebook, Google, or GitHub. This type extends the Metadata metadata type and inherits its fullName field.
---
# AuthProvider

Represents an authentication provider (auth provider). An auth provider lets users log in to Salesforce from an external service provider such as Facebook, Google, or GitHub. This type extends the Metadata metadata type and inherits its fullName field.

## File Suffix and Directory Location

Authentication providers are stored in the authproviders directory. The file name matches the URL suffix, and the extension is .authprovider. For example, an auth provider with URL suffix FacebookProvider is stored in authproviders/FacebookProvider.authprovider.

## Version

Authentication providers are available in API version 27.0 and later.

## Special Access Rules

Only users with the Customize Application and Manage AuthProviders permissions can access this object.

## Fields

<table class="featureTable sort_table" summary="">



          <thead class="thead sorted" align="left">
            <tr>
              <th class="featureTableHeader  " id="d162582e100">Field Name</th>

              <th class="featureTableHeader  " id="d162582e103">Field Type</th>

              <th class="featureTableHeader  " id="d162582e106">Description</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">appleTeam</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">Required when using Apple as a third-party authentication
                provider. A 10-character team ID, obtained from an Apple developer
                account. Available in API version 48.0 and later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">authorizeUrl</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">Required when creating an OpenID Connect authentication provider.
                <span class="ph" id="authorizeUrl_desc"><a name="authorizeUrl_desc"><!-- --></a>The OAuth authorization endpoint
                  URL.</span> Available in API version 29.0 and later. <p class="p">In API
                  version 33.0 and later, for Salesforce-managed auth providers,
                  leave the field blank to let Salesforce supply and manage the
                  value. For details, see “Usage.”</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">consumerKey</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">The app’s key that is registered at the third-party
                (external) authentication provider. <p class="p">In API version 33.0 and
                  later, for Salesforce-managed auth providers, leave the field
                  blank to let Salesforce supply and manage the value. For
                  details, see “Usage.”</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">consumerSecret</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">The consumer secret of the app that is registered at the
                third-party provider. After it’s set, you can’t change the value.
                When using <samp class="codeph nolang">create()</samp>, this field
                must be encrypted. To create an encrypted form of the consumer
                secret from plaintext: <ol class="ol enumList">
                  <li class="li">Create an authentication provider with the
                    <span class="keyword parmname">consumerSecret</span> plaintext
                    value.
                  </li>

                  <li class="li">Save the authentication provider.</li>

                  <li class="li">Create an outbound change set that includes the
                    authentication provider component.</li>

                </ol>
                The new change set .xml file has an entry in the form <samp class="codeph xml"><span class="tag">&lt;consumerSecret</span>&gt;++XYZ++<span class="tag">&lt;/consumerSecret</span>&gt;</samp> where
                ++XYZ++ is the encrypted secret. <p class="p">In API version 33.0 and later,
                  for Salesforce-managed auth providers, leave the field blank to
                  let Salesforce supply and manage the value. For details, see
                  Usage.</p>
                <p class="p">If a consumer secret is defined on an
                  authentication provider, the consumer secret is always exported
                  as a placeholder value, not as an encrypted secret.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">controlPlane</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">
                <samp class="codeph nolang">MuleSoftControlPlane</samp>
                (<a class="xref" href="https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_objects_intro.htm#enumeration_title">enumeration</a> of type string)
              </td>

              <td class="entry" headers="d162582e106" data-title="Description">Required when using MuleSoft as a third-party authentication
                provider. Environment where the MuleSoft Anypoint Platform control
                plane is hosted. The control plane is the part of the Anypoint
                Platform architecture that includes Anypoint Exchange and determines
                the login URL. If you select User-Specified, you must enter the
                Consumer Key and Consumer Secret. Obtain the values from the
                MuleSoft connected app that you created to store the authentication
                details for your Salesforce org. Available in API version 57.0 and
                later. Valid values include:<ul class="ul bulletList">
                  <li class="li">
                    <samp class="codeph nolang">None</samp>—User-specified control plane. If you
                    select <samp class="codeph nolang">None</samp>, you must
                    enter the Consumer Key and Consumer Secret. Obtain the
                    values from the MuleSoft connected app that you created to
                    store the authentication details for your Salesforce
                    org.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">US</samp>—US control
                    plane
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">EU</samp>—EU control
                    plane
                  </li>

                </ul>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname" id="cmderecord_field"><a name="cmderecord_field"><!-- --></a>customMetadataTypeRecord</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">Required when creating a custom authentication provider plug-in. The API name of the
                custom authentication provider. Available in API version 36.0 and
                later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">defaultScopes</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">For OpenID Connect authentication providers, the scopes to send with the authorization
                request, if not specified when a flow starts.<span class="ph" id="defaultScopes_desc"><a name="defaultScopes_desc"><!-- --></a></span> Available in API version 29.0 and
                later. <p class="p">In API version 33.0 and later, for Salesforce-managed auth
                  providers, leave the field blank to let Salesforce supply and
                  manage the value. See “Usage.”</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">ecKey</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">Required when using Apple as a third-party authentication
                provider. A private key generated by Apple. Available in API version
                48.0 and later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">errorUrl</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">A custom error URL for the authentication provider to use to
                report errors.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">executionUser</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">
                <p class="p">Required to specify a registration handler. The username of the
                  Salesforce admin or system user who runs the Apex handler or
                  flow. The execution user provides the context in which the
                  registration handler runs. For example, if the handler creates a
                  contact, the creation can be easily traced back to the
                  registration process. In production, use a system user. The user
                  must have the Manage Users permission. Available in API version
                  27.0 and later.</p>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">flow</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">A flow for the registration handler. The flow must be of the
                Identity User Registration Flow type.<p class="p">You can use either a flow or
                  an Apex class for the registration handler. To use an Apex class
                  instead, omit the <span class="keyword parmname">flow</span> field and specify an
                  Apex class in the <span class="keyword parmname">registrationHandler</span>
                  field.</p>
                <p class="p">Available in API version 64.0 and
                  later.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">flowDefaultAccount</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">For authentication providers that use a flow registration
                handler, the default account that new external users are assigned
                to. If you include this field, Salesforce automatically uses it for
                the <span class="keyword parmname">defaultAccountId</span> variable in the
                Authentication Provider User Registration standard flow.<p class="p">A default
                  account is required to use a flow registration handler to create
                  and update external users. You can specify a default account
                  here or in the flow itself. If you use both, the default account
                  that's configured in the flow takes precedent.</p>
                <p class="p">Available
                  in API version 64.0 and later.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">flowDefaultProfile</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">For authentication providers that use a flow registration
                handler, the default profile that new users are assigned to. If you
                include this field, Salesforce automatically uses it for the
                <span class="keyword parmname">defaultProfileId</span> variable in the
                Authentication Provider User Registration standard flow.<p class="p">A default
                  profile is required to use a flow registration handler. You can
                  specify a default profile here or in the flow itself. If you use
                  both, the default profile that's configured in the flow takes
                  precedent.</p>
                <p class="p">Available in API version 64.0 and
                  later.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">friendlyName</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">Required. A user-friendly name for the authentication
                provider.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">iconUrl</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">The path to an icon to use as a button on the login page. Users click the button to
                log in with the associated authentication provider, such as Twitter
                or Facebook. Available in API version 32.0 and later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">idTokenIssuer</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">The source of the authentication token in <samp class="codeph html">https:</samp>
                URI format. This field is available when configuring an OpenID
                Connect or Microsoft authentication provider. If provided,
                Salesforce validates the returned <samp class="codeph nolang">id_token</samp> value. OpenID Connect requires returning an
                <samp class="codeph nolang">id_token</samp> value with the
                <samp class="codeph nolang">access_token</samp> value.
                Available in API version 30.0 and later.
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">includeOrgIdInIdentifier</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">boolean</td>

              <td class="entry" headers="d162582e106" data-title="Description">Used to differentiate between users with the same user ID from two sources (such as
                two sandboxes). If enabled (<samp class="codeph nolang">true</samp>), Salesforce stores the org ID of the third-party
                identity in addition to the user ID. After you enable this setting,
                you can’t disable it. Applies only to a Salesforce-managed auth
                provider. Available in API version 32.0 and later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">isPkceEnabled</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">boolean</td>

              <td class="entry" headers="d162582e106" data-title="Description">Indicates whether the OAuth 2.0 Proof Key for Code Exchange
                (PKCE) security extension is enabled (<samp class="codeph nolang">true</samp>) or not (<samp class="codeph nolang">false</samp>). You can enable PKCE for these
                <span class="keyword parmname">providerType</span> values.<ul class="ul bulletList">
                  <li class="li"><samp class="codeph nolang">Custom</samp></li>

                  <li class="li"><samp class="codeph nolang">Facebook</samp></li>

                  <li class="li"><samp class="codeph nolang">Google</samp></li>

                  <li class="li"><samp class="codeph nolang">Microsoft</samp></li>

                  <li class="li"><samp class="codeph nolang">OpenIdConnect</samp></li>

                  <li class="li">
                    <samp class="codeph nolang">Salesforce</samp>.
                  </li>

                </ul>
                <p class="p">This field is available in API version 59.0 and
                  later.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">linkKickoffUrl</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">The URL for linking existing Salesforce users to a third-party
                account. This field is read-only. Available in API version 43.0 and
                later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">logoutUrl</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">
                <span class="ph" id="logoutUrl_desc"><a name="logoutUrl_desc"><!-- --></a>The destination for users after they log
                  out if they authenticated using single sign-on. The URL must be
                  fully qualified with an http or https prefix, such as
                  <span class="ph filepath">https://acme.my.salesforce.com</span>.</span>
                Available in API version 33.0 and later.
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">oauthKickoffUrl</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">The URL for obtaining OAuth access tokens for a third party. This
                field is read-only. Available in API version 43.0 and later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">paramForwardAllowlist</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">AuthProvParamFwdAllowlist[]</td>

              <td class="entry" headers="d162582e106" data-title="Description">An allowlisted URL parameter that can be forwarded from the
                authentication provider's client configuration URLs to the
                authorization URL. Available in API version 62.0 and later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname" id="plugin"><a name="plugin"><!-- --></a>plugin</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">An existing Apex class that extends the <samp class="codeph nolang">Auth.AuthProviderPluginClass</samp> abstract class. Available
                in API version 36.0 and later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">portal</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">This field is used only with portals, which are deprecated.
                Salesforce doesn’t support creating portals, but existing portals
                are supported. </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">providerType</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">
                <samp class="codeph nolang">AuthProviderType</samp>
                (<a class="xref" href="https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_objects_intro.htm#enumeration_title">enumeration</a> of type string)
              </td>

              <td class="entry" headers="d162582e106" data-title="Description">Required. The third-party authentication provider to use. Valid
                values include:<ul class="ul bulletList">
                  <li class="li"><samp class="codeph nolang">Apple</samp></li>

                  <li class="li">
                    <samp class="codeph nolang">Bitbucket</samp>—Provides authentication for a
                    <samp class="codeph nolang">Bitbucket</samp> provider.
                    Enables you to connect to Bitbucket from a Lightning
                    Platform application. When logged in to Bitbucket, the app
                    can makes calls to Bitbucket APIs. The <samp class="codeph nolang">Bitbucket</samp> provider isn’t
                    available as an SSO provider, so users can’t log in to a
                    Salesforce org using their Bitbucket login credentials.
                    Available in API version 61.0 and higher.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">Custom</samp>—A
                    provider configured with a custom authentication provider
                    plug-in. Available in API version 36.0 and later.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">Facebook</samp>.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">GitHub</samp>—Provides authentication for a
                    <samp class="codeph nolang">GitHub</samp> provider.
                    Used to log in users of your Lightning Platform app to
                    GitHub using OAuth. When logged in to GitHub, your app can
                    make calls to GitHub APIs. The <samp class="codeph nolang">GitHub</samp> provider isn’t available as an SSO
                    provider, so users can’t log in to your Salesforce org using
                    their GitHub login credentials. Available in API version
                    35.0 and later.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">Google</samp>.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">Janrain</samp>.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">LinkedIn</samp>. Available in
                    API version 32.0 and later.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">Microsoft</samp>—Provides authentication for all
                    services that can be accessed via Microsoft Azure Active
                    Directory. Available in API version 55.0 and later.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">MicrosoftACS</samp>—Microsoft Access Control
                    Service typically provides authentication for a Microsoft
                    Office 365 service, like SharePoint Online. The <samp class="codeph nolang">MicrosoftACS</samp> provider
                    doesn't support SSO. Available in API version 31.0 and
                    later.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">MuleSoft</samp>. Available in
                    API version 57.0 and later.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">OpenIdConnect</samp>.
                    Available in API version 29.0 and later.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">Salesforce</samp>.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">Slack</samp>. Available in API
                    version 54.0 and later.
                  </li>

                  <li class="li">
                    <samp class="codeph nolang">Twitter</samp>. Available in
                    API version 32.0 and later.
                  </li>

                </ul>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">registrationHandler</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">An existing Apex class that implements the <samp class="codeph nolang">Auth.RegistrationHandler</samp>
                interface.<p class="p">You can use either an Apex class or a flow for the
                  registration handler. To use a flow instead, omit the
                  <span class="keyword parmname">registrationHandler</span> field and specify a
                  flow in the <span class="keyword parmname">flow</span> field.
                </p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">requireMfa</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">boolean</td>

              <td class="entry" headers="d162582e106" data-title="Description">Requires multi-factor authentication (MFA) for single sign-on
                with this auth provider based on the MFA status of each user. For
                this setting to trigger MFA, you must apply MFA directly to users
                via one of two methods. 1) Enable the org setting Require
                multi-factor authentication (MFA) for all direct UI logins to your
                Salesforce org. 2) Assign the user permission multi-factor
                authentication for User Interface Logins. </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">sendAccessTokenInHeader</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">boolean</td>

              <td class="entry" headers="d162582e106" data-title="Description"> If enabled (<samp class="codeph nolang">true</samp>), the access token is sent to
                the <span class="keyword parmname">UserInfoUrl</span> in a header instead of a query
                string. Available in API version 30.0 and later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">sendClientCredentialsInHeader</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">boolean</td>

              <td class="entry" headers="d162582e106" data-title="Description">Required when creating an OpenID Connect authentication provider. If enabled (<samp class="codeph nolang">true</samp>), the client credentials are
                sent in a header to the <span class="keyword parmname">tokenUrl</span> instead of a
                query string. The credentials are in the standard OpenID Connect
                Basic Credentials header format, which is <samp class="codeph nolang">Basic &lt;token&gt;</samp>, where <samp class="codeph nolang">&lt;token&gt;</samp> is the base64-encoded
                string <samp class="codeph nolang">"clientkey:clientsecret"</samp>. Available in API version 30.0
                and later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">sendSecretInApis</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">boolean</td>

              <td class="entry" headers="d162582e106" data-title="Description">
                <div class="p">Determines whether the encrypted consumer secret appears in API
                  responses. If enabled (default), the secret appears in the
                  response. If disabled (<samp class="codeph nolang">false</samp>), responses don’t include the consumer
                  secret. For security, you can disable the setting. However, keep
                  in mind that: <ul class="ul bulletList">
                    <li class="li">By disabling this setting, the consumer secret is
                      excluded from API responses in all API versions.</li>

                    <li class="li">Change sets and other metadata deployments break because
                      both the consumer key and secret are expected. To fix
                      this problem, insert the consumer key manually during
                      deployment.</li>

                  </ul>
                  Available in API version 47.0 and later.</div>

                <p class="p">The consumer secret is always included in the response as a
                  placeholder value, regardless of the value provided for <samp class="codeph nolang">sendSecretInApis</samp>. </p>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">ssoKickoffUrl</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description">The URL for performing single sign-on into Salesforce from a
                third party by using its third-party credentials. This field is
                read-only. Available in API version 43 and later.</td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">tokenUrl</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description"> The OAuth token endpoint URL of an OpenID Connect authentication provider. Available
                in API version 29.0 and later. <p class="p">In API version 33.0 and later, for
                  Salesforce-managed auth providers, leave the field blank to let
                  Salesforce supply and manage the value. For details, see
                  “Usage.”</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d162582e100" data-title="Field Name"><span class="keyword parmname">userInfoUrl</span></td>

              <td class="entry" headers="d162582e103" data-title="Field Type">string</td>

              <td class="entry" headers="d162582e106" data-title="Description"> The OpenID Connect endpoint URL of the OpenID Connect authentication provider.
                Available in API version 29.0 and later. <p class="p">In API version 33.0 and
                  later, for Salesforce-managed auth providers, leave the field
                  blank to let Salesforce supply and manage the value. For
                  details, see “Usage.”</p>
              </td>

            </tr>

          </tbody>

        </table>

## AuthProvParamFwdAllowlist

Represents an allowlisted URL parameter that can be forwarded from authentication provider client configuration URLs to the authorization URL. Use this type to add custom functionality to authentication providers. For example, allowlist a ui\_locales parameter and use it to send a user's language preference from Salesforce to the third-party provider's login page. You can allowlist up to 10 parameters.

| Filed Name | Field type | Description |
| --- | --- | --- |
| description | string | A description for the allowlisted URL parameter. |
| param | string | The name of the parameter, such as ui\_locales or login\_hint. |

## Declarative Metadata Sample Definition

![Note](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/images/icon_note.png)

#### Note

Starting in November 2022, enter the consumerSecret value as plaintext, for example, <consumerSecret>yourplaintextconsumersecret</consumerSecret>. Existing consumer secrets that were entered as encrypted values can be deployed throughout the Winter ‘23 release.

<?xml version="1.0" encoding="UTF-8"?>
<AuthProvider xmlns="http://soap.sforce.com/2006/04/metadata">
    <consumerKey\>yourappkey</consumerKey\>
    <consumerSecret>PwdVxXjzu3NCZ3MD4He+wA=\=</consumerSecret\>
    <executionUser\>admin@your.org</executionUser\>
    <friendlyName\>FacebookAuthProvider</friendlyName\>
    <providerType\>Facebook</providerType\>
    <registrationHandler\>RegistrationHandler</registrationHandler\>
    <sendSecretInApis\>true</sendSecretInApis\>     
</AuthProvider\>

This example package manifest references the previous AuthProvider definition.

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types\>
        <members\>FacebookAuthProvider</members\>
        <name\>AuthProvider</name\>
    </types\>
    <version\>28.0</version\>
</Package\>

## Usage

Salesforce provides default authentication providers, called Salesforce-managed auth providers, to simplify setting up these service providers for authentication.

- Apple
- Bitbucket
- Facebook
- GitHub
- Google
- Janrain
- LinkedIn
- Microsoft
- Microsoft Access Control Service
- MuleSoft
- Salesforce
- Slack

To use a Salesforce-managed auth provider, leave these fields blank when creating your auth provider from the Auth. Provider Setup page.

- authorizeUrl
- consumerKey
- consumerSecret
- defaultScopes
- tokenURL
- userInfoUrl

![Note](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/images/icon_note.png)

#### Note

If you provide a value for one of these fields, you must also provide a value for consumerKey and consumerSecret.

## Wildcard Support in the Manifest File

This metadata type supports the wildcard character \* (asterisk) in the package.xml manifest file. For information about using the manifest file, see [Deploying and Retrieving Metadata with the Zip File](https://developer.salesforce.com/docs/atlas.en-us.264.0.api_meta.meta/api_meta/file_based_zip_file.htm).