2017-06-02 28 views
0

私はOffice 365を1回だけ認証しようとしています。ユーザーは一度サインインすることができます。サービスからのMicrosoft Graph API

ここに私のコードは、私は例外を取得、これまで

IdentityClientApp = new ConfidentialClientApplication(this.clientId, "[uri]", new ClientCredential("[private key from Application Secrets section]"), new Microsoft.Identity.Client.TokenCache(), new Microsoft.Identity.Client.TokenCache()); 
authResult = await IdentityClientApp.AcquireTokenForClientAsync(new []{ "User.Read.All" }); 

です:AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope User.Read.All is not valid.

私は私が私がポップアップせずに終了して再起動することができ、有効なトークンを取得することになってるかどうかはわかりません毎時間authpageします。

答えて

1

あなたの説明から、Azure AD V2.0でMSALライブラリを使用したクライアントの資格情報フローを使用しています。 Azure AD V2.0でクライアント資格情報フローを使用する場合、この要求のscopeパラメータに渡される値は、必要なリソースのリソース識別子(Application ID URI)であり、.default接尾辞が付加されている必要があります。 Microsoft Graphの例では、値はhttps://graph.microsoft.com/.defaultです。

詳細については、hereをクリックしてください。 hereは、Azure AD V2.0エンドポイントでクライアントの資格情報フローを使用するためのチュートリアルです。

さらに、アプリID(クライアントの資格情報フロー)を使用しているため、ユーザーはアプリにログインする必要はありません。 authentication Scenarios for Azure ADについてさらに詳しくお読みください。ユーザー識別情報を使用する場合は、OAuth 2.0 authorization code flowhereのコードサンプルをお試しください。ユーザーIDを使用すると、セッションの期間を延長できます(ユーザーは1時間後にログアウトしません)。あなたのページに隠れたiframeを追加して、定期的な時間間隔で新しいサインインのルートにアクセスしてセッションを更新することができます(サインイン操作では新しいアクセストークンを取得できます)。詳細およびコードサンプルについては、controlling a Web App’s session durationの記事を参照してください。

+0

私は 'GraphServiceClient'クラスのユーザにアクセスしようとすると別のエラー' Authorization_IdentityNotFound'を取得しました – KevinA

+0

あなたはポータルでどのアプリケーション権限を選択したのですか? –

+0

@NanYu Microsoft Graphのスコープの値は、「https:// graph.microsoft.com/.default」になります。どのような見通しの残りの範囲の値になりますか? – MK446

関連する問題