1

コンソールアプリケーションからOffice 365 ADのグループとユーザーの一覧を取得する必要があります。コンソールアプリケーションからユーザーとグループにアクセスする

私はこれにMicrosoft Graphを使用できるはずだと思いました。だから私は、トークン取得するために最初に試み:私は成功した私は、すべてのユーザーの一覧を取得しようとすると、ここでトークン

を受ける

curl -H "Content-Type: application/x-www-form-urlencoded" --data "grant_type=client_credentials&client_id=<hidden uuid>&client_secret=<hidden secret>&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default" https://login.microsoftonline.com/testdirectory.onmicrosoft.com/oauth2/v2.0/token 

curl -H "Accept: application/json" -H "Authorization: Bearer <hidden bearer token>" https://graph.microsoft.com/v1.0/users 

しかし、私が得る応答があります

{ 
    "error": { 
    "code": "Authorization_IdentityNotFound", 
    "message": "The identity of the calling application could not be established.", 
    "innerError": { 
     "request-id": "<hiden-uuid>", 
     "date": "2017-07-11T12:47:17" 
    } 
    } 
} 

https://apps.dev.microsoft.com/に登録済みのアプリケーションがあります。 Group.Read.AllとUser.Read.Allの両方の権限は、委任された権限とアプリケーション権限の両方として割り当てられています。問題はコンソールアプリケーションなので、私はユーザーの同意を求めることはできないと思います。しかし、アプリケーションは私たちのドメインアカウントに登録されているので、とにかく動作するはずです。または、どのようにサービスやコンソールアプリケーションにADへのアクセス権を与えることができますか?ここ@juunasからの要求により、

EDITは、復号されたコンテンツです:アプリケーションのアクセス許可を使用するアプリケーションを構築する際

{ 
    "typ": "JWT", 
    "alg": "RS256", 
    "x5t": "<hidden>", 
    "kid": "<hidden>" 
} 

{ 
    "aud": "https://graph.microsoft.com", 
    "iss": "https://sts.windows.net/<hidden_uuid>/", 
    "iat": 1499718180, 
    "nbf": 1499718180, 
    "exp": 1499722080, 
    "aio": "<hidden>", 
    "app_displayname": "<hidden>", 
    "appid": "<hidden>", 
    "appidacr": "1", 
    "idp": "https://sts.windows.net/<hidden_uuid_same_as_above>/", 
    "tid": "<hidden>", 
    "uti": "<hidden>", 
    "ver": "1.0" 
} 
+0

あなたはトークンなどのアクセスをデコードでしてください。 https://jwt.ioでここに貼り付けますか?もちろん、個人情報を自由に変更できます。とにかく、正しい視聴者(MS Graph)と正しいスコープが少なくとも含まれている必要があります。 – juunas

答えて

1

通常、アプリは管理者がアプリの権限を承認するページまたはビューが必要です。サービスアプリを構築する場合は、手動でウェブブラウザを使用してhttps://login.microsoftonline.com/{tenant name}/adminconsent?client_id={application id}&state={some state data}&redirect_uri={redirect uri}に行くことができます。

このアプリケーションを使用する前に、テナントの管理者はこのアプリケーションを1回だけ使用する必要があり、ログイン(管理者同意)は必要ありません。管理者の承諾プロセスの後、クライアント資格フローを使用して、グラフapiでは、online toolでアクセストークンをデコードすると、rolesのクレームでGroup.Read.AllUser.Read.Allのアプリケーションのアクセス権が見つかりました。

のAzure AD v2のエンドポイントとアプリケーションのアクセス許可を使用する方法についての詳細は、herehereをクリックし、Microsoftグラフ

関連する問題