[[["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 available version is 2.37.0-rc, with numerous other versions, from 2.36.0 down to 2.11.0, also accessible via individual links for specific reference.\u003c/p\u003e\n"],["\u003cp\u003eApplications that cannot use the default authentication mechanism can override it using \u003ccode\u003egoogle::cloud::UnifiedCredentialsOption\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eAn example of overriding default authentication involves explicitly loading a service account key file, as shown in the provided code snippet, which is intended for ease of understanding.\u003c/p\u003e\n"],["\u003cp\u003eFor detailed guidance on service account key management, refer to the "Best practices for managing service account keys" guide, and for further information on creating credentials objects, review the Authentication Components section.\u003c/p\u003e\n"],["\u003cp\u003eEach listed version, including the latest, is linked to a page with the "/storage-auth-example" path.\u003c/p\u003e\n"]]],[],null,["Version 2.26.0keyboard_arrow_down\n\n- [2.42.0-rc (latest)](/cpp/docs/reference/storage/latest/storage-auth-example)\n- [2.41.0](/cpp/docs/reference/storage/2.41.0/storage-auth-example)\n- [2.40.0](/cpp/docs/reference/storage/2.40.0/storage-auth-example)\n- [2.39.0](/cpp/docs/reference/storage/2.39.0/storage-auth-example)\n- [2.38.0](/cpp/docs/reference/storage/2.38.0/storage-auth-example)\n- [2.37.0](/cpp/docs/reference/storage/2.37.0/storage-auth-example)\n- [2.36.0](/cpp/docs/reference/storage/2.36.0/storage-auth-example)\n- [2.35.0](/cpp/docs/reference/storage/2.35.0/storage-auth-example)\n- [2.34.0](/cpp/docs/reference/storage/2.34.0/storage-auth-example)\n- [2.33.0](/cpp/docs/reference/storage/2.33.0/storage-auth-example)\n- [2.32.0](/cpp/docs/reference/storage/2.32.0/storage-auth-example)\n- [2.31.0](/cpp/docs/reference/storage/2.31.0/storage-auth-example)\n- [2.30.0](/cpp/docs/reference/storage/2.30.0/storage-auth-example)\n- [2.29.0](/cpp/docs/reference/storage/2.29.0/storage-auth-example)\n- [2.28.0](/cpp/docs/reference/storage/2.28.0/storage-auth-example)\n- [2.27.0](/cpp/docs/reference/storage/2.27.0/storage-auth-example)\n- [2.26.0](/cpp/docs/reference/storage/2.26.0/storage-auth-example)\n- [2.25.1](/cpp/docs/reference/storage/2.25.1/storage-auth-example)\n- [2.24.0](/cpp/docs/reference/storage/2.24.0/storage-auth-example)\n- [2.23.0](/cpp/docs/reference/storage/2.23.0/storage-auth-example)\n- [2.22.1](/cpp/docs/reference/storage/2.22.1/storage-auth-example)\n- [2.21.0](/cpp/docs/reference/storage/2.21.0/storage-auth-example)\n- [2.20.0](/cpp/docs/reference/storage/2.20.0/storage-auth-example)\n- [2.19.0](/cpp/docs/reference/storage/2.19.0/storage-auth-example)\n- [2.18.0](/cpp/docs/reference/storage/2.18.0/storage-auth-example)\n- [2.17.0](/cpp/docs/reference/storage/2.17.0/storage-auth-example)\n- [2.16.0](/cpp/docs/reference/storage/2.16.0/storage-auth-example)\n- [2.15.1](/cpp/docs/reference/storage/2.15.1/storage-auth-example)\n- [2.14.0](/cpp/docs/reference/storage/2.14.0/storage-auth-example)\n- [2.13.0](/cpp/docs/reference/storage/2.13.0/storage-auth-example)\n- [2.12.0](/cpp/docs/reference/storage/2.12.0/storage-auth-example)\n- [2.11.0](/cpp/docs/reference/storage/2.11.0/storage-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 gcs = ::google::cloud::storage;\n [](std::string const& filename, std::string const& bucket_name,\n std::string const& object_name) {\n auto is = std::ifstream(filename);\n is.exceptions(std::ios::badbit);\n auto json_string =\n std::string(std::istreambuf_iterator\u003cchar\u003e(is.rdbuf()), {});\n auto credentials =\n google::cloud::MakeServiceAccountCredentials(json_string);\n auto client = gcs::Client(\n google::cloud::Options{}.set\u003cgoogle::cloud::UnifiedCredentialsOption\u003e(\n credentials));\n PerformSomeOperations(client, bucket_name, object_name);\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."]]