走り書き

ちょこっとしたメモを残してく。 

Exchange Online PowerShell モジュールに証明書で接続する

タイトルのようなことはしないで、手動でガンバル場合はこちら

Windows PowerShell での Exchange Online への接続について | NTT Com お客さまサポート

これがよくまとまってた。ほぼ自動接続、実行っと。

【Exchange Online】Exchange Online PowerShell V2モジュールに証明書で接続する

 

認証をバイバスしてるようなので、通常のログオンとは違う。hengeとか、他のidpが入るとどうなるのか。よく分からないけどこれはこれで通るのかな。

 

1)自己証明書の作成(接続してコマンド打つPCでどうぞ…)

$newCert = New-SelfSignedCertificate -Subject "CN=おなまえ考えて" -CertStoreLocation "Cert:\CurrentUser\My" -KeyExportPolicy Exportable -KeySpec Signature
Export-Certificate -Cert $newCert -FilePath .\お名前考えて.cer

# これだと期限がデフォルト1年だったかと。検索したら伸ばすオプションも乗ってたはず。また、これだと実行したPCの証明書に収容されてると。インポートも出来るというか、ファイルとして書き出す方法は、エクスポートのみなのか。調べないとよくわからない。

 

2)Microsoft Entra 管理センターでの操作

https://entra.microsoft.com/
1.左メニューでアプリケーション>アプリの登録を選び、開いたウインドウ上の「新規登録」をクリック
2.名前を入れて登録。

3.登録が完了すると、アプリのプロパティが開きます
4.左メニューから「証明書とシークレット」を選んで、「証明書」タブをクリック
5.「証明書のアップロード」を選んで、先ほど作成した証明書(拡張子.cer)をアップロード

6.左メニューから「APIのアクセス許可」を選んで開き、ウインドウ上の「アクセス許可の追加」をクリック
7.「所属する組織で使用している API」タブを選んで、検索窓に「office 365 Ex」と入れ
「Office 365 Exchange Online」を選び、「アプリケーションの許可」を選びます
8.選ぶと、その他のアクセス許可が出てくるので、Exchange>Exchange.ManageAsAppを選で「アクセス許可の追加」をクリック
9.「構成されたアクセス許可」のリストにある「XXXXXXに管理者の同意を与えます」をクリック
10.「はい」を選んで、Exchange.ManageAsAppの状態に緑☑が付いたことを確認
11.User.Readは不要なので、「…」から管理者の同意を取り消すを選びます

 

3)Azure AD portalでの操作

1. Azure AD portalhttps://portal.azure.com/)に移動

2.上部 [検索]に「ロールと管理者」と入力
3.[サービス] セクションの結果から [Microsoft Entra IDのロールと管理者] を選ぶ
4.すべてのロールが開き、管理者ロールの一覧が出るので、「Exchangeの管理者」をクリックして開く
5.上部に「割り当ての追加」があるのでクリック
6.アプリケーションの名前「お名前考えて」を検索して選び、追加をクリック
※ユーザーとアプリが同一に並ぶので、初見は判断に迷う

 

4)Azure AD portalでの操作

1.左上の「Microsoft Azure」をクリックするか、「https://portal.azure.com/」を開く
2.Azure Active Directory 管理センターに戻り、アプリの登録>登録したアプリをクリック
3.アプリケーションIDの値をメモ帳とかにコピー
4.登録したアプリを開き、左メニューから「証明書とシークレット」を選ぶ。
5.証明書の一覧にある登録した拇印のIDをコピー
6.上部にあるホームを選び、AADの管理からビューを選びます。
左上の「Microsoft Azure」をクリックするか、「https://portal.azure.com/」を開く
7.概要にあるプライマリドメインをコピー(テナントのURLだね)

 

5)コマンドの実行

コピーした値を元に下記powershellを実行

 

#ps1
$AppId = "アプリケーションID"
$CertThumbprint ="証明書の拇印ID"
$Domain = "テナントのURL"
Connect-ExchangeOnline -AppId $AppId -CertificateThumbprint $CertThumbprint -Organization $Domain

 

#★eolの何かのコマンド
Get-DistributionGroup

 

# end
Disconnect-ExchangeOnline -Confirm:$false

 

おしまい。

お疲れさまでした。おしまいです。

 

廃止は、設定して逆を進めばよろしいのと、証明書の再発行は、コマンドで発行して、管理画面で入れ替えて、値を得て実行すると。証明書の期限を10年にするなら「-NotAfter (Get-Date).AddYears(10) 」を付けると+10年とのこと。

 

これをベースに別なコマンドを実行してもよいね。

 

とは言え、いろいろやり始めるといろいろできそうだけど、監視は、監視のプラットフォームで値監視でもよさそう。zabbix6あたりで、登録ユーザー数をカウントしたり、挙動の確認をしたりしてもよさそうだけど、ツール提供ベンダーさんもいるので、そこまでするならサブスクするのだろうな。いや、M365もルーティング失敗して止まるので、自社リソースに何かするにしても正常性確認に値を取りに行ってもよいかも(グロスで面倒見てるところも判断できないというか、サービスステータスでズバリの判断が出来る構造でもないし)。

 

で、今後試したいのは

  • linux上でできるのか
  • zabbix6での監視する前に接続できるのか
  • 自己証明書の操作

それるけど

  • powershellから添付ファイル付きメール
  • SharePointへアップロード
  • M365リソース監視など
  • でも一つ出来るといろいろ欲望が…