次の方法で共有


DeviceCodeCredential クラス

  • java.lang.Object
    • com.azure.identity.DeviceCodeCredential

実装

public class DeviceCodeCredential
implements TokenCredential

デバイス コード認証は、ユーザーが Web ブラウザーまたはキーボードを持たないデバイス上のアプリケーションにサインインできるようにする 、Azure Active Directory (Azure AD) によって提供される認証フローの一種です。 この認証方法は、ユーザー名とパスワードを入力できない可能性があるスマート テレビ、ゲーム コンソール、モノのインターネット (IoT) デバイスなどのデバイスに特に役立ちます。 デバイス コード認証では、認証する必要があるデバイス上のデバイス コードがユーザーに表示されます。 その後、ユーザーは別のデバイス上の Web ブラウザーに移動し、Microsoft サインイン ページにコードを入力します。 ユーザーがコードを入力すると、Azure AD によってコードが検証され、ユーザー名とパスワード、多要素認証 (MFA) メソッドなどの資格情報でサインインするように求められます。 デバイス コード認証は、OAuth 2.0 や OpenID Connect など、さまざまな Azure AD でサポートされているプロトコルを使用して開始でき、さまざまな Azure AD 統合アプリケーションで使用できます。 DeviceCodeCredential は対話形式でユーザーを認証し、限られた UI を持つデバイスでトークンを取得します。 これは、アプリケーションが認証を試みるときに、ブラウザー対応のコンピューターでログイン URL にアクセスするようにユーザーに求めることで機能します。 そこでユーザーは、指示に記載されているデバイス コードを、ログイン資格情報とともに入力します。 認証が成功すると、認証を要求したアプリケーションは、それが実行されているデバイスで正常に認証されます。 詳細については、 デバイス コード認証に関するドキュメントを参照してください

必須の構成:

ユーザーをデバイス コード フローで認証するには、次の手順に従います。

  1. Azure portal で Azure Active Directory に移動して、アプリ登録を見つけます。
  2. [認証] セクションに移動します。
  3. [リダイレクトされた URI の候補] で、/common/oauth2/nativeclient で終わる URI をチェックします。
  4. [既定のクライアントの種類] で、 [アプリケーションは、パブリック クライアントとして扱います] に対して [はい] を選択します。

これらの手順によってアプリケーションは認証されますが、Active Directory にログインしたり、リソースにアクセスしたりするためのアクセス許可はまだありません。 この問題に対処するには、 [API のアクセス許可] に移動して、Microsoft Graph と、アクセスするリソース (Azure Service Management、Key Vault など) を有効にします。 また、初めてログインするときは、アプリケーションに同意を付与するためにテナントの管理者である必要もあります。 Active Directory でデバイス コード フロー オプションを構成できない場合は、アプリをマルチテナントにすることが必要になる可能性があります。 アプリをマルチテナントにするには、 [認証] パネルに移動してから、 [任意の組織のディレクトリ内のアカウント] を選択します。 次に、 [アプリケーションは、パブリック クライアントとして扱います] に [はい] を選択します。

サンプル: DeviceCodeCredential の構築

次のコード サンプルは、 を使用して DeviceCodeCredentialBuilder を構成する のDeviceCodeCredential作成を示しています。 既定では、資格情報によってコマンド ラインにデバイス コードチャレンジが出力され、 で必要に応じて を指定できる動作 challengeConsumerDeviceCodeCredentialBuilderオーバーライドします。 この資格情報が作成されると、多くの Azure SDK for Java クライアント ビルダーのビルダーに 'credential' パラメーターとして渡される場合があります。

TokenCredential deviceCodeCredential = new DeviceCodeCredentialBuilder()
     .build();

メソッドの概要

修飾子と型 メソッドと説明
reactor.core.publisher.Mono<AuthenticationRecord> authenticate()

デバイス コード フローを使用してユーザーを認証します。

reactor.core.publisher.Mono<AuthenticationRecord> authenticate(TokenRequestContext request)

デバイス コード フローを使用してユーザーを認証します。

reactor.core.publisher.Mono<AccessToken> getToken(TokenRequestContext request)
AccessToken getTokenSync(TokenRequestContext request)

メソッドの継承元: java.lang.Object

メソッドの詳細

authenticate

public Mono authenticate()

デバイス コード フローを使用してユーザーを認証します。

資格情報は、Azure Active Directory から検証 URL とコードを取得します。 ユーザーは、URL を参照し、コードを入力して、Azure Active Directory で認証する必要があります。 ユーザーが正常に認証されると、資格情報はアクセス トークンを受け取ります。

Returns:

AuthenticationRecord資格情報のインスタンス化時に 永続的キャッシュが 構成tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions)されている場合に、今後の実行でアカウントをサイレント認証するために使用できる 。

authenticate

public Mono authenticate(TokenRequestContext request)

デバイス コード フローを使用してユーザーを認証します。

資格情報は、Azure Active Directory から検証 URL とコードを取得します。 ユーザーは、URL を参照し、コードを入力して、Azure Active Directory で認証する必要があります。 ユーザーが正常に認証されると、資格情報はアクセス トークンを受け取ります。

Parameters:

request - 認証要求の詳細。

Returns:

AuthenticationRecord資格情報のインスタンス化時に 永続的キャッシュが 構成tokenCachePersistenceOptions(TokenCachePersistenceOptions tokenCachePersistenceOptions)されている場合に、今後の実行でアカウントをサイレント認証するために使用できる 。

getToken

public Mono getToken(TokenRequestContext request)

Parameters:

request

getTokenSync

public AccessToken getTokenSync(TokenRequestContext request)

Parameters:

request

適用対象