src/authentication/okta/okta.h (24 lines of code) (raw):

// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef OKTA_H_ #define OKTA_H_ #include <string> #include "../authentication_provider.h" #include "../federation.h" class OktaCredentialsProvider : public FederationCredentialProvider { public: OktaCredentialsProvider( const FederatedAuthConfig& config, std::shared_ptr<Aws::Http::HttpClient> http_client, std::shared_ptr<Aws::STS::STSClient> sts_client ): FederationCredentialProvider( config.iam_idp_arn, config.iam_role_arn, std::move(http_client), std::move(sts_client) ), cfg(config) {} // constant pattern strings static const std::string SAML_RESPONSE_PATTERN; protected: std::string GetSAMLAssertion(std::string& err_info) override; private: std::string get_session_token(); std::string get_session_token_url(); std::string get_signin_page_url(); FederatedAuthConfig cfg; }; #endif // OKTA_H_