CSOMの違い

今まで、.Net Frameworkでは【Microsoft.SharePoint.Client.Online.CSOM】で実装していましたが、今回.Net 7.0で同じように実装しようしましたが少し違いがあったのでその時のメモです

CSOMパッケージのインストール

.Net 7.0だと【Microsoft.SharePoint.Client.Online.CSOM】は使えないので、
【Microsoft.SharePointOnline.CSOM】というパッケージをNugetからインストールします。名前は似ていますが、SharePointOnlineCredentials等が使えません

Azureアプリ

本ブログで何度も実施しているAzureアプリを作成、設定を実施していきます

Azureアプリの作成

Azureにアクセスし、上部にある検索窓に「アプリの登録」と入力すると下画像のように表示されるので「サービス」>「アプリの登録」をクリック

「新規登録」をクリック

【名前】に「SharePointCSOM」と入力し、【サポートされているアカウントの種類】を「この組織ディレクトリのみに含まれるアカウント」を選択、それ以外は設定はそのままに「登録」ボタンをクリック

アプリの設定

クライアントで使えるように「認証」>「パブリッククライアントフローを許可する」を【はい】にして、下にある「保存」をクリック

アクセス許可の追加

CSOMからアクセストークンを取得できるようにAPI許可を設定します
作成したAzureアプリの「APIのアクセス許可」>「アクセス許可の追加」>「SharePoint」の順番でクリック

「委任されたアクセス許可」をクリックし、今回は「AllSites.Manage」を付与します

「~に管理者の同意を与えます」をクリックし、「~に付与されました」となればOK

実際にCSOMを使う

実際にCSOMのClientContextクラスの初期化は以下のMSドキュメント上にあるAuthenticationManagerクラスをそのまま使用しています
ただ、tokenEndpoint変数とdefaultAADAppId変数は使用する環境に合わせて変えてください

tokenEndpoint変数の値の確認方法

今回作成したAzureアプリの概要の上部にある「エンドポイント」をクリック

様々なエンドポイントが表示されている中から【OAuth 2.0 トークン エンドポイント (v1)】の値をコピーしてtokenEndpoint変数に設定します

defaultAADAppId変数の値の確認方法

今回作成したAzureアプリの概要にある【アプリケーション(クライアント…)】の値をコピーしてdefaultAADAppId変数に設定します

最期に

今回はCSOMを.Net 7.0で呼び出す際の認証の仕方を紹介しました
contextの初期化の方法だけが違いそれ以降の処理は.Net Frameworkのときと変わりありません
今回のコードもGitHubにアップしているので参考にしてください

タイトルとURLをコピーしました