2016-04-17 9 views
3

とWebHDFSのために私は、Azureのデータ湖でWebHDFSを使用しようとしています。 Microsoftのdocumentationによると、1が従うべき手順は次のとおりです。認証ヘッダーAzureのデータ湖

  • のclient_id、tenant_id、および秘密鍵を使用したAzureの管理サービス
  • への鍵と委任権限を持つアズールADで新しいアプリケーションを作成し、作りますOAuth2エンドポイント成功時

    curl -X POST https://login.microsoftonline.com/<TENANT-ID>/oauth2/token \ -F grant_type=client_credentials \ -F resource=https://management.core.windows.net/ \ -F client_id=<CLIENT-ID> \ -F client_secret=<AUTH-KEY>

への要求は、あなたがして、「access_を含むいくつかのJSONを取り戻しますaccess_tokenは 『オブジェクトトークン」あなたは、ヘッダー<content of "access_token">がで長い文字列をある

Authorization: Bearer <content of "access_token"> 

を追加することで、その後のWebHDFS要求に含まれている必要があり、コンテンツオブジェクト、』。

あなたはそのヘッダーを含めたら、あなたは

curl -i -X GET -H "Authorization: Bearer <REDACTED>" https://<yourstorename>.azuredatalakestore.net/webhdfs/v1/?op=LISTSTATUS 

は、これらすべてのステップに従った行うことができ、ディレクトリの一覧を表示するなど、WebHDFSの呼び出しを行うことができるはず、私はHTTP 401エラー時にを取得していますボディ

{"error":{"code":"AuthenticationFailed","message":"Failed to validate the access token in the 'Authorization' header."}} 

WWW-Authenticate: Bearer authorization_uri="https://login.windows.net/<REDACTED>/", error="invalid_token", error_description="The access token is invalid." 

:リストディレクトリに上記のカールのコマンドを実行しています

誰もが問題になるかもしれないものを知っていますか?

私はjwt.ioにトークンを貼り付け、それが(署名をチェックしませんでした)有効です。内容は次のようなものです:

{ 
typ: "JWT", 
alg: "RS256", 
x5t: "MnC_VZcATfM5pOYiJHMba9goEKY", 
kid: "MnC_VZcATfM5pOYiJHMba9goEKY" 
}. 
{ 
aud: "https://management.core.windows.net", 
iss: "https://sts.windows.net/<TENANT-ID>/", 
iat: 1460908119, 
nbf: 1460908119, 
exp: 1460912019, 
appid: "<APP-ID>", 
appidacr: "1", 
idp: "https://sts.windows.net/<TENANT-ID>/", 
oid: "34xxxxxx-xxxx-xxxx-xxxx-5460xxxxxxd7", 
sub: "34xxxxxx-xxxx-xxxx-xxxx-5460xxxxxxd7", 
tid: "<TENANT-ID>", 
ver: "1.0" 
}. 
+0

あなたはAzureのデータ湖ストアにアクセスするには、AADのアプリケーションへのアクセス権を付与されているところのスクリーンショットを提供することはできますか? – GregGalloway

+0

確かに、[ここ](http://postimg.org/image/remg5cxbv/)。 – MikeBrno

+0

私は同じ問題を抱えています... –

答えて

1

データエクスプローラボタンをクリックし、ルートフォルダを強調表示し、アクセスをクリックしてください。そこでWebHDFSにあなたのAADアプリの許可を与えてください。私はあなたがすでに行っていることがちょうどポータルまたはAzureのPowerShellをして、あなたのAzureのデータ湖ストアを管理するために、そのAADアプリの権限を付与することであると信じています。実際にWebHDFSアクセス権をまだ付与していません。セキュリティの詳細はhereです。

+2

私は、ルートフォルダのアプリケーションに読み込み/書き込み/実行権限を与えましたが、引き続き同じエラーが発生しました。 – MikeBrno