jpazureid / blog

Japan Azure AD support team documents
https://jpazureid.github.io/blog/
30 stars 74 forks source link

Graph API の呼び出しを PowerShell モジュール #283

Open watahani opened 3 years ago

watahani commented 3 years ago

MSAL.PS か Azure AD PowerShell Module, Microsoft Graph PowerShell SDK でできるのであれば生で MSAL 使うのをやめたい。

watahani commented 3 years ago

サインイン アクティビティについては、Microsoft Graph SDK がレスポンスを独自のオブジェクトに変換するため、ConvertTo-Json で日付のオブジェクトが Date(1629178519000) のようになってしまう。

$signIns = Get-MgAuditLogSignIn -Top 10
$signIns[0].CreatedDateTime | ConvertTo-Json
# {
#    "value":  "\/Date(1629178519000)\/",
#    "DateTime":  "2021年8月17日 5:35:19"
#}

結局 Invoke-GraphRequest で nextlink の処理を自前で実装するしかなさそうであるが、429 エラーの処理が怪しく、であれば現状 MSAL ライブラリを生で使って自前でコードを書いたほうが取り回しが楽そう。何か良い手があればコメントください。

watahani commented 3 years ago

一応、生の JSON を取得するには Azure AD Graph SDK を使って、以下のようにするのが最も容易。ただしスロットリングのエラーハンドリングはおそらく実装されていないと思う。

(Get-AzureADAuditSignInLogs).ToJson()
watahani commented 3 years ago

355 ADAL の非推奨に言及