Skip to content

Commit 19e233c

Browse files
authored
Merge pull request #43 from sander110419/Feature/interactivelogin
Added interactive login
2 parents f2e5d3e + feceb31 commit 19e233c

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

functions.py

+7-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import json
55
import logging
66
from azure_func import azure_imports
7-
from azure.identity import ClientSecretCredential, CertificateCredential
7+
from azure.identity import ClientSecretCredential, CertificateCredential, InteractiveBrowserCredential
88

99
class CustomEncoder(json.JSONEncoder):
1010
def default(self, obj):
@@ -22,7 +22,8 @@ def parse_arguments():
2222
parser.add_argument('--client_secret', type=str, required=False, help='Client Secret')
2323
parser.add_argument('--certificate_path', type=str, required=False, help='Path to the certificate file')
2424
parser.add_argument('--use_device_code', action='store_true', help='Use device code authentication')
25-
25+
parser.add_argument('--interactive_login', action='store_true', help='Use interactive login')
26+
2627
#filter args
2728
parser.add_argument('--subscription_id', type=str, required=False, help='Subscription ID')
2829
parser.add_argument('--resource_group', type=str, required=False, help='Resource Group')
@@ -63,8 +64,10 @@ def initialize_data():
6364

6465
return data, start_time
6566

66-
def authenticate_to_azure(tenant_id, client_id, client_secret=None, certificate_path=None, use_device_code=False):
67-
if use_device_code:
67+
def authenticate_to_azure(tenant_id, client_id, client_secret=None, certificate_path=None, use_device_code=None, interactive_login=False):
68+
if interactive_login:
69+
credential = InteractiveBrowserCredential(client_id=client_id)
70+
elif use_device_code:
6871
# Use DeviceCodeCredential when use_device_code is True
6972
credential = azure_imports.DeviceCodeCredential(client_id=client_id, tenant_id=tenant_id)
7073
elif certificate_path:

main.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#initialise data
1818
data, start_time = initialize_data()
1919
#authenticate to Azure
20-
credential, subscription_client = authenticate_to_azure(args.tenant_id, args.client_id, args.client_secret, args.certificate_path, args.use_device_code)
20+
credential, subscription_client = authenticate_to_azure(args.tenant_id, args.client_id, args.client_secret, args.certificate_path, args.use_device_code, args.interactive_login)
2121
#Get all subscriptions from erguments
2222
subscriptions = get_subscriptions(subscription_client, args.subscription_id)
2323

@@ -263,9 +263,9 @@ def update_progress_bar(total_resources, rg, total_resourcegroups, processing_ti
263263
total_resourcegroups -= 1
264264

265265
def authenticate(args):
266-
client_secret = None if args.use_device_code or args.certificate_path else args.client_secret
266+
client_secret = None if args.use_device_code or args.certificate_path or args.interactive_login else args.client_secret
267267
certificate_path = None if args.use_device_code else args.certificate_path
268-
_, subscription_client = authenticate_to_azure(args.tenant_id, args.client_id, client_secret, certificate_path, args.use_device_code)
268+
_, subscription_client = authenticate_to_azure(args.tenant_id, args.client_id, client_secret, certificate_path, args.use_device_code, args.interactive_login)
269269
return subscription_client
270270

271271
def create_directory(output_folder):

0 commit comments

Comments
 (0)