この記事では、アプリが Azure リソースに対する認証に使用できるその他の方法を示します。 この記事のメソッドはあまり一般的ではありません。可能であれば、Azure SDK の概要を使用した Azure への Python アプリの認証に関するページで説明されているいずれかの方法を使用することをお勧めします。
対話型ブラウザーの認証
このメソッドは、既定のシステムでユーザーの資格情報を収集することによって、InteractiveBrowserCredential によってアプリケーションを対話的に認証します。
対話型ブラウザー認証を使用すると、対話型サインイン資格情報によって許可されるすべての操作に対してアプリケーションが有効になります。 結果的に、自分がサブスクリプションの所有者または管理者であれば、特定のアクセス許可を割り当てなくても、そのサブスクリプションのほとんどのリソースに対するアクセス権がコードに最初から割り当てられます。 このため、対話型ブラウザー認証の使用は、実験以外の目的ではお勧めできません。
アプリケーションで対話型ブラウザー認証を有効にする
対話型のブラウザー フローを通じてアプリケーションで認証できるようにするには、次の手順を実行します。 これらの手順は、後で説明する デバイス コード認証 でも機能します。 このプロセスに従う必要があるのは、コードで InteractiveBrowserCredential を使用する場合のみです。
Azure portal で Microsoft Entra ID に移動し、左側のメニューで [アプリの登録] を選択します。
アプリの登録を選択し、[ 認証] を選択します。
[詳細設定] で、[パブリック クライアント フローを許可する] に対して [はい] を選択します。
[保存] をクリックして変更を適用します。
特定のリソースに対してアプリケーションを承認するには、対象のリソースに移動し、[ API のアクセス許可] を選択して、 アクセスする Microsoft Graph やその他のリソースを有効にします。 Microsoft Graph は既定で有効になっています。
Important
また、初めてサインインするときにアプリケーションに同意を付与するには、テナントの管理者である必要があります。
Active Directory でデバイス コード フロー オプションを構成できない場合は、アプリケーションがマルチテナントである必要がある場合があります。 この変更を行うには、[認証] パネルに移動し、任意の組織ディレクトリ ([サポートされているアカウントの種類] で) [アカウント] を選択し、[パブリック クライアント フローを許可する] で [はい] を選択します。
InteractiveBrowserCredential の使用例
次の例は、InteractiveBrowserCredential を使用して SubscriptionClient により認証する方法を示しています。
# Show Azure subscription information
import os
from azure.identity import InteractiveBrowserCredential
from azure.mgmt.resource import SubscriptionClient
credential = InteractiveBrowserCredential()
subscription_client = SubscriptionClient(credential)
subscription = next(subscription_client.subscriptions.list())
print(subscription.subscription_id)
リダイレクト URI の設定など、より正確な制御については、InteractiveBrowserCredential などの特定の引数を redirect_uri で指定できます。
デバイス コード認証
このメソッドは、UI が制限されているデバイス (主にキーボードのないデバイス) でユーザーを対話的に認証します。
- アプリケーションで認証が試行されると、資格情報によって、URL と認証コードがユーザーに表示されます。
- ユーザーは、ブラウザー対応の別のデバイス (コンピューター、スマートフォンなど) でその URL にアクセスし、コードを入力します。
- ユーザーは、ブラウザーで通常の認証プロセスに従います。
- 認証が成功すると、デバイスでアプリケーションが認証されます。
詳細については、「Microsoft ID プラットフォームと OAuth 2.0 デバイス許可付与フロー」をご覧ください。
開発環境でのデバイス コード認証により、対話型サインイン資格情報によって許可されるすべての操作に対してアプリケーションが有効になります。 結果的に、自分がサブスクリプションの所有者または管理者であれば、特定のアクセス許可を割り当てなくても、そのサブスクリプションのほとんどのリソースに対するアクセス権がコードに最初から割り当てられます。 ただし、この方法は、既定値ではなく、特定のアクセス許可を割り当てることができる特定のクライアント ID で使用できます。