CCF
Loading...
Searching...
No Matches
jwt_auth.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
6
7namespace ccf
8{
10 {
13 std::string key_issuer;
15 nlohmann::json header;
17 nlohmann::json payload;
18 };
19
20 struct PublicKeysCache;
21
22 bool validate_issuer(
23 const std::string& iss,
24 const std::optional<std::string>& tid,
25 std::string constraint);
26
28 {
29 protected:
31 std::unique_ptr<PublicKeysCache> keys_cache;
32
33 public:
34 static constexpr auto SECURITY_SCHEME_NAME = "jwt";
35
37 virtual ~JwtAuthnPolicy();
38
39 std::unique_ptr<AuthnIdentity> authenticate(
41 const std::shared_ptr<ccf::RpcContext>& ctx,
42 std::string& error_reason) override;
43
45 std::shared_ptr<ccf::RpcContext> ctx,
46 std::string&& error_reason) override;
47
48 std::optional<OpenAPISecuritySchema> get_openapi_security_schema()
49 const override
50 {
51 return security_schema;
52 }
53
54 std::string get_security_scheme_name() override
55 {
57 }
58 };
59}
Definition authentication_types.h:28
Definition jwt_auth.h:28
static constexpr auto SECURITY_SCHEME_NAME
Definition jwt_auth.h:34
std::unique_ptr< PublicKeysCache > keys_cache
Definition jwt_auth.h:31
void set_unauthenticated_error(std::shared_ptr< ccf::RpcContext > ctx, std::string &&error_reason) override
Definition jwt_auth.cpp:307
virtual ~JwtAuthnPolicy()
static const OpenAPISecuritySchema security_schema
Definition jwt_auth.h:30
std::string get_security_scheme_name() override
Definition jwt_auth.h:54
std::optional< OpenAPISecuritySchema > get_openapi_security_schema() const override
Definition jwt_auth.h:48
std::unique_ptr< AuthnIdentity > authenticate(ccf::kv::ReadOnlyTx &tx, const std::shared_ptr< ccf::RpcContext > &ctx, std::string &error_reason) override
Definition jwt_auth.cpp:161
JwtAuthnPolicy()
Definition jwt_auth.cpp:155
Definition tx.h:160
Definition app_interface.h:14
std::pair< std::string, nlohmann::json > OpenAPISecuritySchema
Definition authentication_types.h:23
bool validate_issuer(const std::string &iss, const std::optional< std::string > &tid, std::string constraint)
Definition jwt_auth.cpp:38
Definition authentication_types.h:19
Definition jwt_auth.h:10
std::string key_issuer
Definition jwt_auth.h:13
nlohmann::json header
Definition jwt_auth.h:15
nlohmann::json payload
Definition jwt_auth.h:17
Definition jwt_auth.cpp:88