2017-06-27 22 views
1

紺碧のリソースのメトリクス情報を収集しようとしています。そのために私はアクセストークンを承認する必要があります。しかし、アクセストークンを取得するには、クライアントID、クライアントシークレット、サブスクリプションID、テナントIDを与えなければなりません。私のAzureアカウントのユーザー名とパスワードを除いて、このアクセストークンを得ることができるかどうかは疑問でした。紺碧のアカウントのユーザー名とパスワードで紺碧のアクセストークンを取得する

答えて

2

基本的にパラメータが必要です。 AzureのAPIはAzureによって保護されているため、最初に認証する必要があります。ユーザーとして通話をしたい場合は、利用可能ないくつかの方法の1つで認証する必要があります。パスワードの付与(@ 4c74356b41の回答に示されているように)は一つの選択肢ですが、実際には推奨されません。その理由は、ユーザーのパスワードが期限切れになっているか、またはMFAが有効になっていると、パスワードが機能しなくなるためです。

通常は、ユーザーにAzure ADサインインページ(リダイレクトまたはウェブビュー経由)でログインし、その結果得られた認証コードをアクセストークンとリフレッシュトークンに交換するように要求します。その後、ユーザーとしてAPIに対する呼び出しを行うことができます。

別の方法として、Azure ADにアプリケーションを登録し、そのサービスプリンシパルにAzureサブスクリプション/リソースグループ/リソースの一部のロールを付与することができます。次に、クライアントの資格情報で認証することができます(クライアントIDと秘密+あなたのAzure ADテナントIDのみを使用します)。

+0

すばらしい説明をありがとう。 –

2

でも可能ですが安全ではないと考えられます。

Name Description 
grant_type The OAuth 2 grant type: password 
resource The app to consume the token, such as Microsoft Graph, Azure AD Graph or your own Restful service 
client_id The Client Id of a registered application in Azure AD 
username The user account in Azure AD 
password The password of the user account 
scope optional, such as openid to get Id Token 

参考:
https://blogs.msdn.microsoft.com/wushuai/2016/09/25/resource-owner-password-credentials-grant-in-azure-ad-oauth/

PSと、あなたはまだ多くのパラメータが必要になります。ウォルターを気にしないでください、彼は答えの時間の50%のように間違っています。

2

これは本当にあなたの必要性にかかっていますし、これを完全に自動化したいのかどうかにもよります。

ServicePrincipalのトークンを取得したい場合は、4c74356b41の回答が役立ちます。

PowerShellセッションで既に認証されているユーザー(自分または他のAADユーザー)のベアラトークンを取得する場合は、このコードを使用すると非常に簡単に行うことができます。

https://gallery.technet.microsoft.com/scriptcenter/Easily-obtain-AccessToken-3ba6e593

は、基本的にはそれが何をするか、それはトークンキャッシュから現在のトークンを取得し、あなたにそれを返します。この方法では、clientId、cliendSecret、または証明書を処理する必要はありません。 Azure REST APIをジャストインタイムで呼び出す必要があるときは、これを常に使用します。

+0

login-azurermaccountを使用せずにAAD認証を使用してAzureに簡単に認証する方法はありますか? –

関連する問題