2017-08-11 3 views
0

定期的にcronジョブから、またはユーザーによって開始された後にAzure HDInsight REST APIをプログラムで呼び出すスクリプトを作成する必要がある。 Azure REST API呼び出しが認証されているが、許可されていないためサービスを選択できない

私はAzureのドキュメントに Service to service calls using client credentials - First case: Access token request with a shared secretページの指示に従って、私は「ネイティブ」タイプの新しいアプリケーションを登録して、私は私のスクリプト (Iを実行するために、私のクライアントシークレットを使用してトークンを取得するために/tokenエンドポイントに電話をかけることができます数時間Azureドキュメントを読んでください。これは正しいアプローチのように見えましたが、すべてを理解するのは容易ではなかったので、私は間違っているかもしれません)

残念ながら、私はREST API呼び出しを試みたときに認証済みだが、これらの呼び出しを行う権限がないことを認識しました。403 Forbidden(MicrosoftはAuthorizationFailedと呼んでいます)を取得しました。

{'code': 'AuthorizationFailed', 
'message': "The client 'CLIENT' with object id 'OBJ' does not 
    have authorization to perform action 'Microsoft.HDInsight/...' over scope   
    '/subscriptions/SUBID/resourceGroups/RESGR/providers/Microsoft.HDInsight/clusters/CLUSTER'." 
} 

私は私のアプリケーションは、私はそれをしたい要求を行うことができるように許可することができます

が、私はこの時点で、Azureのポータル

Active Directory 
    => App registrations => (Select my app) 
    => API Access/Required permissions 
    => (+ button, Add API Access) => 1. Select an API 

に行ってきました、私が、私はそう必要なサービスを選択することができないように、私は選択できないサービスがあるようです。たとえば、検索バーに「Azure」と入力すると、オプションはアクティブではなく、選択できません。

enter image description here

私はすでに開口部My permissions => Resource Provider Statusを試してみましたが、登録されたすべて私が必要になると考えていました。

私のディレクトリの役割はUserで、私はそれを変更することはできません。

+0

これを試したことがありますか?https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-integrating-applications –

+0

これが動作するかどうか教えてください。応答 –

+0

AADで選択可能なサービスが表示されず、アプリケーションに権限を追加できない場合は、十分な権限がないことを意味します。 アプリケーションにはサービスの正しい許可が与えられている必要があります。 REST応答メッセージがそれを示唆しているようです。 –

答えて

0

まず、クライアントの資格情報フローを使用するときに、アプリケーションを「ネイティブ」として登録しないでください。クライアントの資格情報フローは、セキュリティで保護されたサーバー上で実行されているWebアプリケーションやサービスなど、資格情報を安全に保存できる機密クライアントアプリケーションによって使用されます。 「ネイティブ」クライアントアプリケーションは、安全な方法で資格情報を格納することができないパブリッククライアントです。

HDInsightサービスへのアクセスに関しては、articleが適切な設定であなたのアプリを助けるかもしれません。

関連する問題