資格情報を受け取り、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 値を使用して適切に機能しています。