[[["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, and other versions available are from 2.36.0 down to 2.11.0, each with documentation and code examples related to pubsub authentication.\u003c/p\u003e\n"],["\u003cp\u003eThe page provides an example of how to override the default authentication mechanism, using \u003ccode\u003egoogle::cloud::UnifiedCredentialsOption\u003c/code\u003e to load a service account key file explicitly.\u003c/p\u003e\n"],["\u003cp\u003eThe code example demonstrates the creation of a \u003ccode\u003epubsub::Publisher\u003c/code\u003e object with a custom service account credential, obtained from reading the contents of the key file.\u003c/p\u003e\n"],["\u003cp\u003eThe page contains a list of links to documentation and code examples for other client classes, including \u003ccode\u003eSubscriber\u003c/code\u003e, \u003ccode\u003eBlockingPublisher\u003c/code\u003e, and admin clients, all in the context of service account snippets.\u003c/p\u003e\n"],["\u003cp\u003eIt also refers the user to the "Best practices for managing service account keys" guide for more details on securing and managing credentials, as well as additional information on the factory functions for creating credentials objects.\u003c/p\u003e\n"]]],[],null,["Version 2.35.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.35.0/Subscriber-service-account-snippet)\n- [`BlockingPublisher`](/cpp/docs/reference/pubsub/2.35.0/BlockingPublisher-service-account-snippet)\n- [`TopicAdminClient`](/cpp/docs/reference/pubsub/2.35.0/TopicAdminClient-service-account-snippet)\n- [`SubscriptionAdminClient`](/cpp/docs/reference/pubsub/2.35.0/SubscriptionAdminClient-service-account-snippet)\n- [`SchemaServiceClient`](/cpp/docs/reference/pubsub/2.35.0/SchemaServiceClient-service-account-snippet)\n- [`Publisher`](/cpp/docs/reference/pubsub/2.35.0/Publisher-service-account-snippet)"]]