pub struct AzureAdAuthConfig {
pub auth_method: String,
pub tenant_id: Option<String>,
pub client_id: Option<String>,
pub client_secret: Option<String>,
pub encrypted_client_secret: Option<String>,
pub client_secret_encryption_salt: Option<String>,
pub subscription_id: Option<String>,
pub resource_group: Option<String>,
pub namespace: Option<String>,
pub authority_host: Option<String>,
pub scope: Option<String>,
}Expand description
Configuration for Azure Active Directory authentication.
Contains all necessary parameters for Azure AD authentication flows including Device Code Flow and Client Credentials Flow.
§Required Fields
auth_method- Must be “device_code” or “client_secret”
§Required for Device Code Flow
tenant_id- Azure AD tenant IDclient_id- Azure AD application (client) ID
§Required for Client Credentials Flow
tenant_id- Azure AD tenant IDclient_id- Azure AD application (client) IDclient_secret- Azure AD application client secret
§Optional Fields
subscription_id- For resource discovery (defaults to env AZURE_SUBSCRIPTION_ID)resource_group- For resource discovery (defaults to auto-discovery)namespace- Service Bus namespace (defaults to auto-discovery)authority_host- Azure AD authority host (defaults to https://login.microsoftonline.com)scope- OAuth scope (defaults to https://servicebus.azure.net/.default)
§Examples
§Device Code Flow Configuration
use quetty_server::auth::types::AzureAdAuthConfig;
let config = AzureAdAuthConfig {
auth_method: "device_code".to_string(),
tenant_id: Some("your-tenant-id".to_string()),
client_id: Some("your-client-id".to_string()),
client_secret: None, // Not needed for device code flow
subscription_id: Some("your-subscription-id".to_string()),
resource_group: Some("your-resource-group".to_string()),
namespace: Some("your-servicebus-namespace".to_string()),
authority_host: None, // Uses default
scope: None, // Uses default
};§Client Credentials Flow Configuration
use quetty_server::auth::types::AzureAdAuthConfig;
let config = AzureAdAuthConfig {
auth_method: "client_secret".to_string(),
tenant_id: Some("your-tenant-id".to_string()),
client_id: Some("your-client-id".to_string()),
client_secret: Some("your-client-secret".to_string()), // Required
subscription_id: None, // Optional
resource_group: None, // Optional
namespace: None, // Optional
authority_host: None, // Uses default
scope: None, // Uses default
};Fields§
§auth_method: StringAuthentication method: “device_code” or “client_secret” (REQUIRED)
tenant_id: Option<String>Azure AD tenant ID (REQUIRED for all flows)
client_id: Option<String>Azure AD application (client) ID (REQUIRED for all flows)
client_secret: Option<String>Azure AD application client secret (REQUIRED for client_secret flow)
encrypted_client_secret: Option<String>Encrypted client secret (alternative to client_secret)
client_secret_encryption_salt: Option<String>Salt for client secret encryption (required when encrypted_client_secret is used)
subscription_id: Option<String>Azure subscription ID (OPTIONAL - defaults to env AZURE_SUBSCRIPTION_ID)
resource_group: Option<String>Resource group name (OPTIONAL - defaults to auto-discovery)
namespace: Option<String>Service Bus namespace name (OPTIONAL - defaults to auto-discovery)
Azure AD authority host URL (OPTIONAL - defaults to https://login.microsoftonline.com)
scope: Option<String>OAuth scope for token requests (OPTIONAL - defaults to https://servicebus.azure.net/.default)
Implementations§
Source§impl AzureAdAuthConfig
impl AzureAdAuthConfig
Sourcepub fn get_client_secret(
&self,
password: Option<&str>,
) -> Result<Option<String>, EncryptionError>
pub fn get_client_secret( &self, password: Option<&str>, ) -> Result<Option<String>, EncryptionError>
Returns the actual client secret, decrypting if necessary
Sourcepub fn has_encrypted_client_secret(&self) -> bool
pub fn has_encrypted_client_secret(&self) -> bool
Returns true if this config contains encrypted client secret
Sourcepub fn has_encrypted_data(&self) -> bool
pub fn has_encrypted_data(&self) -> bool
Returns true if any encrypted data is present in this config
Sourcepub fn encrypt_client_secret_with_password(
&mut self,
password: &str,
) -> Result<(), EncryptionError>
pub fn encrypt_client_secret_with_password( &mut self, password: &str, ) -> Result<(), EncryptionError>
Encrypts the client secret with the given password
Trait Implementations§
Source§impl Clone for AzureAdAuthConfig
impl Clone for AzureAdAuthConfig
Source§fn clone(&self) -> AzureAdAuthConfig
fn clone(&self) -> AzureAdAuthConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more