複数のテナントのユーザ受信ボックスでアクションを実行できるデーモンアプリを開発中です。テナントの管理者がアプリに必要な権限を与えると、そのテナントのユーザの受信トレイにアクセスできるようになります。私は今、次のことをしています。Azure AD v2.0エンドポイントからトークンを取得するときにサービス/デーモンアプリが 'tenant-id'の代わりに 'common'を使用することができます。
テナント(例えば
myutils.onmcirosoft.com
)から管理https://login.microsoftonline.com/common/adminconsent?client_id={client-id}&redirect_uri=https%3A%2F%2Fredirect.test.com
グローバル管理者から同意を得る必要な許可を与えます。
は、それがアクセストークンを与える代わりに
tenant-id
curl -X POST _https://login.microsoftonline.com/common/oauth2/v2.0/token --data "grant_type=client_credentials&client_id={client-id}&client_secret={clientsecret}&scope=https://graph.microsoft.com/.default
の
common
を使用してアクセストークンを取得します。私は交換する場合には、ステップ3ではHTTP/1.1 404 Not Found Cache-Control: private Transfer-Encoding: chunked Content-Type: text/plain request-id: e602ada7-6efd-4e18-a979-63c02b9f3c76 client-request-id: e602ada7-6efd-4e18-a979-63c02b9f3c76 x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"West US","Slice":"SliceB","ScaleUnit":"000","Host":"AGSFE_IN_22","ADSiteName":"WST"}} Duration: 1537.3097 Date: Tue, 19 Sep 2017 09:31:08 GMT
:
ステップカールリクエストの上3.
curl -X GET -H "Authorization: Bearer <token>" https://graph.microsoft.com/v1.0/users/[email protected]/messages
で得られたトークンを使用して[email protected]
のアクセスメッセージは、次のよう404
応答を与えますcommon
とtenant-id
がmyutils.onmicrosoft.com
となっています。
common
はAzure AD v2.0エンドポイントでサポートされていますか? Thisリンクでは、v1エンドポイントではcommon
がサポートされていません。 v2.0エンドポイントでも同じですか?
たとえば、次のようにトークンを検査しようとしましたか? https://jwt.io?私はこれが不可能ではないことを100%確信しているわけではありませんが、私の意見ではトークンの共通点を呼び出すのは意味がありません。 Microsoft Graph APIにアクセスすると、テナントのデータは返されますか?あなたのアプリがシングルテナントの場合、答えは簡単です。しかし、マルチテナントの場合、テナントIDの指定は必須です。 – juunas
こんにちは、私のアプリはマルチテナントです。私が「共通」で試してみたかった理由は、それが動作すれば、同じトークンで複数のテナントにリクエストを送信できます。それがなければ、私はテナントごとにトークンを個別に取得する必要があります。 https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-v2-protocols-oauth-client-credsページは、動作することを示唆しています。ここの例では、「adminconsent」と「共通」を使用しています。更新する必要があります。 – Dhana
管理者の同意がある場合、それは承認URLであり、トークンURLではありません。 – juunas