Skip to content
This repository has been archived by the owner on Mar 13, 2022. It is now read-only.

Commit

Permalink
Merge pull request #77 from brendandburns/master
Browse files Browse the repository at this point in the history
Add support for refreshing Azure tokens.
  • Loading branch information
roycaihw committed Jul 23, 2018
2 parents 7359cda + 96767a3 commit 24a0ff2
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion config/kube_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
import json
import os
import tempfile
import time

import adal
import google.auth
import google.auth.transport.requests
import oauthlib.oauth2
Expand Down Expand Up @@ -202,10 +204,29 @@ def _load_azure_token(self, provider):
return
if 'access-token' not in provider['config']:
return
# TODO: Refresh token here...
if 'expires-on' in provider['config']:
if int(provider['config']['expires-on']) < time.gmtime():
self._refresh_azure_token(provider['config'])
self.token = 'Bearer %s' % provider['config']['access-token']
return self.token

def _refresh_azure_token(self, config):
tenant = config['tenant-id']
authority = 'https://login.microsoftonline.com/{}'.format(tenant)
context = adal.AuthenticationContext(
authority, validate_authority=True,
)
refresh_token = config['refresh-token']
client_id = config['client-id']
token_response = context.acquire_token_with_refresh_token(
refresh_token, client_id, '00000002-0000-0000-c000-000000000000')

provider = self._user['auth-provider']['config']
provider.value['access-token'] = token_response['accessToken']
provider.value['expires-on'] = token_response['expiresOn']
if self._config_persister:
self._config_persister(self._config.value)

def _load_gcp_token(self, provider):
if (('config' not in provider) or
('access-token' not in provider['config']) or
Expand Down

0 comments on commit 24a0ff2

Please sign in to comment.