Azure AD のトークンを PowerShell で取得する

  • watahani
  • 2 Minutes
  • April 24, 2021

First Of All

業務等で使うなら素直に MSAL.PS や、Microsoft Graph PowerShell SDK を利用してトークン取得しましょう。
自分で実装しても勉強以外の役にはたぶん立たないです。

Windows 入ってたらとりあえず動くので、勉強会用にそれぞれのフローのコードを書いてみたのだが、勉強会する暇なくて腐ってたので供養。

クライアント資格情報フロー

https://docs.microsoft.com/ja-jp/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow

めちゃ簡単。

証明書でやるパターンは全然わからんし、めっちゃ .Net のクラス呼んでるので多分 C# で書いたほうが勉強になる。

認可コード付与 (Authorization Code Grant)

https://docs.microsoft.com/ja-jp/azure/active-directory/develop/v2-oauth2-auth-code-flow

ドキュメントは認証コードなのは無視だ!リフレッシュ トークンの検証をした時期があって、その辺のコードも残ってる。
PowerShell のローカルサーバーはよく止まってしまうんだけど、エラーハンドリングのやり方がわからない。

無駄に PKCE にも対応しているぞ。

デバイス許可付与 (Device Authorization Grant)

https://docs.microsoft.com/ja-jp/azure/active-directory/develop/v2-oauth2-device-code

これも特に変なことはしてない。

おわり

On-Behalf-Of とか消えつつある SAML Bearer Assertion フローは気が向けば書くかも。

関連記事