1

私はAzure ADからの読み書きが必要なバックエンドサービスを持っています。テナント情報、クライアントID、および秘密鍵(これらの値はAuthentication Scenarios for Azure AD | Basics of Registering an Application in Azure ADから来ています)を使用して認証することで、グラフapiを使用して読み書きできました。クライアントIDと秘密鍵を使用しないAzure AD Graph APIアクセス

認証にクライアントIDと秘密鍵を使用するということは、エンドユーザーが手動でこれらの値を指定してテナントを登録する必要があることを意味し、ユーザーがこれらの値を指定する必要があるこの手動登録手順を避けようとしています。

私はマルチテナントアプリケーションの管理者/ユーザー同意書とそれに関連するサンプルIntegrating applications with azure active directoryも調べました。ただし、管理者同意の問題は、ディレクトリ内のすべてのユーザーがディレクトリにアクセスできるようにすることです。

登録リンクを何らかの種類で提供することができます。グローバル管理ユーザーに認証を許可し、アクセスポイントまたはリフレッシュトークンの種類を、エンドサービス?

答えて

0

私は逆の問題がありますが(How to use Azure AD Graph API access for service principals?参照)、あなたの質問に答えることができます。デーモンアプリケーションは、シングルテナントまたはマルチテナントとして実行でき、ユーザー/パスワード認証を使用するため、そのユーザーの権利/ロールに限定することができます。私は両方のために同じアプリを使用してクライアントID /シークレットとユーザー/パスワードの両方を使用してこれをテストしました - あなたは、ユーザー/パスワードのケースのために必要なアクセス許可をアプリケーションに追加する必要があります(SPの)。私の場合は

、例えば、私はadal4jを使用していますが、私は必要に応じて、あなたがそれを適応させることができると確信してい.:

final ExecutorService service = Executors.newFixedThreadPool(1); 
final AuthenticationContext context = new AuthenticationContext(authority, true, service); 
final Future<AuthenticationResult> future = context.acquireToken("https://graph.windows.net", clientID, userName, decryptedPassword, null); 
final AuthenticationResult result = future.get(); 

... 
関連する問題