2017-04-14 11 views
0

クライアントID、クライアントシークレット、テナントIDからアクセストークンを取得しようとしています。 PowerShellのコマンドに続いて、私はthisリンクをたどるのです成功しMicrosoft AzureがcURL/Rubyと連携していないアクセストークンAPIを取得しますが、powershellで動作します

Invoke-RestMethod -Uri https://login.microsoftonline.com/TENANT/oauth2/token?api-version=1.0 -Method Post -Body @{"grant_type" = "client_credentials"; "resource" = "https://management.core.windows.net/"; "client_id" = "CLIENTID"; "client_secret" = "SECRET" } 

動作しますが、このカールは

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=client_credentials&resource=https://management.core.windows.net/&client_id=CLIENTID&client_secret=SECRET" "https://login.microsoftonline.com/TENANT/oauth2/token?api-version=1.0" 

どちらもこのRubyスクリプト

require 'json' 
require 'typhoeus' 

url = 'https://login.microsoftonline.com/TENANT/oauth2/token?api-version=1.0' 
params = "grant_type=client_credentials&resource=https://management.core.windows.net/&client_id=CLIENTID&client_secret=SECRET" 
HEADERS = { 
"Content-Type" => "application/x-www-form-urlencoded" 
} 
resp = Typhoeus::Request.post(url, body: params, headers: HEADERS) 

を動作しません。カール/ルビーのどちらもうまくいかないという手掛かりはありますか? ありがとうございます

+0

エラーメッセージは何ですか? – ehoffmann

答えて

0

私はこの問題が、ssl_verifypeer: falseを設定せずにOpenSSLとTyphoeusリクエストのないカールによって引き起こされたことを発見しました。

thisに従ってください。curl --versionで確認し、ご利用の環境にopensslライブラリをインストールしてください。

ここは私のサンプルコードです。

require "typhoeus" 

url = 'https://login.microsoftonline.com/<tanet-id>/oauth2/token?api-version=1.0' 
params = "grant_type=client_credentials&resource=https://management.core.windows.net/&client_id=<client-id>&client_secret=<client-key>" 
headers = { 
    "Content-Type" => "application/x-www-form-urlencoded" 
} 
request = Typhoeus.post(url, body: params, headers: headers, ssl_verifypeer: false) 
puts request.code, request.body 

希望します。

+0

残念ながら、これは役に立たなかった。 ssl_verifypeer:falseオプションでも。それでも私のclient_secretは無効と認識されます。私は自分のopensslバージョンを試してみました。それは 'OpenSSL/1.0.1f'です。私のコードの他のエラー? @Peter Pan – Gagan93

+0

@ Gagan93 Nothing。 'ssl_verifypeer:false'オプションがなければ、私はあなたと同じ結果を得ました。 –

+0

パン - このオプションを使用すると、生成されたトークンではなくエラーも発生しています。 – Gagan93

関連する問題