2017-09-18 9 views
0

私たちがアプリケーションまたはユーザーのためのADクライアントを取得するに関係なく、それは利用者の同意が必要になりそうです。ユーザーがクライアントIDやその他のパスワード/セカンドを提供できると考えて、ユーザーの同意なしにグラフAPIを使用することは可能でしょうか?同意なしにActive Directory Graph APIを使用することはできますか?私は <a href="https://github.com/Azure-Samples/active-directory-dotnet-graphapi-console" rel="nofollow noreferrer">https://github.com/Azure-Samples/active-directory-dotnet-graphapi-console</a></p> <p>でサンプルコードを見てい

私は、バックグラウンドでWindowsサービスとして実行するはずのプロジェクトに取り組んでいます。もう一度同意が必要な場合は、Windowsサービスを使用できない可能性があります。

おかげ

答えて

0

はありません、アプリケーションに委任権限を追加すると、自動的にテナント内のユーザーへの同意を付与するものではありません。管理者がAzureポータルのアプリケーションページのRequired PermissionsセクションのGrant Permissionsボタンをクリックして管理者の同意を得ない限り、実行時に追加された委任されたアクセス許可に手動で同意する必要があります。そのコードサンプルでは、​​アプリケーションモードでコンソールアプリケーションを実行することを選択した場合、管理者はアプリケーションのアクセス許可に同意する必要があります。

ユーザーと管理者の同意の詳細については、hereをクリックしてください。

Client Credentials Grant Flowを使用すると、Webサービス(機密クライアント)がユーザーを偽装する代わりに独自の資格情報を使用できるようになります。 Azure AD Graph apiの権限を追加したら、AzureポータルのアプリケーションページのRequired PermissionsセクションのGrant Permissionsボタンを管理者アカウントでクリックします。管理者の同意の後、アプリのIDを使用してGraph APIのトークンを取得することができ、実行時に同意することはありません。 Code samplesクライアントの資格情報フローを使用することは参考になります。

0

@Nan Yuと言いますと、あなたのディレクトリの管理者アカウントを使用しての許可を得ることができます。。また、あなたのケースのための別の解決策があります。あなたが投稿するリンクの一番下にあります。私はテストラボで試してみました。解決方法は次のとおりです。

コンソールアプリケーションをアプリモードで実行したい場合(これは実際にはネイティブクライアントとして実行する必要があるため)、あらかじめ手動で同意する必要があります。ここで、管理ユーザーは同意する必要があります。あなたは、ブラウザを開いて、次のURLにアクセスして、あなたのアプリケーションモードアプリケーションのためのあなたのアプリケーションIDであなたのtenantId、およびapp-mode-application-idtenantIdを交換することにより同意を強制することができます。

https://login.microsoftonline.com/<tenantId>/oauth2/authorize?client_id=app-mode-application-id>&response_type=code &redirect_uri=http%3A%2F%2Flocalhost%2F&response_mode=query &resource=https%3A%2F%2Fgraph.windows.net%2F&state=12345 

サインインした後(場合承認済みページにを受け入れて、をクリックします)。その後、ブラウザを閉じることができます。 に同意したので、のコンソールサンプルをアプリモードで実行できます。

+0

こんにちは、@urlreader、この回答はあなたに役立つ場合は、より多くの人々を助けるための答えとしてマークしてください。ありがとう! –

関連する問題

 関連する問題