
    #	h                         S r SSKrSSKrSSKrSSKrSSKr SSKJr  SSKJ	r	  \R                  " \5      rS rS rS	S jrg!   SSKJr   N.= f)
zPThis module wraps Cloud Shell's IMDS-like interface inside an OAuth2-like helper    N)urlparse   )decode_partc                  `    [         R                  R                  SS5      R                  S5      $ )NAZUREPS_HOST_ENVIRONMENT zcloud-shell)osenvironget
startswith     A/var/www/html/env/lib/python3.13/site-packages/msal/cloudshell.py_is_running_in_cloud_shellr      s#    ::>>4b9DD]SSr   c                    SS/nU H  nU R                  U5      (       d  M  Us  $    [        U 5      nUR                  (       d/  UR                  (       d  UR                  R                  S5      S   $ UR                  (       aK  UR                  R                  S5      (       a  SOSnSR                  UR                  UR                  U5      $ U $ )Nz(https://analysis.windows.net/powerbi/apiz4https://pas.windows.net/CheckMyAccess/Linux/.default/r   z//r   z	{}://{}{})r   r   schemenetlocpathsplitformat)scopecloud_shell_supported_audiencesautrailers        r   _scope_to_resourcer      s    2>'
# -AH - 	A88AHHvv||C ##xx66$$T**C 	!!!((AHHg>>Lr   c                    U R                  S[        U=(       d    0 SR                  [        [        U5      5      S9SS0S9nUR
                  S:  a  [        R                  SUR                  5        [        R                  " UR                  5      R                  S	0 5      nUR                  S
5      UR                  S5      S.R                  5        VVs0 s H  u  pgU(       d  M  Xg_M     snn$ [        R                  " UR                  5      nSn	US   [        US   5      UR                  SU	5      S.n
U=(       d    0 R                  SU	5      nU
S   U:w  a  SSR                  U5      S.$ US   R                  S5      nSSS.n[         R                   " 5       nSnSSUUS-   UUS.U
S'   [#        U5      S:X  a   [        R                  " [%        US   5      5      nUR                  SS5      UR                  SS5      S.nUS    US!   UUS"   US#   UR                  S$5      =(       d    UR                  S%5      =(       d    US.U
S'   [(        R*                  " [        R,                  " U5      R/                  S'5      5      R1                  S'5      U
S('   US)   U
S   S'   UR                  S*5      (       a  US*   U
S*'   U
$ s  snnf ! [&         a    [        R                  S&US   5         Nf = f)+Nz#http://localhost:50342/oauth2/token )resourceMetadatatrue)dataheadersi,  zCloud Shell IMDS error: %serrorcodemessage)r%   error_descriptionBeareraccess_token
expires_in
token_type)r*   r+   r,   broker_errorz>token_type {} is not supported by this version of Azure Portal.user
cloudshell)uidutidzcurrentuser@cloudshelli  )isssubaudexpiatpreferred_usernameid_token_claims   r   oidtidr3   r4   r6   r7   r8   unique_namez Unable to decode jwt payload: %szutf-8client_infor2   refresh_token)postdictjoinmapr   status_codeloggerdebugtextjsonloadsr   itemsintr   r   timelenr   
ValueErrorbase64	b64encodedumpsencodedecode)http_clientscopes	client_idr#   respcs_errorkvimds_payloadBEARERoauth2_responseexpected_token_typepartsr>   nowr8   jwt_payloads                    r   _obtain_tokenrb   ,   s   -JBXXc"4f=>@ V$  
D 31499=::dii(,,Wb9\\&)!)i!8" eg"  "   "  	 ::dii(LF$^4,|45"&&|V<
O
  :2**<@|$(;;#!a!h!h#"% 	
 (..s3E 
K ))+C1Tz0*
O%& 5zQ	G**[q%:;K #uf5#|<	K #5)"5) "5)"5)&1oo6J&K '*"}5'*)	2O-. &,%5%5

;&&w/&117 M" 1<F0CO%&u- ((+7+H(Mp  	GLL;U1XF	Gs   K'K?BK
 
#K0/K0)NN)__doc__rO   rH   loggingr	   rL   r   urllib.parseoauth2cli.oidcr   	getLogger__name__rE   r   r   rb   r   r   r   <module>ri      sT    W    	 &! ( 
		8	$T$Q=&%s   A A