🔄
SharePoint REST API を呼び出すためのアクセス トークンの変更について
SharePoint REST API を呼び出すためには Microsoft Entra ID アプリケーションを登録し OAuth でアクセス トークンを取得する必要があります。
POST https://login.microsoftonline.com/{{tenantid}}/oauth2/v2.0/authorize?
client_id={{clientid}}
&response_type=code
&redirect_uri={{redirecturi}}
&scope=https://{{tenantname}}.sharepoint.com/AllSites.FullControl
これまでは取得できるアクセス トークン (JWT) の中身はこのようになっていました。
{
"aud": "https://{{tenantname}}.sharepoint.com",
"iss": "https://sts.windows.net/{{tenantid}}/",
...
}
ここで問題になるのは、SharePoint は通常のサイトに加えて管理センター (https://{{tenantname}}-admin.sharepoint.com
) という異なるドメインを持っている点です。aud
は検証に使われるためほかのドメインで取得されたアクセス トークンは使用できません。つまり、通常のサイトで取得したアクセス トークンは管理センターでは使用できず、管理センターで取得したアクセス トークンは通常のサイトで使用できないということが起こっていました。
これがどうも最近になって変更されたようです。現在は以下のような中身になっています。
{
"aud": "00000003-0000-0ff1-ce00-000000000000",
"iss": "https://sts.windows.net/{{tenantid}}/",
...
}
00000003-0000-0ff1-ce00-000000000000
は SharePoint のアプリケーション ID です。これにより、通常のサイトと管理センターのどちらでも同じアクセス トークンを使いまわせるということになりました。この変更についてドキュメントはないため詳細は不明ですが、動作が変わっているため気を付けたいところです。
Discussion