0

資格情報を受け取り、URL からアクセス トークン (認証トークン) を取得する Excel VBA を作成します。これは、別の URL にヘッダー セクションとして追加され、特定の Web サイト (cyber-ark) のエントリを作成します。

以下のように使用してみました:

    Sub Main()
    
    Dim objRequestForToken As Object
    
    Dim objRequestForAddingAccount As Object
    
    Dim strURL As String
    
    Dim binAsync As Boolean
    
    Dim strResponse As String
    
    Dim AllBody As String
    
    Set objRequestForToken = CreateObject("MSXML2.XMLHTTP")
    strURL = "URL to get token"
    binAsync = True
    
    AllBody = "{""username"":""UserID"",""password"":""Password""}"
    
    With objRequestForToken
         .Open "POST", strURL, binAsync
         .SetRequestHeader "Content-Type", "application/json"
         .Send (AllBody)
         
         While objRequestForToken.readystate <> 4
               DoEvents
         Wend
         
         strResponse = .responseText
         Debug.Print (strResponse)
         
    End With
        
    Set objRequestForAddingAccount = CreateObject("MSXML2.XMLHTTP")
    strURL = "URL to make an entry"
    AllBody = "{""propeties"" = ""null"" ""sample"" = ""sample""; ""secretType"" = ""password""}"
        
    With objRequestForAddingAccount
        
         .Open "POST", strURL, binAsync
         .SetRequestHeader "Authorization", strResponse
         .SetRequestHeader "Content-Type", "application/json"
         .Send (AllBody)
          
         While objRequestForAddingAccount.readystate <> 4
               DoEvents
         Wend
         
         strResponse = .responseText
         Debug.Print (strResponse)
         
    End With
        
    End Sub

ただし、トークン値を適切に提供していますが、2 番目の URL 呼び出しでトークンをヘッダー値として追加しているときに、エラーが返されます。

{"ErrorCode":"PASWS006E","ErrorMessage":"セッション トークンが見つからないか、無効であるか、有効期限が切れています。"}

トークンの有効期限が切れていると表示される理由を誰か説明できますか? PowerShell スクリプトの同じコードは、Invoke-Rest API 値を使用して適切に機能しています。

4

0 に答える 0