[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[[["\u003cp\u003eThe latest release candidate version is 2.37.0-rc, with numerous previous versions, such as 2.36.0, 2.35.0, and down to 2.11.0, also available for reference.\u003c/p\u003e\n"],["\u003cp\u003eThis page provides documentation on how to override the default authentication mechanism using \u003ccode\u003egoogle::cloud::UnifiedCredentialsOption\u003c/code\u003e, especially for applications that cannot use Application Default Credentials.\u003c/p\u003e\n"],["\u003cp\u003eThe provided code snippet demonstrates how to load a service account key file explicitly to authenticate with the Pub/Sub service, using the example of making a \u003ccode\u003ePublisher\u003c/code\u003e object.\u003c/p\u003e\n"],["\u003cp\u003eThere are links for examples of overriding the authentication for multiple \u003ccode\u003eClient\u003c/code\u003e classes such as, \u003ccode\u003eSubscriber\u003c/code\u003e, \u003ccode\u003eBlockingPublisher\u003c/code\u003e, \u003ccode\u003eTopicAdminClient\u003c/code\u003e, \u003ccode\u003eSubscriptionAdminClient\u003c/code\u003e, \u003ccode\u003eSchemaServiceClient\u003c/code\u003e, and \u003ccode\u003ePublisher\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe document refers users to the "Best practices for managing service account keys" guide for more details on managing service account keys and the "Authentication Components" document for more information on the factory functions to create \u003ccode\u003egoogle::cloud::Credentials\u003c/code\u003e objects.\u003c/p\u003e\n"]]],[],null,["Version 2.30.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/pubsub/latest/pubsub-auth-example)\n- [2.41.0](/cpp/docs/reference/pubsub/2.41.0/pubsub-auth-example)\n- [2.40.0](/cpp/docs/reference/pubsub/2.40.0/pubsub-auth-example)\n- [2.39.0](/cpp/docs/reference/pubsub/2.39.0/pubsub-auth-example)\n- [2.38.0](/cpp/docs/reference/pubsub/2.38.0/pubsub-auth-example)\n- [2.37.0](/cpp/docs/reference/pubsub/2.37.0/pubsub-auth-example)\n- [2.36.0](/cpp/docs/reference/pubsub/2.36.0/pubsub-auth-example)\n- [2.35.0](/cpp/docs/reference/pubsub/2.35.0/pubsub-auth-example)\n- [2.34.0](/cpp/docs/reference/pubsub/2.34.0/pubsub-auth-example)\n- [2.33.0](/cpp/docs/reference/pubsub/2.33.0/pubsub-auth-example)\n- [2.32.0](/cpp/docs/reference/pubsub/2.32.0/pubsub-auth-example)\n- [2.31.0](/cpp/docs/reference/pubsub/2.31.0/pubsub-auth-example)\n- [2.30.0](/cpp/docs/reference/pubsub/2.30.0/pubsub-auth-example)\n- [2.29.0](/cpp/docs/reference/pubsub/2.29.0/pubsub-auth-example)\n- [2.28.0](/cpp/docs/reference/pubsub/2.28.0/pubsub-auth-example)\n- [2.27.0](/cpp/docs/reference/pubsub/2.27.0/pubsub-auth-example)\n- [2.26.0](/cpp/docs/reference/pubsub/2.26.0/pubsub-auth-example)\n- [2.25.1](/cpp/docs/reference/pubsub/2.25.1/pubsub-auth-example)\n- [2.24.0](/cpp/docs/reference/pubsub/2.24.0/pubsub-auth-example)\n- [2.23.0](/cpp/docs/reference/pubsub/2.23.0/pubsub-auth-example)\n- [2.22.1](/cpp/docs/reference/pubsub/2.22.1/pubsub-auth-example)\n- [2.21.0](/cpp/docs/reference/pubsub/2.21.0/pubsub-auth-example)\n- [2.20.0](/cpp/docs/reference/pubsub/2.20.0/pubsub-auth-example)\n- [2.19.0](/cpp/docs/reference/pubsub/2.19.0/pubsub-auth-example)\n- [2.18.0](/cpp/docs/reference/pubsub/2.18.0/pubsub-auth-example)\n- [2.17.0](/cpp/docs/reference/pubsub/2.17.0/pubsub-auth-example)\n- [2.16.0](/cpp/docs/reference/pubsub/2.16.0/pubsub-auth-example)\n- [2.15.1](/cpp/docs/reference/pubsub/2.15.1/pubsub-auth-example)\n- [2.14.0](/cpp/docs/reference/pubsub/2.14.0/pubsub-auth-example)\n- [2.13.0](/cpp/docs/reference/pubsub/2.13.0/pubsub-auth-example)\n- [2.12.0](/cpp/docs/reference/pubsub/2.12.0/pubsub-auth-example)\n- [2.11.0](/cpp/docs/reference/pubsub/2.11.0/pubsub-auth-example) \n\nOverride the authentication configuration\n=========================================\n\nSome applications cannot use the default authentication mechanism (known as [Application Default Credentials](https://cloud.google.com/docs/authentication#adc)). You can override this default using [`google::cloud::UnifiedCredentialsOption`](https://cloud.google.com/cpp/docs/reference/common/latest/structgoogle_1_1cloud_1_1UnifiedCredentialsOption.html). The following example shows how to explicitly load a service account key file. \n\n namespace pubsub = ::google::cloud::pubsub;\n using ::google::cloud::Options;\n [](std::string project_id, std::string topic_id, std::string const& keyfile) {\n auto is = std::ifstream(keyfile);\n is.exceptions(std::ios::badbit);\n auto contents = std::string(std::istreambuf_iterator\u003cchar\u003e(is.rdbuf()), {});\n auto topic = pubsub::Topic(std::move(project_id), std::move(topic_id));\n return pubsub::Publisher(pubsub::MakePublisherConnection(\n std::move(topic),\n Options{}.set\u003cgoogle::cloud::UnifiedCredentialsOption\u003e(\n google::cloud::MakeServiceAccountCredentials(contents))));\n }\n\nKeep in mind that we chose this as an example because it is relatively easy to understand. Consult the [Best practices for managing service account keys](https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys) guide for more details.\n\n###### See Also\n\n[Authentication Components](https://cloud.google.com/cpp/docs/reference/common/latest/group__guac.html) - for more information on the factory functions to create [`google::cloud::Credentials`](https://cloud.google.com/cpp/docs/reference/common/latest/classgoogle_1_1cloud_1_1Credentials.html) objects.\nFollow these links to find examples for other `*Client` classes:\n\n- [`Subscriber`](/cpp/docs/reference/pubsub/2.30.0/Subscriber-service-account-snippet)\n- [`BlockingPublisher`](/cpp/docs/reference/pubsub/2.30.0/BlockingPublisher-service-account-snippet)\n- [`TopicAdminClient`](/cpp/docs/reference/pubsub/2.30.0/TopicAdminClient-service-account-snippet)\n- [`SubscriptionAdminClient`](/cpp/docs/reference/pubsub/2.30.0/SubscriptionAdminClient-service-account-snippet)\n- [`SchemaServiceClient`](/cpp/docs/reference/pubsub/2.30.0/SchemaServiceClient-service-account-snippet)\n- [`Publisher`](/cpp/docs/reference/pubsub/2.30.0/Publisher-service-account-snippet)"]]