🆕
Microsoft Graph Toolkit の Teams MSAL2 Provider について
Microsoft Graph Toolkit にはいくつかのプロバイダーがあって SharePoint や Microsoft Teams などのいくつかのシナリオでは最適化されているのですが、Microsoft Teams 用のプロバイダーはシングル サインオンに対応しておらず正直イケていませんでした。ところが最近になって Teams MSAL2 Provider というのができてシングル サインオンにも対応したらしいです。ただし肝心のトークン交換のところは「サンプル コードを見てね」と書いてあるのにリンク先には一切の記載がないという。[1] 仕方ないのでコードを見てみます。
トークン交換のところを抜き出すとこんな感じです。
response = await fetch(url.href, {
method: 'POST',
headers: {
Content-Type': 'application/json',
authorization: `Bearer ${clientToken}`
},
body: JSON.stringify({
scopes: scopes,
clientid: this.clientId
}),
mode: 'cors',
cache: 'default'
});
const data = await response.json().catch(this.unhandledFetchError);
...
return data.access_token;
うーん、なんか独自の実装になっていて TeamsFx の SimpleAuth と連携しているわけではなさそうです。
こういうところはちゃんとやってほしいなあと思っていたら Issue と Pull Request が上がっていました。next/teamsfx
ブランチに入っているので近い将来リリースされると思われます。
これはかなり便利になりそうですね!
-
よくあることですね。 ↩︎
Discussion